Eu tenho o seguinte código que funciona bem no meu computador com Windows 7:
$Defrag = Get-WmiObject Win32_Volume -Filter "DriveLetter='c:'" -ComputerName "SRLVHOMAPP01" |
Invoke-WmiMethod -Name Defrag
Mas quando estou tentando executar isso em um Windows Server 2003, nada é executado.
Alguém tem alguma ideia? Estou correndo com a conta de administrador do domínio ...
EDITAR: Encontrei uma combinação adicional de código da seguinte maneira, mas me dá o retorno de "Error code 8" que aparentemente "Defrag já está em andamento". - o que definitivamente não é.
$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
}
}
Tags defragment powershell-4.0