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
このスクリプトを 2 つの異なる Win7 システムで実行しようとしました。
最初に、でOUT OF MEMORY
エラーが発生しGetObject("winmgmts:").ExecQuery("Select * from Win32_Volume")
ます。
2 番目に、 でOUT OF MEMORY
エラーは発生しませんがGetObject
、 が発生しますerror 11 (Unknown Error) in errResult (output of DefragAnalysis-method)
。
どちらの Win7 システムも同じ方法でインストールおよび構成されています。
おそらくこれは重要ではありませんが、WMI プロパティを確認すると"Connected to <Local Computer>"
、(Win XP のように) and not と表示され"SUCCESSFULLY connected to <Local Computer>"
ます。