【发布时间】:2013-06-24 07:08:24
【问题描述】:
我正在尝试在 Win7 (x64) 上执行以下脚本以检查是否需要对任何卷进行碎片整理。
Set VolumeList = GetObject("winmgmts:").ExecQuery("Select * from Win32_Volume")
For Each objVolume in VolumeList
errResult = objVolume.DefragAnalysis(blnRecommended, objReport)
If errResult = 0 then
Wscript.Echo "Used space: " & objReport.UsedSpace
Wscript.Echo "Volume name: " & objReport.VolumeName
Wscript.Echo "Volume size: " & objReport.VolumeSize
If blnRecommended = True Then
Wscript.Echo "This volume should be defragged."
Else
Wscript.Echo "This volume does not need to be defragged."
End If
Wscript.Echo
Else
MsgBox errResult
End If
Next
我尝试在两个不同的 Win7 系统上运行这个脚本。
首先,我在GetObject("winmgmts:").ExecQuery("Select * from Win32_Volume") 上收到OUT OF MEMORY 错误。
第二次,我在GetObject 上没有收到OUT OF MEMORY 错误,但我收到了error 11 (Unknown Error) in errResult (output of DefragAnalysis-method)。
两个Win7系统都以同样的方式安装和配置。
也许这并不重要,但是当我检查 WMI 属性时,它会显示 "Connected to <Local Computer>" 而不是(如在 Win XP 中)"SUCCESSFULLY connected to <Local Computer>"。
【问题讨论】: