【发布时间】:2018-05-04 08:52:41
【问题描述】:
如何让 powershell 忽略旧命令的失败?
所有 powershell 模块都支持-ErrorAction,但是这不适用于NET STOP 等旧版命令
NET STOP WUAUSERV
echo $?
true
我想尝试停止服务,如果服务已经停止,请继续。重现此问题的一种简单方法是尝试停止服务两次。
我尝试过的事情
$ErrorActionPreference = "SilentlyContinue"
NET STOP WUAUSERV
NET STOP WUAUSERV
echo $LASTEXITCODE
尝试使用 AND 和 OR 运算符
和
NET STOP WUAUSERV || $true
NET STOP WUAUSERV || $true
echo $LASTEXITCODE
或
NET STOP WUAUSERV && $true
NET STOP WUAUSERV && $true
echo $LASTEXITCODE
我也尝试过重定向错误
NET STOP WUAUSERV 2>nul
NET STOP WUAUSERV 2>nul
echo $LASTEXITCODE
按照similar question 中的建议,我也尝试过
cmd.exe /C "NET STOP WUAUSERV"
如何使这个旧命令具有幂等性?
【问题讨论】:
标签: powershell