我正在使用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
}
答案 0 :(得分: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。