使用 powershell 在批处理文件中卸载 SEP

使用 powershell 在批处理文件中卸载 SEP

我使用此 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,它只会显示它。

相关内容