对服务器运行碎片整理任务

对服务器运行碎片整理任务

我有一个如下的 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"

我尝试了各种任务细节设置,但都不起作用。任务运行,但碎片整理未在服务器上启动。

如果有人有任何想法,我将不胜感激。

相关内容