最近做一個項目用到powershell的加入域命令,測試時發現ip沖突了,加入域失敗,但程序竟然顯示成功。原來是代碼中有判斷命令的返回值,一般命令正確執行返回0,失敗返回非0值。但加入域失敗了依然返回0,非常的郁悶!
最后google到幾篇老外的帖子,找到相關的解決辦法。
powershell -ExecutionPolicy Remoteive -Command "& {e:\abc.ps1; exit $LastExitCode }"
使用以上的命令格式,便可以通過echo %errorlevel%看到命令的返回值了。但這個返回值還必須要在腳本中顯式地指定,否則還會返回0,如下:
$objReturn = add-computer -DomainName Domain01 -Server Domain01\DC01 -passthru
if($objReturn.HasSucceeded)
{
exit 0
}
else
{
exit 1
}