我有以下代码,可以在我的 Windows 7 计算机上正常运行:
$Defrag = Get-WmiObject Win32_Volume -Filter "DriveLetter='c:'" -ComputerName "SRLVHOMAPP01" |
Invoke-WmiMethod -Name Defrag
但是当我尝试在 Windows Server 2003 上运行它时,什么都没有运行。
有人有什么想法吗?我正在使用域管理员帐户运行...
编辑:我找到了如下的附加代码组合,但它返回“错误代码 8”,显然是“碎片整理已在进行中。”——但事实绝对不是这样。
$Servers = "CSEPULTAPU01"
ForEach ($Server in $Servers)
{
$vol = Get-WmiObject -Class Win32_Volume -ComputerName $Server -Filter "DriveLetter = 'c:'"
$res = $vol.Defrag($false)
if ($res.ReturnValue -eq 0)
{
Write-Host "Defrag succeeded."
}
else
{
Write-Host "Defrag failed Result code: " $res.ReturnValue
}
}