У меня есть сценарий PowerShell следующим образом:
$ListOfServers = "Server1", "Server2"
$RunDefrag =
{
param($Server)
$Volume = Get-WmiObject -Class Win32_Volume -ComputerName $Server -Filter "DriveLetter = 'c:'"
$Result = $Volume.Defrag($False)
if ($Result.ReturnValue -eq 0)
{ Write-Host "Defrag on $Server successful." }
else
{ Write-Host "Defrag failed. Result code: " $Result.ReturnValue }
}
$ListOfServers | ForEach {Start-Job -ScriptBlock $RunDefrag -ArgumentList $_}
Это отлично работает, когда выполняется вручную как сценарий PowerShell с моего компьютера (с правами администратора).
Моя проблема в том, что я пытаюсь настроить задачу как запланированную. Вот мои основные настройки:
Actions: Start a program.
Details: powershell "& \"C:\PowerShell Scripts\Defrag.ps1"
Я поигрался с различными настройками деталей задачи, но у меня ничего не работает. Задача выполняется, но дефрагментация на серверах не запускается.
Если у кого-то есть идеи, буду благодарен.