PowerShell 脚本 - 检查退出代码

PowerShell script - check for exit code

我有以下脚本:

foreach ($server in $ProductList.$SelectedServer) {
    Invoke-Command -ComputerName $server -Credential domain\user -ScriptBlock {
        Import-Module WebAdministration
        echo "restarting AppPool $args[0] ... on $args[1]"
        Restart-WebAppPool -Name $args[0] -ErrorAction Stop
        echo "Restarted WebApp $args[0] on $args[1]"
    }
} -ArgumentList $SelectedAppPool, $Server

我想检查 Restart-WebAppPool 命令是否执行成功。如果是,我 echo 'it worked' else echo 'It did not work'.

目标是提供简单明了的英文消息,而不是典型的未处理异常。

从理论上讲,您已经完成了大部分工作,我不知道在什么情况下 Restart-WebAppPool 会抛出终止错误,但是为了对它们做任何事情,您将需要 try/catch 块:

try {
    Restart-WebAppPool -Name $args[0] -ErrorAction stop
    Write-Host "It worked"
} catch {
    Write-Host "It did not work"
    # Error handling goes here.
}

仅当 Restart-WebAppPool

没有抛出终止错误时才会显示 "It worked" 输出