我使用此 powershell 脚本卸载 Symantec Endpoint Protection,当结果值为 0 时,我希望它重新启动计算机,否则按原样显示错误代码(返回值)。任何人都可以帮忙!
(Get-WmiObject -Class Win32_Product -Filter "Name='Symantec Endpoint Protection'" -ComputerName . ).Uninstall()
修订版使用 REG QUERY 进行卸载
for /f "tokens=1,2,3 delims=." %%a in ('powershell -Command "Get-ItemPropertyValue -Path 'HKLM:SOFTWARE\Symantec\Symantec Endpoint Protection\currentversion\public-opstate' -Name DeployRunningVersion"') do (
Set DeployRunningVersion=%%a%%b%%c)
If "%DeployRunningVersion%" lss "1445427" (
答案1
你的脚本看起来应该是这样的:
$uninstall = (Get-WmiObject -Class Win32_Product -Filter "Name='Symantec Endpoint Protection'" -ComputerName . ).Uninstall() | select ReturnValue
if ($uninstall -eq '0' )
{
write-host (get-date -format s) " return value is 0"
shutdown /r /t 00
}else {
write-host (get-date -format s) " return value is $uninstall"
}
这将选择 ReturnValue 并将其存储在名为 uninstall 的变量中,然后它将检查该变量,如果为 0,它将立即重新启动,因为我们设置了 /t 00。如果该值不是 0,它只会显示它。