psexec参数不正确

时间:2013-02-14 16:08:39

标签: powershell psexec

我正在使用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 
}

1 个答案:

答案 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。