Advertisement
Guest User

Security Essentials OPK

a guest
Oct 22nd, 2015
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 4.95 KB | None | 0 0
  1. @echo off
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3.  
  4. rem This is workaround for Wow64 issue
  5. if "%PROCESSOR_ARCHITEW6432%" NEQ "" (
  6.     set PROCESSOR_ARCHITECTURE=amd64
  7. )
  8.  
  9. set SigPackageCmdParameters=/q
  10. set MssePackageCmdInstallParameters=/q /oem
  11. set MssePackageCmdUninstallParameters=/q /u /s
  12. set SignatureMssePackageNameX86=mpam-fe.exe
  13. set SignatureMssePackageNameAMD64=mpam-fex64.exe
  14. set MssePackageBuildType=fre
  15. set ExitCode=0
  16.  
  17. set MSG_UNSUPPORTED_OS=1
  18. set MSG_UNSUPPORTED_PROC_ARC=2
  19. set MSG_INVALID_FILE_PARAMETER=3
  20. set MSG_SIG_PACKAGE_WAS_NOT_FOUND=4
  21. set MSG_INSTALLING_MSSE=5
  22. set MSG_MSSE_INSTALLATION_FAILURE=6
  23. set MSG_MSSE_INSTALLATION_SUCCESS=7
  24. set MSG_INSTALLING_SIGS=8
  25. set MSG_SIGS_INSTALLATION_FAILURE=9
  26. set MSG_ROLLING_BACK=10
  27. set MSG_SIGS_INSTALLATION_SUCCESS=11
  28. set MSG_ROLLING_BACK_MSSE_INSTALLATION=12
  29. set MSG_MSSE_OPK_SUCCESS=13
  30. set MSG_MSSE_OPK_FAILURE=14
  31. set MSG_CMD_LINE_SYNTAX_ERROR=15
  32. set MSG_MSSE_INSTALLATION_ROLLBACK_FAILURE=16
  33. set MSG_MSSE_INSTALLATION_ROLLBACK_SUCCESS=17
  34. set MSG_PROC_ARC=19
  35. set MSG_MSSE_PACKAGE_FILE_NAME=21
  36. set MSG_SIGS_PACKAGE_FILE_NAME=22
  37. set MssePackageName=mseinstall.exe
  38.  
  39. rem in case of no parameters, goto CmdLineParametersList
  40. if "%1" EQU "/?" goto CmdLineParametersList
  41. if "%1" EQU "?" goto CmdLineParametersList
  42.  
  43. rem check OS - only Win7 is supported
  44. VER | findstr /il "6\.1\." > nul
  45. if %errorlevel% NEQ 0 (
  46. set ExitCode=1
  47. call :Log MSG_UNSUPPORTED_OS "Error: Unsupported OS"
  48. call :CmdLineParametersList
  49. goto End
  50. )
  51.  
  52. rem check processor architecture - only x86 and amd64 are supported
  53. echo %PROCESSOR_ARCHITECTURE% | findstr /i "x86 amd64" > nul
  54. if %errorlevel% NEQ 0 (
  55. set ExitCode=1
  56. call :Log MSG_UNSUPPORTED_PROC_ARC "Error: Unsupported processor architecture"
  57. call :CmdLineParametersList
  58. goto End
  59. )
  60.  
  61. rem if you need to test chk build replace the files under the correct folder structure
  62.  
  63. rem look for nofw key
  64. if (%1) EQU (/nofw) (
  65. set MssePackageCmdInstallParameters=%MssePackageCmdInstallParameters% %1
  66. )
  67.  
  68. rem check msse package existence
  69. if not exist "%~dp0%MssePackageName%" (
  70. set ExitCode=1
  71. call :Log MSG_INVALID_FILE_PARAMETER "Error: MSE Install file is missing"
  72. call :CmdLineParametersList
  73. goto End
  74. )
  75.  
  76. rem calculate signature package name
  77. echo %PROCESSOR_ARCHITECTURE% | findstr /i "x86" > nul
  78. if %errorlevel% EQU 0 (
  79. set SignatureMssePackageName=%SignatureMssePackageNameX86%
  80. ) else (
  81. set SignatureMssePackageName=%SignatureMssePackageNameAMD64%
  82. )
  83.  
  84. rem check signature package existence
  85. if not exist "%~dp0%SignatureMssePackageName%" (
  86. set ExitCode=1
  87. call :Log MSG_SIG_PACKAGE_WAS_NOT_FOUND "Error: Signature package file was not found"
  88. goto End
  89. )
  90.  
  91. call :Log MSG_PROC_ARC "Processor architecture: %PROCESSOR_ARCHITECTURE%"
  92. call :Log MSG_MSSE_PACKAGE_FILE_NAME "MSSE package file name: %MssePackageName%"
  93. call :Log MSG_SIGS_PACKAGE_FILE_NAME "Signature package file name: %SignatureMssePackageName%"
  94.  
  95. rem start msse install
  96. call :Log MSG_INSTALLING_MSSE "Installing MSSE..."
  97. start /wait "MsseInstall" "%~dp0%MssePackageName%" %MssePackageCmdInstallParameters%
  98. if %errorlevel% LSS 0 (
  99. set ExitCode=%errorlevel%
  100. call :Log MSG_MSSE_INSTALLATION_FAILURE "Error: MSSE installation failure - %errorlevel%"
  101. goto End
  102. ) else (
  103. call :Log MSG_MSSE_INSTALLATION_SUCCESS "MSSE installation success"
  104. )
  105.  
  106. rem start signature package install
  107. call :Log MSG_INSTALLING_SIGS "Installing signature package..."
  108. start /wait "SigsInstall" "%~dp0%SignatureMssePackageName%" %SigPackageCmdParameters%
  109. if %errorlevel% NEQ 0 (
  110. set ExitCode=%errorlevel%
  111. call :Log MSG_SIGS_INSTALLATION_FAILURE "Error: Signature package installation failure - %errorlevel%"
  112. call :Log MSG_ROLLING_BACK "Rolling back..."
  113. goto UninstallMsse
  114. ) else (
  115. call :Log MSG_SIGS_INSTALLATION_SUCCESS "Signature package installation success"
  116. )
  117.  
  118. goto End
  119.  
  120. :UninstallMsse
  121. rem start msse uninstall (rollback)
  122. call :Log MSG_ROLLING_BACK_MSSE_INSTALLATION "Rolling back MSSE installation..."
  123. start /wait "MsseUninstall" "%~dp0%MssePackageName%" %MssePackageCmdUninstallParameters%
  124. if %errorlevel% NEQ 0 (
  125. call :Log MSG_MSSE_INSTALLATION_ROLLBACK_FAILURE "Error: MSSE installation rollback failure - %errorlevel%"
  126. goto End
  127. ) else (
  128. call :Log MSG_MSSE_INSTALLATION_ROLLBACK_SUCCESS "MSSE installation rollback success"
  129. )
  130.  
  131. goto End
  132.  
  133. :CmdLineParametersList
  134. echo.
  135. echo ---------------------------------------------------
  136. echo Installs Microsoft Security Essentials OPK
  137. echo.
  138. echo Usage:
  139. echo MsseOpkInstall.cmd [/nofw]
  140. echo [/nofw] - you can add /nofw if you like setup to skip the firewall config action
  141. echo.
  142. echo Example:
  143. echo MsseOpkInstall.cmd /nofw
  144. echo ---------------------------------------------------
  145. echo.
  146.  
  147. goto Exit
  148.  
  149. :End
  150. if %ExitCode% EQU 0 (
  151. call :Log MSG_MSSE_OPK_SUCCESS "MSSE OPK was successfully installed"
  152. ) else (
  153. call :Log MSG_MSSE_OPK_FAILURE "MSSE OPK failed to install"
  154. )
  155. goto Exit
  156.  
  157. :Log
  158. echo %~2
  159. echo %DATE% [%TIME%] - !%~1!    : !REG3XP0!>%~2 >> %temp%\MsseOPKInstall.log
  160.  
  161. :Exit
  162. exit /b %ExitCode%
  163. ENDLOCAL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement