如何检查防病毒软件是否已停用或需要某些东西才能正常工作

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 的专有命令行工具,但这应该可行。