Guest User

Untitled

a guest
Oct 16th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.68 KB | None | 0 0
  1. @ECHO OFF
  2. SETLOCAL ENABLEDELAYEDEXPANSION
  3. SET DEBUGLOG="%Temp%\debug.log"
  4. ECHO.>%DEBUGLOG%
  5. SET FNDSTR1=" [0-9][ 0-9] [^Aa-Zz][^Aa-Zz] ...........* *NTFS *.......... *[12]00 M. "
  6. SET FNDSTR2=" [0-9][ 0-9] [^Aa-Zz][^Aa-Zz] "
  7. SET SLMGR=cscript //NOLOGO "%SYSTEMROOT%\System32\slmgr.vbs"
  8. ECHO %DATE% - %TIME% >>%DEBUGLOG%
  9. CHCP >>%DEBUGLOG%
  10.  
  11. CALL :PRODUCT_VER_CHECK
  12.  
  13. :START
  14. CALL :CLEANUP
  15. IF EXIST "%TEMP%\UNMOUNT" DISKPART /S "%TEMP%\UNMOUNT" >>%DEBUGLOG%
  16. REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "BuildLabEx" >>%DEBUGLOG%
  17. REG QUERY "HKLM\Software\Microsoft\Windows NT\CurrentVersion" /v "ProductName" >>%DEBUGLOG%
  18.  
  19. :FILECHK
  20. IF NOT EXIST "%~dp0bootinst_w7ldr.exe" ECHO ERROR: bootinst.exe is missing >>%DEBUGLOG% & GOTO :ERROR
  21. IF NOT EXIST "%~dp0cert.xrm-ms" ECHO ERROR: cert.xrm-ms is missing >>%DEBUGLOG% & GOTO :ERROR
  22. IF NOT EXIST "%~dp0md5.exe" ECHO ERROR: md5.exe is missing >>%DEBUGLOG% & GOTO :ERROR
  23. IF NOT EXIST "%~dp0slic" ECHO ERROR: slic is missing >>%DEBUGLOG% & GOTO :ERROR
  24. IF NOT EXIST "%~dp0w7ldr1" ECHO ERROR: w7ldr1 is missing >>%DEBUGLOG% & GOTO :ERROR
  25. IF NOT EXIST "%~dp0w7ldr2" ECHO ERROR: w7ldr2 is missing >>%DEBUGLOG% & GOTO :ERROR
  26.  
  27. "%~dp0md5.exe" /cF9D519ADF07380DA7243191E6A7831F7 "%~dp0bootinst_w7ldr.exe"
  28. IF ERRORLEVEL 1 ECHO ERROR: bootinst_w7ldr.exe md5 failed >>%DEBUGLOG% & GOTO :ERROR
  29.  
  30. "%~dp0md5.exe" /c18B1E45BF56F40C3C4BBE65831178216 "%~dp0cert.xrm-ms"
  31. IF ERRORLEVEL 1 ECHO ERROR: cert.xrm-ms md5 failed >>%DEBUGLOG% & GOTO :ERROR
  32.  
  33. "%~dp0md5.exe" /c7EE5638B3D64247202A366AD3CB0795C "%~dp0slic"
  34. IF ERRORLEVEL 1 ECHO ERROR: slic md5 failed >>%DEBUGLOG% & GOTO :ERROR
  35.  
  36. "%~dp0md5.exe" /c1AAEE165E39BB78BEEF5F9FA2D3922F8 "%~dp0w7ldr1"
  37. IF ERRORLEVEL 1 ECHO ERROR: w7ldr1 md5 failed >>%DEBUGLOG% & GOTO :ERROR
  38.  
  39. "%~dp0md5.exe" /c3BB8553F8E230F58F116157C4318E2E0 "%~dp0w7ldr2"
  40. IF ERRORLEVEL 1 ECHO ERROR: w7ldr2 md5 failed >>%DEBUGLOG% & GOTO :ERROR
  41.  
  42. "%~dp0md5.exe" /c519E1BB29B7165646AF08D83B9512774 "%~dp0md5.exe"
  43. IF ERRORLEVEL 1 ECHO ERROR: md5.exe md5 failed >>%DEBUGLOG% & GOTO :ERROR
  44.  
  45. ECHO all ok >>%DEBUGLOG%
  46.  
  47.  
  48. :STARTSVC
  49. SC QUERY SPPSVC | FINDSTR /I "RUNNING" >>%DEBUGLOG%
  50. IF ERRORLEVEL 1 NET START SPPSVC >>%DEBUGLOG%
  51. SC CONFIG SPPSVC START= Auto >>%DEBUGLOG%
  52.  
  53.  
  54. :FINDPARTITION
  55. TASKLIST | FIND "vmware.exe">nul
  56. IF NOT ERRORLEVEL 1 (
  57. ECHO.
  58. ECHO ERROR: vmware is running.
  59. GOTO :ERROR
  60. )>>%DEBUGLOG%
  61. ECHO LIST VOL | DISKPART >>%DEBUGLOG%
  62. IF EXIST "%USERPROFILE%\Desktop\work_dammit" (
  63. ECHO. >>%DEBUGLOG%
  64. ECHO. >>%DEBUGLOG%
  65. ECHO work dammit set >>%DEBUGLOG%
  66. ECHO using %FNDSTR2% >>%DEBUGLOG%
  67. SET STR=%FNDSTR2%
  68. ) ELSE (
  69. SET STR=%FNDSTR1%
  70. ECHO. >>%DEBUGLOG%
  71. ECHO. >>%DEBUGLOG%
  72. ECHO using %FNDSTR1% >>%DEBUGLOG%
  73. )
  74. ECHO.>>%DEBUGLOG%
  75. For /F "tokens=2" %%I IN ('ECHO LIST VOL ^| DISKPART ^| FINDSTR /R /C:%STR%') DO CALL :PARSE %%I
  76. IF '%FREEDRIVELETTER%'=='0' ECHO ERROR: could not assign drive letter.>>%DEBUGLOG% & GOTO :ERROR
  77. GOTO :DO_IT
  78.  
  79.  
  80. :PARSE
  81. SET FREEDRIVELETTER=0
  82. FOR %%p IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z B) DO (
  83. ECHO LIST VOL | DISKPART | FINDSTR /C:" %%p " >>%DEBUGLOG%
  84. IF ERRORLEVEL 1 NET USE | FINDSTR /C:" %%p: " >>%DEBUGLOG%
  85. IF EXIST "%USERPROFILE%\Desktop\work_dammit" (
  86. IF ERRORLEVEL 1 (
  87. ECHO SELECT VOLUME %1 > "%TEMP%\MOUNT_CHK"
  88. ECHO ASSIGN LETTER=%%p >> "%TEMP%\MOUNT_CHK"
  89. ECHO SELECT VOLUME %1 > "%TEMP%\UNMOUNT_CHK"
  90. ECHO REMOVE >> "%TEMP%\UNMOUNT_CHK"
  91. IF EXIST "%TEMP%\MOUNT_CHK" DISKPART /S "%TEMP%\MOUNT_CHK" >nul
  92. IF ERRORLEVEL 1 (ECHO ERROR: letter %%p already in use. >>%DEBUGLOG% & GOTO :EOF) ELSE (
  93. SET FREEDRIVELETTER=%%p)
  94. IF EXIST "%TEMP%\UNMOUNT_CHK" DISKPART /S "%TEMP%\UNMOUNT_CHK" >nul
  95. )
  96. ) ELSE (IF ERRORLEVEL 1 SET FREEDRIVELETTER=%%p)
  97. )
  98. ECHO SELECT VOLUME %1 >> "%TEMP%\MOUNT"
  99. ECHO ASSIGN LETTER=%FREEDRIVELETTER% >> "%TEMP%\MOUNT"
  100. ECHO SELECT VOLUME %1 >> "%TEMP%\UNMOUNT"
  101. ECHO REMOVE >> "%TEMP%\UNMOUNT"
  102. IF EXIST "%TEMP%\MOUNT" DISKPART /S "%TEMP%\MOUNT" >>%DEBUGLOG%
  103. IF ERRORLEVEL 1 ECHO ERROR: mount %%p failed >>%DEBUGLOG% & GOTO :ERROR
  104. GOTO :EOF
  105.  
  106.  
  107. :DO_IT
  108. SET SLMGR_HAS_RUN=0
  109. SET BOOTMGR_FOUND=0
  110. ECHO LIST DISK | DISKPART | FINDSTR /C:" * " >>%DEBUGLOG%
  111. IF NOT ERRORLEVEL 1 ECHO ERROR: dynamic disk>>%DEBUGLOG% & GOTO :ERROR
  112. FOR %%A IN (C D E F G H I J K L M N O P Q R S T U V W X Y Z B) DO (
  113. ECHO LIST VOL | DISKPART | FINDSTR /R /C:" %%A .* 0 B " >>%DEBUGLOG%
  114. IF ERRORLEVEL 1 (
  115. IF EXIST "%%A:\bootmgr" "%~dp0md5.exe" /cD6AE2D5521DD93AEBC90D411D099FA36 "%%A:\BOOTMGR" >>%DEBUGLOG%
  116. IF NOT ERRORLEVEL 1 (
  117. SET /A BOOTMGR_FOUND=!BOOTMGR_FOUND!+1
  118. IF NOT EXIST "%%A:\autorun.inf" (
  119. DIR /A: %%A:\>>%DEBUGLOG%
  120. IF EXIST "%%A:\w7ldr" ATTRIB "%%A:\w7ldr" -h -s -r >>%DEBUGLOG%
  121. IF EXIST "%%A:\w7ldr.bak" DEL "%%A:\w7ldr.bak" >>%DEBUGLOG%
  122. IF EXIST "%%A:\grldr.bak" DEL "%%A:\grldr.bak" >>%DEBUGLOG%
  123. IF EXIST "%%A:\w7ldr" "%~dp0md5.exe" /cDE0A5EFAEE4988097C4AC50F3D1F9FDB "%%A:\w7ldr" >>%DEBUGLOG%
  124. IF ERRORLEVEL 1 (
  125. DEL "%%A:\w7ldr"
  126. COPY /b "%~dp0w7ldr1" + "%~dp0slic" + "%~dp0w7ldr2" "%%A:\w7ldr") >>%DEBUGLOG%
  127. IF NOT EXIST "%%A:\w7ldr" COPY /b "%~dp0w7ldr1" + "%~dp0slic" + "%~dp0w7ldr2" "%%A:\w7ldr" >>%DEBUGLOG%
  128. "%~dp0md5.exe" /cDE0A5EFAEE4988097C4AC50F3D1F9FDB "%%A:\w7ldr" >>%DEBUGLOG%
  129. IF ERRORLEVEL 1 ECHO ERROR: w7ldr md5 check failed & GOTO :ERROR >>%DEBUGLOG%
  130. IF EXIST "%%A:\w7ldr" ATTRIB "%%A:\w7ldr" +h +s +r >>%DEBUGLOG%
  131. IF EXIST "%%A:\w7ldr" "%~dp0bootinst_w7ldr.exe" /nt60 %%A: >>%DEBUGLOG%
  132. DIR /A: %%A:\ >>%DEBUGLOG%
  133. ECHO. >>%DEBUGLOG%
  134. IF !SLMGR_HAS_RUN!==0 (
  135. %SLMGR% -ipk 342DG-6YJR8-X92GV-V7DCV-P4K27
  136. %SLMGR% -ilc "%~dp0cert.xrm-ms" >>%DEBUGLOG%
  137. SET SLMGR_HAS_RUN=1
  138. ECHO SLMGR_HAS_RUN set to !SLMGR_HAS_RUN! >>%DEBUGLOG%
  139. ECHO. >>%DEBUGLOG%
  140. )
  141. ) ELSE (ECHO. & ECHO ^>^>^>^>autorun.inf found skipping drive %%A:^<^<^<^< & ECHO.)>>%DEBUGLOG%
  142. )
  143. )
  144. )
  145. IF %BOOTMGR_FOUND%==0 (
  146. ECHO ERROR: bootmgr not found >>%DEBUGLOG%
  147. GOTO :ERROR
  148. )
  149.  
  150. ECHO. >>%DEBUGLOG%
  151. ECHO BOOTMGR found %BOOTMGR_FOUND% time(s) >>%DEBUGLOG%
  152. IF EXIST "%TEMP%\UNMOUNT" DISKPART /S "%TEMP%\UNMOUNT" >>%DEBUGLOG%
  153. CALL :CLEANUP & GOTO :FINISH
  154.  
  155.  
  156. :ERROR
  157. ECHO error:=============================================================================================== >>%DEBUGLOG%
  158. IF EXIST "%TEMP%\UNMOUNT" DISKPART /S "%TEMP%\UNMOUNT" >>%DEBUGLOG%
  159. MOVE /Y %DEBUGLOG% "%USERPROFILE%\Desktop" >nul
  160. ECHO ERROR: install failed.
  161. ECHO.
  162. ECHO Press any key to exit.
  163. PAUSE >nul
  164. CALL :CLEANUP & EXIT
  165.  
  166.  
  167. :CLEANUP
  168. IF EXIST "%TEMP%\UNMOUNT" DEL /Q "%TEMP%\UNMOUNT"
  169. IF EXIST "%TEMP%\MOUNT" DEL /Q "%TEMP%\MOUNT"
  170. IF EXIST "%TEMP%\UNMOUNT" DEL /Q "%TEMP%\UNMOUNT_CHK"
  171. IF EXIST "%TEMP%\MOUNT" DEL /Q "%TEMP%\MOUNT_CHK"
  172. GOTO :EOF
  173.  
  174.  
  175. :PRODUCT_VER_CHECK
  176.  
  177. REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName" | FINDSTR /C:"Windows 7" >nul
  178. IF ERRORLEVEL 1 ECHO ERROR: not Windows 7 >>%DEBUGLOG% & ECHO. & GOTO :ERROR
  179.  
  180. FOR /F "tokens=3" %%A IN ('REG QUERY "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "EditionID"') DO SET EditionID=%%A
  181.  
  182. ECHO %EditionID% | FINDSTR /I "Starter" >nul
  183. IF NOT ERRORLEVEL 1 CALL :STARTER_KEY & GOTO :EOF
  184.  
  185. ECHO %EditionID% | FINDSTR /I "HomeBasic" >nul
  186. IF NOT ERRORLEVEL 1 CALL :HOMEBASIC_KEY & GOTO :EOF
  187.  
  188. ECHO %EditionID% | FINDSTR /I "HomePremium" >nul
  189. IF NOT ERRORLEVEL 1 CALL :HOMEPREMIUM_KEY & GOTO :EOF
  190.  
  191. ECHO %EditionID% | FINDSTR /I "Professional" >nul
  192. IF NOT ERRORLEVEL 1 CALL :PROFESSIONAL_KEY & GOTO :EOF
  193.  
  194. ECHO %EditionID% | FINDSTR /I "Ultimate" >nul
  195. IF NOT ERRORLEVEL 1 CALL :ULTIMATE_KEY & GOTO :EOF
  196.  
  197. IF ERRORLEVEL 1 ECHO ERROR: OS is unsupported>>%DEBUGLOG% & ECHO. & GOTO :ERROR
  198. GOTO :EOF
  199.  
  200.  
  201. :STARTER_KEY
  202. ECHO ERROR: no keys yet>>%DEBUGLOG% & ECHO. & GOTO :ERROR
  203. SET MAX_RANDOM=1
  204. SET /A RANDOM_PID_KEY=%RANDOM% %% %MAX_RANDOM%
  205. IF '%RANDOM_PID_KEY%'=='0' SET PID_KEY=
  206. IF '%RANDOM_PID_KEY%'=='1' SET PID_KEY=
  207. IF '%RANDOM_PID_KEY%'=='2' SET PID_KEY=
  208. IF '%RANDOM_PID_KEY%'=='3' SET PID_KEY=
  209. IF '%RANDOM_PID_KEY%'=='4' SET PID_KEY=
  210. GOTO :EOF
  211.  
  212.  
  213. :HOMEBASIC_KEY
  214. ECHO ERROR: no keys yet>>%DEBUGLOG% & ECHO. & GOTO :ERROR
  215. SET MAX_RANDOM=1
  216. SET /A RANDOM_PID_KEY=%RANDOM% %% %MAX_RANDOM%
  217. IF '%RANDOM_PID_KEY%'=='0' SET PID_KEY=
  218. IF '%RANDOM_PID_KEY%'=='1' SET PID_KEY=
  219. IF '%RANDOM_PID_KEY%'=='2' SET PID_KEY=
  220. IF '%RANDOM_PID_KEY%'=='3' SET PID_KEY=
  221. IF '%RANDOM_PID_KEY%'=='4' SET PID_KEY=
  222. GOTO :EOF
  223.  
  224.  
  225. :HOMEPREMIUM_KEY
  226. ECHO ERROR: no keys yet>>%DEBUGLOG% & ECHO. & GOTO :ERROR
  227. SET MAX_RANDOM=1
  228. SET /A RANDOM_PID_KEY=%RANDOM% %% %MAX_RANDOM%
  229. IF '%RANDOM_PID_KEY%'=='0' SET PID_KEY=
  230. IF '%RANDOM_PID_KEY%'=='1' SET PID_KEY=
  231. IF '%RANDOM_PID_KEY%'=='2' SET PID_KEY=
  232. IF '%RANDOM_PID_KEY%'=='3' SET PID_KEY=
  233. IF '%RANDOM_PID_KEY%'=='4' SET PID_KEY=
  234. GOTO :EOF
  235.  
  236.  
  237. :PROFESSIONAL_KEY
  238. SET MAX_RANDOM=1
  239. SET /A RANDOM_PID_KEY=%RANDOM% %% %MAX_RANDOM%
  240. IF '%RANDOM_PID_KEY%'=='0' SET PID_KEY=XXXXX-XXXXX-XXXXX-XXXX-XXXXXX
  241. IF '%RANDOM_PID_KEY%'=='1' SET PID_KEY=
  242. IF '%RANDOM_PID_KEY%'=='2' SET PID_KEY=
  243. IF '%RANDOM_PID_KEY%'=='3' SET PID_KEY=
  244. IF '%RANDOM_PID_KEY%'=='4' SET PID_KEY=
  245. GOTO :EOF
  246.  
  247.  
  248. :ULTIMATE_KEY
  249. SET MAX_RANDOM=3
  250. SET /A RANDOM_PID_KEY=%RANDOM% %% %MAX_RANDOM%
  251. IF '%RANDOM_PID_KEY%'=='0' SET PID_KEY=XXXXX-XXXXX-XXXXX-XXXX-XXXXXX
  252. IF '%RANDOM_PID_KEY%'=='1' SET PID_KEY=XXXXX-XXXXX-XXXXX-XXXX-XXXXXX
  253. IF '%RANDOM_PID_KEY%'=='2' SET PID_KEY=XXXXX-XXXXX-XXXXX-XXXX-XXXXXX
  254. IF '%RANDOM_PID_KEY%'=='3' SET PID_KEY=
  255. IF '%RANDOM_PID_KEY%'=='4' SET PID_KEY=
  256. GOTO :EOF
  257.  
  258.  
  259. :FINISH
  260. ECHO finish:============================================================================================== >>%DEBUGLOG%
  261. SHUTDOWN /R /T 0
  262. EXIT
Add Comment
Please, Sign In to add comment