#Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_icon=icon.ico #AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Res_Fileversion=1.0.0.41 #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=y #AutoIt3Wrapper_Res_LegalCopyright=Marco Di Feo #AutoIt3Wrapper_Res_Language=1031 #AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator #AutoIt3Wrapper_Res_File_Add=mcafee.jpg, RT_RCDATA, MCAFEEIMAGE #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.4.0 Author: Marco Di Feo Script Function: Uninstall McAfee Virusscan. #ce ---------------------------------------------------------------------------- ; Includes für die GUI #include #include #include #include #include #Include #Include #include "resources\resources.au3" ; Script Start - Add your code below here ; Program Files Verzeichnis auslesen ; Variablendeklaration ; - Betriebssystem global $winXP32BIT = false global $win732BIT = false global $win764BIT = false ; - Programme Pfad global $McAfeePath = "" ; - PFad zum Windows Verzeichnis global $windowsPath = EnvGet( "windir" ) ; - Gui Geladen? global $GUILOADED = false checkWindowsVersion( ) $McAfeePath = getProgramFilesPath ( ) ; DLLs Nachregistrieren ShellExecuteWait(EnvGet("windir") & "\system32\regsvr32.exe",EnvGet("windir") & "\system32\ole32.dll /s") ShellExecuteWait(EnvGet("windir") & "\system32\regsvr32.exe",EnvGet("windir") & "\VirusScan Enterprise\vsupdate.dll /s") ; Schauen, ob man den Dienst anhalten kann if not checkServiceStopped ( ) Then If not StringInStr($cmdlineraw, '/nomessage') Then MsgBox(0, "Information" , "Sie müssen den McAfee Virusscan erst deaktivieren, bevor sie ihn deinstallieren können. Gehen Sie hierfür bitte auf folgende Seite:" & @CRLF & "- xxx") endif endif if $CmdLine[0] == 0 Then #Region ### START Koda GUI section ### Form=c:\users\administrator\desktop\mcafee uninstaller\form1.kxf $GUILOADED = true $Form1_1 = GUICreate("McAfee Uninstallation", 296, 172, -1, -1, BitOR($WS_SYSMENU,$DS_MODALFRAME), 0) GUISetIcon("icon.ico", -1) GUISetBkColor(0xFFFFFF) $Pic1 = GUICtrlCreatePic("", 8, 0, 76, 76) _ResourceSetImageToCtrl($Pic1, "MCAFEEIMAGE") $btn_uAgent = GUICtrlCreateButton("Uninstall McAfee Agent", 88, 0, 203, 41) $btn_uVirusscan = GUICtrlCreateButton("Uninstall McAfee Virusscan Enterprise", 88, 40, 203, 41) $btn_help = GUICtrlCreateButton("?", 64, 96, 27, 25) $statusbar = _GUICtrlStatusBar_Create($Form1_1) _GUICtrlStatusBar_SetBkColor($statusbar, 0xF0CAA6) $btn_deleteepoguid = GUICtrlCreateButton("Epo GUID löschen", 88, 80, 203, 41) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ; Was passiert, wenn man auf exit klickt Exit Case $btn_uAgent ; Agenten Deinstallieren Button UninstallAgent ( ) Case $btn_uVirusscan ; Virusscan Deinstallieren Button UninstallVirusscan ( ) case $btn_deleteepoguid $retStatus = removeGUID ( ) if $retStatus = 2 then msgbox(0, "Fehler", "Fehler beim entfernen der GUID. Bitte überprüfen Sie, ob der Virenscanner abgeschalten wurde, da dieser sonst den Zugriff blockiert.");or do something useful with this knowledge endif case $btn_help MsgBox(0, "Hilfe", "Dieses Programm kann über die Kommandozeile gestartet werden. " & @CRLF & "Folgende Parameter sind gültig:" & @CRLF & @CRLF & "McAfeeUninstaller.exe [/nomessage] [/removeagent] [/removevirusscan] [/removeguid] [/all]" & @CRLF & @CRLF & "/nomessage: Wirft keine Nachrichtenboxen beim ausführen" & @CRLF & "/removeagent: Entfernt den McAfee Agenten" & @CRLF & "/removevirusscan: Entfernt den Viruenscanner" & @CRLF & "/removeguid: Entfernt die AgentGUID" & @CRLF & "/all: Entfernt alles") EndSwitch WEnd Else ; Gibt an, ob Messageboxes angezeigt werden sollen, wenn es im Commandlinemode läuft und ein /nomessages mitgegeben wurde $ShowMessagebox = true If StringInStr($cmdlineraw, '/nomessage') Then $ShowMessagebox = false endif ; Guckt nach, ob ein /removeagent als Parameter mitgegeben wurde und deinstalliert dann das Produkt If StringInStr($cmdlineraw, '/removeagent') Then UninstallAgent ( ) if $ShowMessagebox Then MsgBox (0, "Deinstallation McAfee Agent" , "Deinstallation des Agenten abgeschlossen" ) endif ; Guckt nach, ob ein /removeavirusscan als Parameter mitgegeben wurde und deinstalliert dann das Produkt elseIf StringInStr($cmdlineraw, '/removevirusscan') Then UninstallVirusscan ( ) if $ShowMessagebox Then MsgBox (0, "Deinstallation McAfee Virusscan" , "Deinstallation des Virenscanners abgeschlossen" ) endif ; Guckt nach, ob ein /all als Parameter mitgegeben wurde und deinstalliert dann das Produkt elseif StringInStr($cmdlineraw, '/all') Then removeGUID ( ) UninstallVirusscan ( ) UninstallAgent ( ) if $ShowMessagebox Then MsgBox (0, "Deinstallation McAfee" , "Deinstallation abgeschlossen" ) endif elseif StringInStr($cmdlineraw, '/removeguid') Then $retStatus = removeGUID ( ) if $retStatus = 2 and $ShowMessagebox then msgbox(0, "Fehler", "Fehler beim entfernen der GUID. Bitte überprüfen Sie, ob der Virenscanner abgeschalten wurde, da dieser sonst den Zugriff blockiert.");or do something useful with this knowledge endif endif EndIf ; Uninstall Agent Funktion func UninstallAgent ( ) if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation Agent", 0) endif if FileExists ( $McAfeePath & "\Common Framework\frminst.exe" ) Then ShellExecuteWait( $McAfeePath & "\Common Framework\frminst.exe","/remove=agent") endif if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation abgeschlossen", 0) endif EndFunc ; Uninstall Virusscan Funktion func UninstallVirusscan ( ) if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation Virusscan 8.0", 0) endif ShellExecuteWait(EnvGet("windir") & "\system32\msiexec.exe","/X {5DF3D1BB-894E-4DCD-8275-159AC9829B43} /q") ShellExecuteWait(EnvGet("windir") & "\system32\msiexec.exe","/X {F0856D1B-11EE-4652-8174-EAF3D5AB6C66} /q") if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation Virusscan 8.5", 0) endif ShellExecuteWait(EnvGet("windir") & "\system32\msiexec.exe","/X {35C03C04-3F1F-42C2-A989-A757EE691F65} /q") if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation Virusscan 8.7", 0) endif ShellExecuteWait(EnvGet("windir") & "\system32\msiexec.exe","/X {147BCE03-C0F1-4C9F-8157-6A89B6D2D973} REMOVE=ALL /q") if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation Virusscan 8.8", 0) endif ShellExecuteWait(EnvGet("windir") & "\system32\msiexec.exe","/X {CE15D1B6-19B6-4D4D-8F43-CF5D2C3356FF} /q") if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Deinstallation abgeschlossen", 0) endif EndFunc func removeGUID ( ) $status = RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Network Associates\ePolicy Orchestrator\Agent", "AgentGUID ") if $GUILOADED then _GUICtrlStatusBar_SetText($statusbar, "Epo AgentGUID entfernt", 0) endif return $status ;do the rest of the code? EndFunc ; Überprüft die Windows Version für den korrekten Pfad Func checkWindowsVersion ( ) if EnvGet ( "Programfiles(x86)" ) = "" Then if EnvGet ( "PUBLIC" ) = "" Then $winXP32BIT = true Else $win732BIT = true endIf Else $win764BIT = true Endif EndFunc ; Holt sich den McAfee Ordner, abhängig von der Betriesystemversion func getProgramFilesPath ( ) $programfiles = "" if $win732BIT = true Then $programfiles = EnvGet("programfiles") elseif $win764BIT = true Then $programfiles = EnvGet("Programfiles(x86)") Elseif $winXP32BIT = true Then $programfiles = EnvGet("programfiles") endif if FileExists( $programfiles & "\McAfee" ) Then return $programfiles & "\McAfee" elseif FileExists ( $programfiles & "\Network Associates" ) Then return $programfiles & "\Network Associates" EndIf EndFunc func checkServiceStopped ( ) $ServiceStopped = false RunWait(@ComSpec & " /c " & 'net stop mcshield', "", @SW_HIDE) $objWMI = ObjGet("winmgmts:\\localhost\root\CIMV2") $objItems = $objWMI.ExecQuery("SELECT * FROM Win32_Service WHERE caption Like '%mcshield%'", "WQL", 0x10 + 0x20) If IsObj($objItems) Then For $objItem In $objItems if $objItem.State = 'Stopped' Then $ServiceStopped = true EndIf Next EndIf return $ServiceStopped endFunc