0

我正在使用 psexec 在系统上执行 .bat。这将对系统进行指纹识别并将信息返回给我。我使用的命令是:

psexec \\server -u username -p password -s -i -c .\fingerprint.bat 

这适用于大多数服务器,但其中一些不适用于 -i 开关。有没有办法说,如果失败,请尝试在没有 -i 的情况下再做一次?我正在使用 powershell 来执行脚本。

$servers = get-content .\input.txt

foreach($server in $servers) {
   psexec \\$server -u username -p password -s -i -c .\fingerprint.bat 
}
4

1 回答 1

2

检查 $LastExitCode 自动变量。这在 PowerShell 调用 EXE 时设置。无论 EXE 返回的退出代码都放在 $LastExitCode 中。我很确定 psexec 返回 0 表示成功,其他任何内容都意味着失败,例如:

foreach($server in $servers) {
   psexec \\$server -u username -p password -s -i -c .\fingerprint.bat 
   if ($LastExitCode) {
       psexec \\$server -u username -p password -s -c .\fingerprint.bat 
   }
}

这是使用 PowerShell 技巧,if ($LastExitCode)如果 $LastExitCode 不是 0,则计算结果为 true。

于 2013-02-14T20:06:19.040 回答