如何检查防病毒软件是否已停用或需要某些东西才能正常工作
how to check if an antivirus was deactivated or needing something to work properly
我想知道如何检查防病毒软件是否需要更新版本或需要更新或需要许可证才能正常工作
只需使用 CMD 或批处理脚本
非常感谢
这是一个示例脚本,它监视 productState
状态并将其转换为变量。我设法让它与 我的特定 AntiVirus 一起工作,但你的里程可能会有所不同,具体取决于你使用的是哪个。
我使用了 here 中的 productState
二进制值,但是当您的 AntiVirus up-to- 时,可以通过监视 %byte1% %byte2% %byte3%
的值轻松更改它们日期、过时 或禁用
@echo off
wmic /namespace:\root\SecurityCenter2 path AntiVirusProduct get * /value|findstr "displayName productState"
echo.
set /p dec=Enter productState decimal value to detect state:
call cmd /c exit /b %dec%
set "hex=%=exitcode%"
set "hex=%hex:~2%"
set "byte1=%hex:~0,2%"&set "byte2=%hex:~2,2%"&set "byte3=%hex:~4,2%"
:: Check byte1
set "status1=ANTIVIRUS"
if "%byte1%"=="00" set "status1=NONE"
if "%byte1%"=="01" set "status1=FIREWALL"
if "%byte1%"=="02" set "status1=AUTOUPDATE_SETTINGS"
if "%byte1%"=="04" set "status1=AVAST_ANTIVIRUS"
if "%byte1%"=="08" set "status1=ANTISPYWARE"
if "%byte1%"=="16" set "status1=INTERNET_SETTINGS"
if "%byte1%"=="32" set "status1=USER_ACCOUNT_CONTROL"
if "%byte1%"=="64" set "status1=SERVICE"
:: Check byte2
set "status2=UNKNOWN"
if "%byte2%"=="16" set "status2=RUNNING"
:: Check byte2
set "status3=UP-TO-DATE"
if "%byte3%"=="16" set "status3=OUT-OF-DATE"
if "%byte3%"=="32" set "status3=OUT-OF-DATE"
if "%byte3%"=="52" set "status3=OUT-OF-DATE"
if "%byte3%"=="58" set "status3=OUT-OF-DATE"
echo Type of antivirus : %status1%
echo Scanning status : %status2%
echo Virus definitions : %status3%
echo %byte1%
pause
当然,您最好使用针对特定 AV 的专有命令行工具,但这应该可行。
我想知道如何检查防病毒软件是否需要更新版本或需要更新或需要许可证才能正常工作 只需使用 CMD 或批处理脚本 非常感谢
这是一个示例脚本,它监视 productState
状态并将其转换为变量。我设法让它与 我的特定 AntiVirus 一起工作,但你的里程可能会有所不同,具体取决于你使用的是哪个。
我使用了 here 中的 productState
二进制值,但是当您的 AntiVirus up-to- 时,可以通过监视 %byte1% %byte2% %byte3%
的值轻松更改它们日期、过时 或禁用
@echo off
wmic /namespace:\root\SecurityCenter2 path AntiVirusProduct get * /value|findstr "displayName productState"
echo.
set /p dec=Enter productState decimal value to detect state:
call cmd /c exit /b %dec%
set "hex=%=exitcode%"
set "hex=%hex:~2%"
set "byte1=%hex:~0,2%"&set "byte2=%hex:~2,2%"&set "byte3=%hex:~4,2%"
:: Check byte1
set "status1=ANTIVIRUS"
if "%byte1%"=="00" set "status1=NONE"
if "%byte1%"=="01" set "status1=FIREWALL"
if "%byte1%"=="02" set "status1=AUTOUPDATE_SETTINGS"
if "%byte1%"=="04" set "status1=AVAST_ANTIVIRUS"
if "%byte1%"=="08" set "status1=ANTISPYWARE"
if "%byte1%"=="16" set "status1=INTERNET_SETTINGS"
if "%byte1%"=="32" set "status1=USER_ACCOUNT_CONTROL"
if "%byte1%"=="64" set "status1=SERVICE"
:: Check byte2
set "status2=UNKNOWN"
if "%byte2%"=="16" set "status2=RUNNING"
:: Check byte2
set "status3=UP-TO-DATE"
if "%byte3%"=="16" set "status3=OUT-OF-DATE"
if "%byte3%"=="32" set "status3=OUT-OF-DATE"
if "%byte3%"=="52" set "status3=OUT-OF-DATE"
if "%byte3%"=="58" set "status3=OUT-OF-DATE"
echo Type of antivirus : %status1%
echo Scanning status : %status2%
echo Virus definitions : %status3%
echo %byte1%
pause
当然,您最好使用针对特定 AV 的专有命令行工具,但这应该可行。