close

Secuencia de comandos para desinstalar ESET NOD32 e instalar Forefront Endpoint Protection de GPO

Cómo desinstalar ESET NOD32 Antivirus e instalar FEP (Forefront Endpoint Protection) también conocido como Microsoft Fundamentos Antivirus en clientes Windows utilizando un VBScript.

En mi entorno que hemos estado utilizando ESET NOD32 Business Edition antivirus versión 4.

NOD32 es un antivirus ligero y estable con una huella decente. La Administración de Eset es bueno y poderoso si pasas un par de días aprenderlo.

¡Pero!.

Wen que comenzó a utilizar una aplicación web de negocios, usando el editor de Java, a nuestro socio de negocios www.webtopsolutions.se nuestros usuarios se quejaron de que el sistema de herramienta de edición, y fue muy lenta, la carga de la página en aproximadamente 40 a 50 segundos, y edición era muy lento con 1 a 2 segundos por pulsación de tecla.

Después de un poco de solución de problemas, se encontró que Nod32 fue la razón y por alguna razón no hay manera de excluir a un sitio web desde el antivirus, hay un ajuste para excluir direcciones URL de la exploración, pero la URL todavía será procesada por Nod32 de alguna manera. Una opción posible es desactivar el análisis de páginas web por completo, pero que no era una opción que me gustaba.

La solución rápida a este problema es cambiar antivirus para cuyo está libre de al menos si tiene una suscripción de Microsoft, lo contrario no es la versión esencial.

Para gestionar e instalar FEP tiene dos opciones, una es utilizar (o SCCM) y requiere SQL Server Standard Edition o Enterprise Edition. La otra opción es instalar el cliente de forma manual o mediante la escritura y.

Esta es la forma en que se instala el cliente de FEP mediante un script de inicio de sesión de usuario GPO, asegurándose de que Nod32 es desinstalado antes de instalar. Está probado en Windows XP y Windows 7, x86 y x64.

Wen ejecutar el script en mi Windows 7 UAC apareció, no he probado si eso sucede cuando el guión está a cargo de la GPO, por lo que podría tener que probarlo y decirle a los usuarios si el indicador aparecerá.

Gracias a Jakob Gottlieb Svendsen, para.

Espero que esto sea de ayuda, y no olvides o la desinstalación fallará.

Utilice este script a su propio riesgo y probarlo antes de implementarlo en el entorno de producción.

'// *********************************************** **************************** '// ***** ***** Guión Cabecera' Nombre del archivo: UninstallNod32_InstallFEP.vbs 'Autor: Jimi Friis, www.newsweb.se' Creado: 2012-03-22 'Propósito: desinstalar ESET NOD32 Antivirus (u otro programa) usando "msiexec.exe"' e instalar Microsoft Forefront Endpoint Protection (u otro programa) usando archivo de instalación y banderas '' ¿Cómo funciona: 1. script busca en el registro si el programa que desea instalar ya está instalada, si se trata de la secuencia de comandos aborta el resto. '2. Guión prueba el sistema si es x64 o x86 comprobando si systemPath% ProgramFiles (x86)% existe' y conjuntos de archivos para copiar e instalar en función de si el tipo de sistema operativo "y copiar el archivo de instalación en el disco local '

3. Escritura a continuación, busca en el registro para el progama desinstalar y si se instala intenta desinstalarlo '4. Escritura de nuevo a prueba si se desinstala el programa para desinstalar realmente, si no aborta la secuencia de comandos. '5. script de instalación del programa especificado. '' Lo que conviene saber: n la limpieza de instalar archivos .. 'n forzada o reiniciar el sistema le solicite ..' registro: Registro de las operaciones de búsqueda, desinstalar e instalar son todos los registros que falló y succeded eventos al registro de eventos. 'Todos los eventos tienen fuente de WHS y el evento ID 4' MsiInstaller también está registrando en el registro de sucesos de la aplicación '//

'// Mi guión se basa en la función debajo de secuencias de comandos .. "Función GetProductCode (strNombre)" original ..' // Solución: iTunes '// Archivo: GetProductCode.vbs' // Autor: Jakob Gottlieb Svendsen, Coretech A / S . '// Propósito: las versiones antiguas de desinstalación e instalación nueva. 'Registro // Busca el ProductCodes para los viejos programas. '//' // Uso: GetProductCode.vbs '//' // '// CORETECH A / S Historia:' // 1.0.0 JGS 18/10/2010 Creado versión inicial. '//' // Historia cliente: '//' // ***** ***** Fin de cabecera '// ******************** ************************************************** ***** '// --------------------------' // '// constante global y las declaraciones de variables' // '/ / -------------------------- Dim returnVal, CódigoProducto CódigoProducto = 0

Dim networkPathFull, localPath, Installfile, installParameters Installfile = ""

Dim Dim appToUninstall appToInstallx64, appToInstallx86, NetworkPath Dim appToInstallDisplayName

Dim uninstallReturnCode, uninstallProductCode, CopyInstallerReturnCode, TestOSReturnCode TestOSReturnCode = "" '// --------------------------' // ****** ****** Ajustes de usuario **********

'DisplayName de aplicaciones para instalar y desinstalar appToUninstall = "ESET NOD32 Antivirus" appToInstallDisplayName = "Microsoft Antimalware"

'Nombres de archivo de instalación dependiendo del tipo de sistema operativo appToInstallx64 = "FEPInstall_x64.exe" appToInstallx86 = "FEPInstall_x86.exe"' Parámetros del instalador / banderas a utilizar (como en la línea de comandos instalan) installParameters = "/ s / q" 'FEP instalar - probado y ok .. 'c: gpoinstallFEPInstall_x86.exe / s / q' / s - Especifica que una instalación de silencio debe ser realizada. '/ Q - Especifica que una extracción silenciosa de los archivos de instalación debe ser realizada.

'NetworkPath para copiar instalador desde NetworkPath = "\ MYSERVERNAMESOFTWARE_INSTALL_SHAREForefrontEP"' ruta local para copiar instalador para localPath = "C: gpoinstall"

'// ************** Configuración de usuario final ************

'' // // -------------------------- Principales rutinas '// ------------- -------------

'1. ************************************************** ********* '// ** Prueba de si se ha instalado la aplicación / programa. abortar la escritura si está instalado ** Si GetProductCode (appToInstallDisplayName) <> "" Entonces 'WScript.Echo "appToInstallDisplayName:" & appToInstallDisplayName y "ya instalado .. abortar" Wscript.Quit End If' WScript.Echo appToInstallDisplayName y "no es instalado .. continuar .. "

'2. ************************************************** ********* '// ** ** Copiar archivos del instalador' 2.1 ***************************** ****************************** '// ** Prueba tipo de sistema operativo para copiar e instalar archivos correctos ** = TestOSReturnCode Testos ( ) 'WScript.Echo "Os es" y si TestOSReturnCode (TestOSReturnCode = "x 64") Entonces Installfile = appToInstallx64 Else Installfile = appToInstallx86 End If

'2.2 ************************************************ *********** '// ** Establecer ruta de red completa para instalar el archivo ** = networkPathFull NetworkPath y Installfile

'2.3 ************************************************ *********** '// ** Copiar archivos de instalación en el disco local si ellos no existir **' CopyInstaller = 999, "fileexists" | CopyInstaller = 0, "CopyOK" | CopyInstaller = 4, "fileNotFound" CopyInstallerReturnCode = CopyInstaller () Si No (0 CopyInstallerReturnCode = O CopyInstallerReturnCode = 999) Entonces 'Si No (CopyInstallerReturnCode = "fileexists") Entonces' WScript.Echo "Estado de error de copia es:" & CopyInstallerReturnCode Wscript. Salir 'End If Else' WScript.Echo "estado de la copia es:" & CopyInstallerReturnCode End If

«3. ************************************************** ********* '// ** Desinstalar aplicación / programa si está instalado ** = uninstallProductCode GetProductCode (appToUninstall) Si uninstallProductCode <> "" Entonces' WScript.Echo "appToUninstall:" & appToUninstall & "= listo para desinstalar " 'uninstallReturnCode desinstalación de la aplicación = desinstalar (uninstallProductCode)

Si No (0 uninstallReturnCode = O uninstallReturnCode = 3010) Entonces 'WScript.Echo "appToUninstall:" & appToUninstall & "= Error al desinstalar, código:" Y uninstallReturnCode Wscript.Quit End If' Else 'WScript.Echo "appToUninstall:" & appToUninstall & "= no instalado" 'Wscript.Quit' no es necesario .. si esto no se ha instalado y aplicación de reemplazo no está instalado debe continuar End If 'estado Nod32: 1603 = error causado por la protección de contraseña de configuración de NOD32 (configuración avanzada> interfaz de usuario> acceso ..

«4. ************************************************** ********* '// ** comprobar una vez más si se desinstala la aplicación para desinstalar realmente. y abortar si no fuera Si GetProductCode (appToUninstall) <> "" Entonces 'WScript.Echo "appToUninstall:" & appToUninstall y "todavía está instalado .. abortar" Wscript.Quit End If

«5. ************************************************** ********* '// ** instalar la nueva aplicación / programa si los archivos de instalación existe **' WScript.Echo "estado de la instalación:" & _ INSTALLAPP ()

'// Salir Wscript.Quit guión

'' // // Procedimientos -------------------------- '// -------------- ------------

"Instalar Forefront Endpoint Protection '// ********* Instalar aplicación *********** Función INSTALLAPP () On Error Resume Next INSTALLAPP =" Noinstall "Si (FileExistsTest (localPath y Installfile )) Entonces

Establecer objShell = CreateObject ( "WScript.Shell")

INSTALLAPP = ObjShell.run (localPath y Installfile y "" y installParameters, 1, True) 'WScript.Echo "(INSTALLAPP = 0 O INSTALLAPP = 3010) ?:" Y INSTALLAPP

Si (0 INSTALLAPP = O INSTALLAPP = 3010) Entonces 'instalan éxito. ObjShell.LogEvent 4, "Instalación de aplicación succeded:" & vbCRLF y appToInstallDisplayName y vbCRLF y "se instaló desde" y localPath y Installfile Else 'Fallo en la instalación ObjShell.LogEvent 4, "Instalación de aplicación no se pudo:" Y vbCRLF y appToInstallDisplayName y vbCRLF & " fue instalado desde "y localPath y Installfile _ & vbCRLF y" código de error: "& INSTALLAPP End If Set objShell = Nothing End If End Function

'// ********* Obtener CódigoProducto para la aplicación *********** Función GetProductCode (strNombre)

Dim strComputer, oReg, strKeyPath, strValueName, strValue, arrSubKeys, subclave Dim strKeyPathStandard, strKeyPathX64 "cadenas de búsqueda para x86 y x64 (de cuerda 64 no se utiliza en este guión", agregarlo si su aplicación es en esa sección del registro y lo rompiera a cabo de la función) 'strKeyPathX64 = "SOFTWAREWow6432NodeMicrosoftWindowsCurrentVersionUninstall" strKeyPathStandard = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"

'Set ruta raíz registro HKEY_LOCAL_MACHINE Const = & H80000002 strComputer = "." ArrSubKeys = null

'Shell obj para iniciar sesión Conjunto objShell = CreateObject ( "WScript.Shell") ObjShell.LogEvent 4, "Búsqueda en el registro de los productos instalados por palabra clave:" Y strNombre

'Conseguir registrar objeto raíz Conjunto oReg = GetObject ( "winmgmts: {ImpersonationLevel = impersonate} \!" & _ StrComputer y "rootdefault: StdRegProv")

'Ruta y la matriz subclave en el registro buscar strKeyPath = strKeyPathStandard oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys

'Set GetProductCode = "", el valor predeterminado si no se encuentra ninguna entrada GetProductCode = ""

"Prueba de cada subclave para el programa de encontrar usando la clave de registro DisplayName Si no IsNull (arrSubKeys) Luego, para cada subclave En arrSubKeys 'WScript.Echo subclave strKeyPath = strKeyPathStandard y subclave

'// DisplayName = nombre de programa para encontrar' // ********************************* strValueName = "DisplayName "oReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strValue 'si strValue es lo que buscamos, strNombre, devuelven la subclave. Si InStr (LCase (strValue), LCase (strNombre))> 0 Then 'set GetProductCode = subclave ==> intenta desinstalar GetProductCode = subclave

'Si encontramos lo que buscamos .. salir del bucle de salida Para End If End If Siguiente' WScript.Echo "Fin del prog: subclave =" & subclave & "| strNombre = "& strNombre Conjunto objShell = nada End Function

'// ********* Desinstalar por código del artículo *********** Función de desinstalación (CódigoProducto) On Error Resume Next Set objShell = CreateObject ( "WScript.Shell")

Desinstalación = "" Si CódigoProducto <> "" Entonces desinstalación = ObjShell.run ( "Msiexec.exe / desinstalación" y CódigoProducto & "/ quiet / norestart", 0, True) 'WScript.Echo "(desinstalación = 0 o desinstalar = 3010) ?: "y desinstalación Si (Desinstalar = 0 o desinstalar = 3010) A continuación, el éxito de desinstalación. ObjShell.LogEvent 4, "desinstalación de aplicaciones succeded:" & vbCRLF y appToUninstall y vbCRLF y "se ha desinstalado" desinstalación Else 'no ObjShell.LogEvent 4, "Aplicación de desinstalación ha fallado:" Y vbCRLF y appToUninstall y vbCRLF y "no se ha desinstalado" & vbcrlf y "código de error:" & INSTALLAPP End If End If Set objShell = nada End Function

'// ********* Prueba si el sistema operativo es de 64 bits o x86 ***********' utilizando el entorno vaiable% Archivos de programa% de carpeta del programa "archivos de programa" "sistema x64 tienen % Archivos de programa (x86)% y% Archivos de programa% Testos de función () Set oShell = CreateObject ( "WScript.Shell") "user = oShell.ExpandEnvironmentStrings ("% username% ") 'comp = oShell.ExpandEnvironmentStrings ("% ComputerName% " ) = pathProgr oShell.ExpandEnvironmentStrings ( "% ProgramFiles (x86)%")

'Si la carpeta% ProgramFiles (x86)% existe una máquina x64 su Conjunto objFSO = CreateObject ( "Scripting.FileSystemObject") Si (objFSO.FolderExists (pathProgr)) y luego' Wscript.Echo Testos "x 64" = "x 64" Exit Function Else 'Wscript.Echo Testos "x 86" = "x 86" Exit Function End If Set objFSO = nada Juego Función oShell = Nothing End

'// ********* Prueba si el archivo existe *********** Función FileExistsTest (fileToTest) Conjunto objFSO = CreateObject ( "Scripting.FileSystemObject") FileExistsTest = objFSO.FileExists (fileToTest ) "verdadero = -1 'false = 0' WScript.Echo" instalar el archivo existe ?: "y FileExistsTest Conjunto objFSO = nada End Function

'// ********* Archivo de instalación copia / s *********** Función CopyInstaller () On Error Resume Next Set objShell = CreateObject ( "WScript.Shell")

'Comprueba si existe el archivo en ruta betwork. Si (FileExistsTest (localPath y Installfile)) y luego 'WScript.Echo ". Instalar el archivo existe" CopyInstaller = 999' devuelve el valor "" 'fileexists resultado Logg hasta el evento de registro ObjShell.LogEvent 4, "Instalación de archivos existen:" & vbCRLF y networkPathFull y vbCRLF y "ya existe en" & localPath y Installfile Conjunto objShell = nada Salir la función de archivos Else 'copia utilizando / Z para el modo de copia reiniciable, no muestran símbolo del sistema. CopyInstaller = ObjShell.run ( "xcopy.exe" y networkPathFull y "" y localPath & "/ Z", 0, True)

'WScript.Echo "(CopyInstaller = 0 O CopyInstaller = 3010) ?:" Y CopyInstaller Si (CopyInstaller = 0 O CopyInstaller = 3010) A continuación, el "éxito" escriben a loggfile ObjShell.LogEvent 4, "Copia de archivos de instalación succeded:" & vbcrlf y networkPathFull y vbcrlf y "se copian en" & localPath y Installfile 'WScript.Echo "instalar archivo copiado"

Else 'copia falló error: Escribir en el registro de archivos ObjShell.LogEvent 4, "Copia de archivos de instalación ha fallado:" Y vbCRLF y networkPathFull y vbCRLF y "no se ha copiado en" & localPath y Installfile _ & vbCRLF y "Código de error:" y INSTALLAPP End If End If Función Conjunto objShell = Nothing End

'// --------------------------' // Fin de secuencias de comandos '// ------------- -------------


Previous Post     Next Post


TAGS


CATEGORIES

.