2016-09-15 61 views
1

是否有任何方法檢查是否安裝了任何防病毒軟件,然後卸載它以將其替換爲通過批處理文件安裝的防病毒軟件?自動檢測是否從批次安裝了防病毒程序

我懷疑是否有,但我無法找到任何信息(我知道我可以檢查程序是否安裝,但我想知道是否有更好的方法)。

感謝您的任何幫助。

+0

只是好奇:你會用它來做什麼? 我理解你的問題是這樣的:有跡象表明安裝的軟件是防病毒軟件,我可以搜索(基本上)? 你已經說過的一般是檢查已安裝的程序。將它與包含更流行的防病毒軟件的文本文件結合起來,並搜索那些帶有循環的文件。如果你選擇這種方式,你必須準確地把你放在文本文件中。 – geisterfurz007

+0

@ geisterfurz007這就是我期待的答案,我只是想知道是否有更簡單的方法。問題的關鍵在於,我們在McAfee過期版本(預安裝試用版)中安裝了大量計算機,並且在安裝Service Pack時,在安裝包期間拋出錯誤而不是稍後當您有兩個防病毒軟件它出在你的註冊表中(它變得相當混亂,隨處可見的錯誤無處不在)。 – Cjen1

+0

所以你想檢查電腦是否有這個老邁克菲,如果是這樣你想先卸載它/中止已啓動的安裝,然後運行一個獨立的安裝程序爲您的新的?這應該是可能的(儘管我不知道如何,但我相信別人會這樣做)。 – geisterfurz007

回答

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你必須做以下(只有一次完成批處理文件):通過 去將註冊表編輯器(regedit)攜手自己的鑰匙

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \微軟\的Windows \ CurrentVersion \卸載

的32位軟件或

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows \ CurrentVersion \卸載

的64位軟件。

現在通過鍵並查找DisplayName鍵。一直努力,直到找到合適的人。然後看看UninstallString。 將其複製並放置,而不是註釋行。

再次:這沒有測試,我希望另一個更有經驗的用戶在測試機上進行確認/測試。

1

您可以通過此批處理文件啓動,以獲取有關您的操作系統和防病毒安裝了一些信息:

@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%" 
-2

或許能來檢查他們的目錄,如下所示:

if exist "C:\Program Files (x86)\Avast" (
echo Avast Is Installed! 
)else echo Avast Not Installed 

我不知道在哪裏的Avast安裝的本身,而是這是我最好的猜測