有没有办法检查是否安装了任何防病毒软件,然后将其卸载以将其替换为通过批处理文件安装的防病毒软件?
我怀疑有,但我找不到任何关于此的信息(我知道我可以检查是否安装了程序,但我想知道是否有更好的方法)。
感谢您的帮助。
答案 0 :(得分:2)
您可以从此批处理文件开始,以获取有关您的操作系统和防病毒软件的一些信息:
@echo off
Title General information about OS and Antivirus by Hackoo 2016
Mode con cols=50 lines=3
cls & color 0A & echo.
:::::::::::::::::::::::::::::::::::::::::
:: Automatically check & get admin rights
:::::::::::::::::::::::::::::::::::::::::
Set "TmpLogFile=%Tmp%\TmpLogkey.txt"
set "LogFile=%userprofile%\Desktop\%~n0_LogFile.txt"
If Exist %TmpLogFile% Del %TmpLogFile%
If Exist %LogFile% Del %LogFile%
REM --> Check for permissions
Reg query "HKU\S-1-5-19\Environment" >%TmpLogFile% 2>&1
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
Echo.
ECHO **************************************
ECHO Running Admin shell... Please wait...
ECHO **************************************
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
::::::::::::::::::::::::::::
:: START ::
::::::::::::::::::::::::::::
Echo.
Echo Please wait a while .....
If Exist "%LogFile%" Del "%LogFile%"
(
Echo **************************** General info ****************************
Echo Running under: %username% on profile: %userprofile%
Echo Computer name: %computername%
Echo Operating System:
wmic os get caption | findstr /v /r /c:"^$" /c:"^Caption"
Echo Boot Mode:
wmic COMPUTERSYSTEM GET BootupState | find "boot"
Echo Antivirus software installed:
wmic /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName | findstr /v /r /c:"^$" /c:"displayName"
Echo Executed on: %date% @ %time%
Echo **************************** General info ****************************
)>"%LogFile%"
Start "" "%LogFile%"
答案 1 :(得分:2)
在研究了执行该操作所需的一些事项后,我想出了这个:
没有被测试!
@echo off
wmic product get name,version | findstr "McAfee">temp1.txt
set /p line=<temp1.txt
del temp1.txt
if "x%line%"=="x" (
REM string is empty -> file is empty -> prgramm does not exist
echo "No old McAfee installed"
pause
Goto :eof
) else (
choice /m "Uninstall old one?"
if %errorlevel%==1(
REM PLACE HERE
REM run installer
) else Goto :eof
)
pause
如果显示REM PLACE HERE
,则必须执行以下操作(仅完成批处理文件一次):
转到注册编辑器(注册表)并自己完成按键
HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微软\的Windows \ CurrentVersion \卸载
用于32位软件或
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \卸载
用于64位软件。
现在浏览密钥并查找DisplayName密钥。一直努力,直到找到合适的人。然后在UninstallString
下查看。
复制并放置它而不是注释行。
再次:这未经过测试,我希望其他更有经验的用户在测试机上进行确认/测试。
答案 2 :(得分:-2)
可以像他们一样检查他们的目录:
if exist "C:\Program Files (x86)\Avast" (
echo Avast Is Installed!
)else echo Avast Not Installed
我不知道Avast安装在哪里,但这是我最好的猜测