Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- SETLOCAL ENABLEDELAYEDEXPANSION
- rem This is workaround for Wow64 issue
- if "%PROCESSOR_ARCHITEW6432%" NEQ "" (
- set PROCESSOR_ARCHITECTURE=amd64
- )
- set SigPackageCmdParameters=/q
- set MssePackageCmdInstallParameters=/q /oem
- set MssePackageCmdUninstallParameters=/q /u /s
- set SignatureMssePackageNameX86=mpam-fe.exe
- set SignatureMssePackageNameAMD64=mpam-fex64.exe
- set MssePackageBuildType=fre
- set ExitCode=0
- set MSG_UNSUPPORTED_OS=1
- set MSG_UNSUPPORTED_PROC_ARC=2
- set MSG_INVALID_FILE_PARAMETER=3
- set MSG_SIG_PACKAGE_WAS_NOT_FOUND=4
- set MSG_INSTALLING_MSSE=5
- set MSG_MSSE_INSTALLATION_FAILURE=6
- set MSG_MSSE_INSTALLATION_SUCCESS=7
- set MSG_INSTALLING_SIGS=8
- set MSG_SIGS_INSTALLATION_FAILURE=9
- set MSG_ROLLING_BACK=10
- set MSG_SIGS_INSTALLATION_SUCCESS=11
- set MSG_ROLLING_BACK_MSSE_INSTALLATION=12
- set MSG_MSSE_OPK_SUCCESS=13
- set MSG_MSSE_OPK_FAILURE=14
- set MSG_CMD_LINE_SYNTAX_ERROR=15
- set MSG_MSSE_INSTALLATION_ROLLBACK_FAILURE=16
- set MSG_MSSE_INSTALLATION_ROLLBACK_SUCCESS=17
- set MSG_PROC_ARC=19
- set MSG_MSSE_PACKAGE_FILE_NAME=21
- set MSG_SIGS_PACKAGE_FILE_NAME=22
- set MssePackageName=mseinstall.exe
- rem in case of no parameters, goto CmdLineParametersList
- if "%1" EQU "/?" goto CmdLineParametersList
- if "%1" EQU "?" goto CmdLineParametersList
- rem check OS - only Win7 is supported
- VER | findstr /il "6\.1\." > nul
- if %errorlevel% NEQ 0 (
- set ExitCode=1
- call :Log MSG_UNSUPPORTED_OS "Error: Unsupported OS"
- call :CmdLineParametersList
- goto End
- )
- rem check processor architecture - only x86 and amd64 are supported
- echo %PROCESSOR_ARCHITECTURE% | findstr /i "x86 amd64" > nul
- if %errorlevel% NEQ 0 (
- set ExitCode=1
- call :Log MSG_UNSUPPORTED_PROC_ARC "Error: Unsupported processor architecture"
- call :CmdLineParametersList
- goto End
- )
- rem if you need to test chk build replace the files under the correct folder structure
- rem look for nofw key
- if (%1) EQU (/nofw) (
- set MssePackageCmdInstallParameters=%MssePackageCmdInstallParameters% %1
- )
- rem check msse package existence
- if not exist "%~dp0%MssePackageName%" (
- set ExitCode=1
- call :Log MSG_INVALID_FILE_PARAMETER "Error: MSE Install file is missing"
- call :CmdLineParametersList
- goto End
- )
- rem calculate signature package name
- echo %PROCESSOR_ARCHITECTURE% | findstr /i "x86" > nul
- if %errorlevel% EQU 0 (
- set SignatureMssePackageName=%SignatureMssePackageNameX86%
- ) else (
- set SignatureMssePackageName=%SignatureMssePackageNameAMD64%
- )
- rem check signature package existence
- if not exist "%~dp0%SignatureMssePackageName%" (
- set ExitCode=1
- call :Log MSG_SIG_PACKAGE_WAS_NOT_FOUND "Error: Signature package file was not found"
- goto End
- )
- call :Log MSG_PROC_ARC "Processor architecture: %PROCESSOR_ARCHITECTURE%"
- call :Log MSG_MSSE_PACKAGE_FILE_NAME "MSSE package file name: %MssePackageName%"
- call :Log MSG_SIGS_PACKAGE_FILE_NAME "Signature package file name: %SignatureMssePackageName%"
- rem start msse install
- call :Log MSG_INSTALLING_MSSE "Installing MSSE..."
- start /wait "MsseInstall" "%~dp0%MssePackageName%" %MssePackageCmdInstallParameters%
- if %errorlevel% LSS 0 (
- set ExitCode=%errorlevel%
- call :Log MSG_MSSE_INSTALLATION_FAILURE "Error: MSSE installation failure - %errorlevel%"
- goto End
- ) else (
- call :Log MSG_MSSE_INSTALLATION_SUCCESS "MSSE installation success"
- )
- rem start signature package install
- call :Log MSG_INSTALLING_SIGS "Installing signature package..."
- start /wait "SigsInstall" "%~dp0%SignatureMssePackageName%" %SigPackageCmdParameters%
- if %errorlevel% NEQ 0 (
- set ExitCode=%errorlevel%
- call :Log MSG_SIGS_INSTALLATION_FAILURE "Error: Signature package installation failure - %errorlevel%"
- call :Log MSG_ROLLING_BACK "Rolling back..."
- goto UninstallMsse
- ) else (
- call :Log MSG_SIGS_INSTALLATION_SUCCESS "Signature package installation success"
- )
- goto End
- :UninstallMsse
- rem start msse uninstall (rollback)
- call :Log MSG_ROLLING_BACK_MSSE_INSTALLATION "Rolling back MSSE installation..."
- start /wait "MsseUninstall" "%~dp0%MssePackageName%" %MssePackageCmdUninstallParameters%
- if %errorlevel% NEQ 0 (
- call :Log MSG_MSSE_INSTALLATION_ROLLBACK_FAILURE "Error: MSSE installation rollback failure - %errorlevel%"
- goto End
- ) else (
- call :Log MSG_MSSE_INSTALLATION_ROLLBACK_SUCCESS "MSSE installation rollback success"
- )
- goto End
- :CmdLineParametersList
- echo.
- echo ---------------------------------------------------
- echo Installs Microsoft Security Essentials OPK
- echo.
- echo Usage:
- echo MsseOpkInstall.cmd [/nofw]
- echo [/nofw] - you can add /nofw if you like setup to skip the firewall config action
- echo.
- echo Example:
- echo MsseOpkInstall.cmd /nofw
- echo ---------------------------------------------------
- echo.
- goto Exit
- :End
- if %ExitCode% EQU 0 (
- call :Log MSG_MSSE_OPK_SUCCESS "MSSE OPK was successfully installed"
- ) else (
- call :Log MSG_MSSE_OPK_FAILURE "MSSE OPK failed to install"
- )
- goto Exit
- :Log
- echo %~2
- echo %DATE% [%TIME%] - !%~1! : !REG3XP0!>%~2 >> %temp%\MsseOPKInstall.log
- :Exit
- exit /b %ExitCode%
- ENDLOCAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement