Wie ESET NOD32 Antivirus und installieren FEP (Forefront Endpoint Protection), auch bekannt als Microsoft Essentials-Antivirus auf Windows-Clients mit einem vbscript zu deinstallieren.
In meinem Umfeld haben wir schon 4 unter Verwendung von ESET NOD32 Antivirus Business Edition Version.
NOD32 ist eine leichte und stabile Antivirus mit einem anständigen Fußabdruck. Die Eset Verwaltung ist gut und mächtig, wenn Sie ein paar Tage zu lernen es zu verbringen.
Aber!.
Wen wir begonnen, eine Business-Web-Anwendung zu verwenden, die Java-Editor, unserer Geschäftspartner www.webtopsolutions.se unsere Benutzer auf diesem Bearbeitungstool System beschwert, und es war wirklich langsam, um die Seite in etwa 40 bis 50 Sekunden geladen wird, und Bearbeitung war wirklich langsam mit 1 bis 2 Sekunden pro Tastendruck.
Nach einiger Fehlersuche fanden wir, dass Nod32 der Grund, und aus irgendeinem Grund war es gibt keine Möglichkeit, eine Website von der Antivirus auszuschließen, ist es eine Einstellung URLs vom Scan ausschließen, aber die URL wird nach wie vor von Nod32 in irgendeiner Weise verarbeitet werden. Eine mögliche Option ist das Scannen von Web-Seiten vollständig zu deaktivieren, aber das war keine Option, die ich mochte.
Die schnelle Lösung zu diesem Problem ist Antivirus zu ändern frei zumindest wich ist, wenn Sie ein Abonnement von Microsoft haben, sonst gibt es die Essentials-Version ist.
So verwalten und installieren FEP haben Sie zwei Möglichkeiten, eine ist zu verwenden (oder SCCM) und es erfordert SQL Server Standard oder Enterprise Edition. Die andere Option ist, den Client manuell oder durch ein Skript zu installieren und.
Dies ist, wie ich das FEP-Client installieren ein GPO Benutzer-Anmeldeskript verwenden, um sicherzustellen, dass Nod32 vor der Installation deinstalliert wird. Es wird geprüft, auf Windows XP und Windows 7 x86 und x64.
Wen läuft das Skript auf meinem Windows 7 die UAC tauchte, die ich getestet haben, wenn das passiert, wenn das Skript von der GPO ausgeführt wird, so dass Sie könnte es zu testen müssen und die Benutzer sagen, ob die Eingabeaufforderung öffnet sich.
Dank Jakob Gottlieb Svendsen, für.
Ich hoffe, dass dies hilfreich sein wird, und nicht vergessen oder die Deinstallation fehl.
Verwenden Sie dieses Skript auf eigene Gefahr und testen Sie es vor dem Produktionsumgebung bereitstellen.
'// *********************************************** **************************** '// ***** Script-Header *****' Dateiname: UninstallNod32_InstallFEP.vbs 'Autor: Jimi Friis, www.newsweb.se' Erstellt am: 2012-03-22 'Zweck: Deinstallieren Sie ESET NOD32 Antivirus (oder ein anderes Programm) mit "Msiexec.exe"' und installieren Sie Microsoft Forefront Endpoint Protection (oder ein anderes Programm) unter Verwendung von Installationsdatei und Flags '' So funktioniert es: 1. Script sucht in der Registrierung, wenn das Programm zu installieren, bereits installiert ist, wenn es das Skript den Rest bricht. "2. Script prüft das System, ob es x64 oder x86 durch Prüfen, ob systempath% program ist (x86)% vorhanden ist" und setzt die Datei abhängig zu kopieren und installieren auf, wenn OS-Typ ", und kopieren Sie die Installationsdatei auf der lokalen Festplatte '
3. Script sieht dann in der Registrierung für den Progamm zu deinstallieren und wenn es installiert ist, versucht, es zu deinstallieren "4. Script erneut prüft, ob das Programm wirklich zu deinstallieren deinstalliert wird, wenn es nicht das Skript abbricht. "5. Script installieren Sie das Programm festgelegt. '' Gut zu wissen: Keine Bereinigung von Dateien zu installieren .. 'Neustart keine Zwangs- oder aufgefordert ..' Logging: Registry-Lookup, deinstallieren und installieren Sie alle Logging sind ausgefallen und succeded Ereignisse in das Ereignisprotokoll. "Alle Veranstaltungen haben Quelle WHS und Ereignis-ID 4 'MsiInstaller auch auf Anwendungsereignisprotokoll protokolliert wird" //
'// Mein Skript wird unter Skripten Funktion Basierend auf .. "Funktion GetProductCode (StrName)" original ..' // Lösung: iTunes '// Datei: GetProductCode.vbs' // Autor: Jakob Gottlieb Svendsen, Coretech A / S . '// Zweck: Deinstallieren Sie alte Versionen und neue installieren. '// Suchen Registrierung für die product für die alten Programme. '//' // Usage: GetProductCode.vbs '//' // '// CoreTech A / S Geschichte:' // 1.0.0 JGS 18.10.2010 Erstellt erste Version. '//' // Kunden Geschichte: '//' // ***** End-Header ***** '// ******************** ************************************************** ***** '// --------------------------' // '// globale konstante und Variablendeklarationen' // '/ / -------------------------- Dim ReturnVal, Productproductcode = 0
Dim networkPathFull, localPath, Install, installParameters Install = ""
Dim appToUninstall Dim appToInstallx64, appToInstallx86, NetworkPath Dim appToInstallDisplayName
Dim uninstallReturnCode, uninstallProductCode, CopyInstallerReturnCode, TestOSReturnCode TestOSReturnCode = "" '// --------------------------' // ****** ****** Benutzereinstellungen **********
'Display von Anwendungen zu installieren und deinstallieren appToUninstall = "ESET NOD32 Antivirus" appToInstallDisplayName = "Microsoft Anti-Malware"
'Installer Dateinamen je nach OS Typ appToInstallx64 = "FEPInstall_x64.exe" appToInstallx86 = "FEPInstall_x86.exe"' Installer Parameter / Fahnen zu verwenden (wie in der Befehlszeile installieren) installParameters = "/ s / q" 'FEP installieren - getestet und ok .. 'c: gpoinstallFEPInstall_x86.exe / s / q' / s - Gibt an, dass eine automatisierte Konfiguration durchgeführt werden sollte. '/ Q - Legt fest, dass eine stille Extraktion der Setup-Dateien durchgeführt werden soll.
'NetworkPath kopieren Installer von NetworkPath = "\ MYSERVERNAMESOFTWARE_INSTALL_SHAREForefrontEP" "lokalen Pfad Installer localPath = kopieren" C: gpoinstall "
'// ************** END Benutzereinstellungen ************
'// --------------------------' // Hauptroutinen '// ------------- -------------
'1. ************************************************** ********* '// **-Test, wenn die Anwendung / Programm installiert ist. Skript abbrechen, wenn es installiert ist ** Wenn GetProductCode (appToInstallDisplayName) <> "" Then 'WScript.Echo "appToInstallDisplayName:" & appToInstallDisplayName & "bereits installiert .. Abbruch" Wscript.Quit End If' WScript.Echo appToInstallDisplayName & "NICHT ist installiert .. weiter .. "
'2. ************************************************** ********* '// ** Copy Installationsdateien **' 2.1 ***************************** ****************************** '// ** Test-OS-Typ zu kopieren und richtigen Dateien installieren ** TestOSReturnCode = Testos ( ') WScript.Echo "Os" & TestOSReturnCode if (TestOSReturnCode = "x64") Dann Install = appToInstallx64 Else Install = appToInstallx86 End If
"2.2 ************************************************ *********** '// ** vollständige Netzwerkpfad Set-Datei zu installieren ** networkPathFull = NetworkPath & Install
'2.3 ************************************************ *********** '// ** Kopieren von Dateien für die Installation auf der lokalen Festplatte, wenn sie nicht ** existieren' CopyInstaller = 999, "fileExists" | CopyInstaller = 0, "CopyOK" | CopyInstaller = 4, "fileNotFound" CopyInstallerReturnCode = CopyInstaller () If Not (CopyInstallerReturnCode = 0 oder CopyInstallerReturnCode = 999) Then 'Wenn nicht (CopyInstallerReturnCode = "fileExists") Then' WScript.Echo "Copy Fehlerstatus ist:" & CopyInstallerReturnCode Wscript. Quit 'End If Else' WScript.Echo "Copy-Status ist:" & CopyInstallerReturnCode End If
'3. ************************************************** ********* '// ** Uninstall application / Programm, wenn es installiert ist ** uninstallProductCode = GetProductCode (appToUninstall) wenn uninstallProductCode <> "" Then' WScript.Echo "appToUninstall:" & appToUninstall & "= ready 'Deinstallation Anwendung zu deinstallieren "uninstallReturnCode = Deinstallation (uninstallProductCode)
Wenn nicht (uninstallReturnCode = 0 oder uninstallReturnCode = 3010) Then 'WScript.Echo "appToUninstall:" & appToUninstall & "= Fehler deinstallieren, Code:" & uninstallReturnCode Wscript.Quit End If' Else 'WScript.Echo "appToUninstall:" & appToUninstall & "= nicht installiert" 'Wscript.Quit' nicht erforderlich .. wenn dies nicht installiert ist und Ersatz App installiert ist nicht es sollte Ende fortsetzen wenn 'Nod32 Stand: 1603 = Fehler durch Passwortschutz von NOD32 Einstellungen (erweiterte Einstellungen> Benutzeroberfläche> Zugang ..
'4. ************************************************** ********* '// ** erneut prüfen, ob Anwendung wirklich deinstallieren deinstalliert wird. und abbrechen, wenn es war nicht Wenn GetProductCode (appToUninstall) <> "" Then 'WScript.Echo "appToUninstall:" & appToUninstall & "wird noch installiert .. Abbruch" Wscript.Quit End If
"5. ************************************************** ********* '// ** installieren Sie die neue Anwendung / Programm, wenn die Installationsdateien ** existiert "WScript.Echo" Installationsstatus: "& _ installApp ()
'// Beenden Skript Wscript.Quit
'// --------------------------' // Prozeduren '// -------------- ------------
'Installieren Forefront Endpoint Protection' // ********* Anwendung installieren *********** installApp function () On Error Resume Next installApp = "Noinstall" Wenn (FileExistsTest (localPath & Install )) Then
Set objShell = Create ( "WScript.Shell")
InstallApp = ObjShell.run (localPath & Install & "" & installParameters, 1, True) 'WScript.Echo "(installApp = 0 oder installApp = 3010) ?:" & installApp
Wenn (installApp = 0 oder installApp = 3010) Then 'installieren Erfolg. ObjShell.LogEvent 4, "Application succeded installieren:" & vbCrLf & appToInstallDisplayName & vbCrLf & "wurde installiert von" & localPath & Install Else 'Installation fehlgeschlagen ist ObjShell.LogEvent 4, "Anwendung konnte nicht installiert werden:" & vbCrLf & appToInstallDisplayName & vbCrLf & " wurde von installiert "& localPath & Install _ & vbCrLf &" Fehlercode: If End Function "& installApp End If nichts Set objShell = Ende
'// ********* Get Productcode für die Anwendung *********** Funktion GetProductCode (StrName)
Dim strComputer, Oreg, strKeyPath, strValueName, strValue, arrSubKeys, Unterschlüssel Dim strKeyPathStandard, strKeyPathX64 "Suchzeichenfolgen für x86 und x64 (x64-String wird in diesem Skript nicht verwendet", fügen Sie es, wenn Ihre Anwendung in diesem Registrierungs Abschnitt ist und brechen sie aus der Funktion) 'strKeyPathX64 = "SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall" strKeyPathStandard = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
'Gesetzt Register Wurzelpfad Const HKEY_LOCAL_MACHINE = & H80000002 strComputer = "." ArrSubKeys = Null
'Shell obj für die Anmeldung Set objShell = Create ( "WScript.Shell") ObjShell.LogEvent 4, "Suche in der Registrierung für die installierten Produkte von Suchbegriff:" & StrName
'Get Wurzelobjekt Set Oreg = GetObject registrieren ( "winmgmts: {ImpersonationLevel = impersonate} \" & _ strComputer & "rootdefault: StdRegProv")
'Suchpfad und Unterschlüssel Array in der Registry strKeyPath = strKeyPathStandard oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
'Set GetProductCode = "", Standardwert, wenn kein Eintrag gefunden wird GetProductCode = ""
'Test jeder Unterschlüssel für das Programm zu finden, um den Registrierungsschlüssel Display mit If Not IsNull (arrSubKeys) dann für jeden Unterschlüssel In arrSubKeys' WScript.Echo Unterschlüssel strKeyPath = strKeyPathStandard & Unterschlüssel
'// Displayname = Name auf Programm zu finden' // ********************************* strValueName = "Display "oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue ', wenn strValue ist das, was wir suchen, strName, geben Sie den Unterschlüssel. Wenn InStr (LCase (strValue), LCase (StrName))> 0 Then 'gesetzt GetProductCode = Unterschlüssel ==> versuchen GetProductCode = Unterschlüssel zu deinstallieren
"Wenn wir gefunden, was wir gesucht .. die Schleife Ausfahrt Exit For End If Next End If 'WScript.Echo" Ende des prog: Unterschlüssel = "& Unterschlüssel &" | strName = "& StrName Set objShell = nichts End Function
Deinstallieren '// ********* von Produktcode *********** Funktion Deinstallation (Productcode) On Error Resume Next Set objShell = Create ( "WScript.Shell")
Deinstallieren = "" Wenn Productcode <> "" Dann Deinstallieren = ObjShell.run ( "Msiexec.exe / uninstall" & Product & "/ quiet / norestart", 0, True) 'WScript.Echo "(Deinstallieren = 0 oder Deinstallieren = 3010) ?: "& Deinstallieren Falls (Deinstallieren = 0 oder Deinstallieren = 3010) Then 'uninstall Erfolg. ObjShell.LogEvent 4, "Anwendung deinstallieren succeded:" & vbCrLf & appToUninstall & vbCrLf & "deinstalliert wurde" Else 'Deinstallation fehlgeschlagen ObjShell.LogEvent 4, "Anwendung deinstallieren fehlgeschlagen:" & vbCrLf & appToUninstall & vbCrLf & "wurde nicht deinstalliert" & vbCrLf & "Code-Fehler:" & installApp End If Set objShell = Funktion nichts End
'// ********* Testen Sie, ob das OS x64 oder x86 ist ***********' mit der Umwelt vaiable% Programfiles% für Programmordner "Programmdateien" 'x64-System haben % Programme (x86)% und% Programfiles% Funktion Testos () Set oShell = Create ( "WScript.Shell") 'user = oShell.ExpandEnvironmentStrings ( "% username%")' comp = oShell.ExpandEnvironmentStrings ( "% COMPUTERNAME%" ) pathProgr = oShell.ExpandEnvironmentStrings ( "% Programfiles (x86)%")
'Wenn Ordner% Programme (x86)% vorhanden ist seine eine x64-Maschine Set objFSO = Create ( "Scripting.FileSystemObject") If (objFSO.FolderExists (pathProgr)), dann "WScript.Echo" x64 "Testos =" x64 "Exit-Funktion Else "WScript.Echo" x86 "Testos =" x86 "Exit Function End If Set objFSO = nichts Set oShell = nichts End Function
'// ********* Test-Datei existiert *********** Funktion FileExistsTest (fileToTest) Set objFSO = Create ( "Scripting.FileSystemObject") FileExistsTest = objFSO.FileExists (fileToTest ) 'true = -1' false = 0 'WScript.Echo "Installationsdatei vorhanden ?:" & FileExistsTest Set objFSO = nichts End Function
'// ********* Kopie Installationsdatei / s *********** Funktion CopyInstaller () On Error Resume Next Set objShell = Create ( "WScript.Shell")
"Testen Sie, ob die Datei vorhanden ist in betwork Pfad. Wenn (FileExistsTest (localPath & Install)), dann "WScript.Echo". Installieren existiert Datei "CopyInstaller = 999 'gesetzt Rückgabewert" fileExists "' Logg Ergebnis Ereignis ObjShell.LogEvent 4 log," Install-Dateien vorhanden sind: "& vbCrLf & networkPathFull & vbCrLf & "existiert bereits in" & localPath & Install Set objShell = nichts Exit-Funktion Else 'Kopie Datei / Z für wiederanlaufKopierModus, zeigen keine Eingabeaufforderung. CopyInstaller = ObjShell.run ( "xcopy.exe" & networkPathFull & "" & localPath & "/ Z", 0, True)
"WScript.Echo" (CopyInstaller = 0 oder CopyInstaller = 3010) ?: "& CopyInstaller If (CopyInstaller = 0 oder CopyInstaller = 3010) Then 'Erfolg' schreiben ObjShell.LogEvent 4, loggfile" Kopieren von Dateien installieren succeded: "& vbCrLf & networkPathFull & vbCrLf & "kopiert wurde" & localPath & Install 'WScript.Echo "Datei installieren, kopiert"
Else 'Kopie fehlgeschlagen "Fehler: Datei schreiben ObjShell.LogEvent 4, log" Kopieren von Dateien installieren fehlgeschlagen: "& vbCrLf & networkPathFull & vbCrLf & & localPath & Install _ & vbCrLf &" wurde nicht kopiert "" Fehlercode: " & installApp End If Set objShell = nichts End Function
'// --------------------------' // End Script '// ------------- -------------