Script for automating a large assortment of AME related actions
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1420 lines
98 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. @ECHO OFF
  2. REM ---------------------------START----------------------------
  3. MODE 80, 25
  4. TITLE Central AME Script & COLOR 70
  5. SET "ver=v1.0"
  6. REM Allows for more flexibility with these two variables
  7. FOR /F "delims=" %%d in ('echo "%~dp0"') DO SET "dirPath=%%d"
  8. SET "dirPath=%dirPath:~1,-1%"
  9. FOR /F "delims=" %%e in ('echo "%~f0"') DO SET "scriptPath=%%e"
  10. SET "scriptPath=%scriptPath:~1,-1%"
  11. FOR /F %%A IN ('"prompt $H &echo on &for %%B in (1) do rem"') DO SET BS=%%A
  12. PUSHD "%dirPath%"
  13. CALL :AUX-GETUSERNAME
  14. IF /I "%~1"=="LangSet" GOTO DISPLANG-USERCHECK
  15. IF /I "%~1"=="kbLangSet" GOTO KBLANG-PRESET
  16. IF /I "%~1"=="updateFinished" GOTO AUX-UPDATEFINISHED
  17. :PRE-ADMINCHECK1
  18. NET SESSION > NUL 2>&1
  19. IF %ERRORLEVEL% GTR 0 GOTO PRE-ADMINCHECK2
  20. CALL :AUX-ELEVATIONCHECK > NUL 2>&1
  21. ECHO "%currentUsername%" | FINDSTR /X /c:""""RestartRequired""" " && SET "userRestart=true"
  22. IF "%userRestart%"=="true" (
  23. ECHO Running this script after a username change may cause serious damage^! & ECHO.
  24. CHOICE /C YN /N /M "Run anyways? (Y/N): "
  25. IF %ERRORLEVEL%==1 GOTO HOME-MAINMENU
  26. IF %ERRORLEVEL%==2 EXIT /B 0 )
  27. GOTO HOME-MAINMENU
  28. :PRE-ADMINCHECK2
  29. POWERSHELL -NoP -C "Start-Process '%scriptPath%' -Verb RunAs" > NUL 2>&1
  30. IF %ERRORLEVEL% GTR 0 (
  31. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  32. ECHO Elevation canceled, run with limited functionality?
  33. ECHO [Y] [N]
  34. ECHO __________________________________________________________ & ECHO.
  35. CHOICE /C YN /N /M "%BS% Choose an option: "
  36. IF ERRORLEVEL 2 (
  37. EXIT /B 0
  38. ) ELSE (
  39. SET "lim=rem "
  40. GOTO HOME-MAINMENU
  41. )
  42. )
  43. EXIT /B 0
  44. REM -------------------------START-END--------------------------
  45. REM ------------
  46. REM MENU SECTION
  47. REM ------------
  48. REM ----------------------------MENU----------------------------
  49. :HOME-MAINMENU
  50. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  51. %lim%ECHO [1] Change Username or Password
  52. %lim%ECHO [2] Change Lockscreen Image
  53. %lim%ECHO [3] Change Profile Image
  54. ECHO [4] Change Language Settings
  55. %lim%ECHO [5] Elevate User to Administrator
  56. %lim%ECHO [6] Login w^/o Typing Username
  57. ECHO.
  58. %lim%ECHO [E] Extra
  59. ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  60. CHOICE /C 123456EX8 /N /M "%BS% Choose a menu option: "
  61. %lim%IF %ERRORLEVEL%==1 GOTO USERPASS-MENU
  62. %lim%IF %ERRORLEVEL%==2 GOTO LOCKSCREEN-GRABIMAGE
  63. %lim%IF %ERRORLEVEL%==3 GOTO PFP-GRABIMAGE
  64. IF %ERRORLEVEL%==4 GOTO HOME-LANGUAGE
  65. %lim%IF %ERRORLEVEL%==5 GOTO ELEVATE-MENU
  66. %lim%IF %ERRORLEVEL%==6 GOTO NOUSERNAME-MENU
  67. %lim%IF %ERRORLEVEL%==7 GOTO HOME-EXTRA
  68. IF %ERRORLEVEL%==8 EXIT /B 0
  69. GOTO HOME-MAINMENU
  70. :HOME-EXTRA
  71. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  72. %lim%ECHO [1] Enable Hibernation
  73. %lim%ECHO [2] Enable Windows Script Host (Legacy)
  74. %lim%ECHO [3] Enable NCSI Active Probing (Legacy)
  75. %lim%ECHO [4] Create New User (Beta)
  76. %lim%ECHO.
  77. ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  78. CHOICE /C 12340X /N /M "%BS% Choose a menu option: "
  79. %lim%IF %ERRORLEVEL%==1 GOTO HIBERNATE-MENU
  80. %lim%IF %ERRORLEVEL%==2 GOTO WSH-MENU
  81. %lim%IF %ERRORLEVEL%==3 GOTO NCSI-MENU
  82. %lim%IF %ERRORLEVEL%==4 (
  83. %lim% CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO WARNING: This is a beta feature, use at your own risk. & ECHO __________________________________________________________ & ECHO.
  84. %lim% PAUSE > NUL|SET /P =%BS% Press any key to to continue:
  85. %lim% GOTO NEWUSER-MENU
  86. %lim%)
  87. IF %ERRORLEVEL%==5 GOTO HOME-MAINMENU
  88. IF %ERRORLEVEL%==6 EXIT /B 0
  89. GOTO HOME-EXTRA
  90. :HOME-LANGUAGE
  91. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  92. %lim%ECHO [1] Change Display Language
  93. ECHO [2] Add Keyboard Language
  94. %lim%ECHO [3] Install Language Pack
  95. %lim%ECHO [4] Uninstall Language Pack
  96. ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  97. CHOICE /C 12340X /N /M "%BS% Choose a menu option: "
  98. %lim%IF %ERRORLEVEL%==1 SET "lpStatus=" & GOTO DISPLANG-MENUP1
  99. IF %ERRORLEVEL%==2 GOTO KBLANG-LANGS
  100. %lim%IF %ERRORLEVEL%==3 SET "lpStatus=added" & GOTO DISPLANG-MENUP1
  101. %lim%IF %ERRORLEVEL%==4 SET "lpStatus=removed" & GOTO DISPLANG-MENUP1
  102. IF %ERRORLEVEL%==5 GOTO HOME-MAINMENU
  103. IF %ERRORLEVEL%==6 EXIT /B 0
  104. GOTO HOME-LANGUAGE
  105. REM --------------------------MENU-END--------------------------
  106. REM -----------------
  107. REM Primary Functions
  108. REM -----------------
  109. REM --------------------------USERPASS--------------------------
  110. :USERPASS-MENU
  111. SETLOCAL
  112. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Change Username & ECHO [2] Change Password & ECHO [3] Change Administrator Password & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  113. CHOICE /C 1230X /N /M "%BS% Choose a menu option: "
  114. IF %ERRORLEVEL%==1 GOTO USERPASS-USERNAME
  115. IF %ERRORLEVEL%==2 GOTO USERPASS-PASSWORD
  116. IF %ERRORLEVEL%==3 GOTO USERPASS-ADMINPASSWORD
  117. IF %ERRORLEVEL%==4 ENDLOCAL & GOTO HOME-MAINMENU
  118. IF %ERRORLEVEL%==5 EXIT /B 0
  119. :USERPASS-USERNAME
  120. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  121. SET "newUsername="
  122. SET /P "newUsername=%BS% Enter the new username, or enter 'Cancel': "
  123. ECHO "%newUsername%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO USERPASS-MENU
  124. ECHO "%newUsername%" | FINDSTR /I /X /c:""""""" ">NUL 2>&1 && SET "blankUsr=true"
  125. IF "%blankUsr%"=="true" (
  126. ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO.
  127. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  128. ENDLOCAL & GOTO USERPASS-MENU
  129. )
  130. TIMEOUT /T 1 /NOBREAK > NUL
  131. FOR /F "usebackq tokens=3" %%A IN (`WMIC useraccount where "name='%currentUsername%'" rename "%newUsername%"`) DO SET "wmicOutput=%%A" > NUL 2>&1
  132. IF "%wmicOutput%"=="0;" ENDLOCAL & SET "currentUsername=%newUsername%" & ECHO. & ECHO. & ECHO Username Changed Successfully & ECHO A restart is recommended. & SET "upLoc=HOME-MAINMENU"
  133. REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting.
  134. IF "%wmicOutput%"=="Available." ENDLOCAL & ECHO. & ECHO. & ECHO You must restart before changing your username again. & SET "upLoc=USERPASS-MENU"
  135. IF "%wmicOutput%"=="9;" ENDLOCAL & ECHO. & ECHO. & ECHO Invalid input. & SET "upLoc=USERPASS-MENU"
  136. IF "%wmicOutput%"=="" ENDLOCAL & ECHO. & ECHO. & ECHO Unable to parse output. & SET "upLoc=USERPASS-MENU"
  137. ECHO __________________________________________________________ & ECHO.
  138. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  139. GOTO %upLoc%
  140. :USERPASS-PASSWORD
  141. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  142. SET "newPassword="
  143. SET /P "newPassword=%BS% Enter the new password, or enter 'Cancel': "
  144. ECHO "%newPassword%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO USERPASS-MENU
  145. TIMEOUT /T 1 /NOBREAK > NUL
  146. NET user "%currentUsername%" "%newPassword%" > NUL 2>&1
  147. IF %ERRORLEVEL% LEQ 0 ECHO. & ECHO. & ECHO Password Changed Successfully & SET "upLoc=HOME-MAINMENU"
  148. REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting.
  149. IF %ERRORLEVEL% GTR 0 ECHO. & ECHO. & ECHO An error occurred. & SET "upLoc=USERPASS-MENU"
  150. ECHO __________________________________________________________ & ECHO.
  151. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  152. ENDLOCAL & GOTO %upLoc%
  153. :USERPASS-ADMINPASSWORD
  154. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  155. SET "newPassword="
  156. SET /P "newPassword=%BS% Enter the new password, or enter 'Cancel': "
  157. ECHO "%newPassword%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO USERPASS-MENU
  158. TIMEOUT /T 1 /NOBREAK > NUL
  159. NET user "Administrator" "%newPassword%" > NUL 2>&1
  160. IF %ERRORLEVEL% LEQ 0 ECHO. & ECHO. & ECHO Administrator Password Changed Successfully & SET "upLoc=HOME-MAINMENU"
  161. REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting.
  162. IF %ERRORLEVEL% GTR 0 ECHO. & ECHO. & ECHO Action failed. & SET "upLoc=USERPASS-MENU"
  163. ECHO __________________________________________________________ & ECHO.
  164. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  165. ENDLOCAL & GOTO %upLoc%
  166. REM ------------------------USERPASS-END------------------------
  167. REM -------------------------LOCKSCREEN-------------------------
  168. :LOCKSCREEN-GRABIMAGE
  169. SETLOCAL
  170. REM Original Author & Co-Author: Logan Darklock, lucid
  171. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Select your image & ECHO.
  172. DIR /B "%SYSTEMDRIVE%\Users" | FINDSTR /x "%possibleUserDir%" > NUL 2>&1
  173. IF %ERRORLEVEL% LEQ 0 SET "UserPath=\%possibleUserDir%"
  174. FOR /F "usebackq delims=" %%I in (`POWERSHELL -NoP -C "[System.Reflection.Assembly]::LoadWithPartialName('System.windows.forms')|Out-Null;$OFD = New-Object System.Windows.Forms.OpenFileDialog;$OFD.Multiselect = $False;$OFD.Filter = 'Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.jfif)| *.jpg; *.jpeg; *.png; *.bmp; *.jfif';$OFD.InitialDirectory = '%SYSTEMDRIVE%\Users%UserPath%';$OFD.ShowDialog()|out-null;$OFD.FileNames"`) DO SET "lockImgPath=%%~I"
  175. ECHO "%lockImgPath%" | FINDSTR /X /c:""""""" ">NUL 2>&1 && SET "lockBlank=true"
  176. IF "%lockBlank%"=="true" (
  177. ECHO. & ECHO You must select an image. & ECHO __________________________________________________________ & ECHO.
  178. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  179. ENDLOCAL & GOTO HOME-MAINMENU
  180. )
  181. CHOICE /C YN /N /M "%BS% Remove lockscreen blur? (Y/N): "
  182. IF %ERRORLEVEL%==1 REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\System" /v DisableAcrylicBackgroundOnLogon /t REG_DWORD /d 1 /f > NUL
  183. IF %ERRORLEVEL%==2 REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows" /v DisableAcrylicBackgroundOnLogon /f > NUL 2>&1
  184. :LOCKSCREEN-DEPLOY
  185. TIMEOUT /T 1 /NOBREAK > NUL
  186. REM Copy wallpaper to the right spot
  187. TAKEOWN /F "%WINDIR%\Web\Screen\img100.jpg">NUL 2>&1 & TAKEOWN /F "%WINDIR%\Te\Web\Screen\img103.png">NUL 2>&1 & TAKEOWN /F "%WINDIR%\Web\Wallpaper\Windows\img0.jpg" > NUL 2>&1
  188. ICACLS "%WINDIR%\Web\Screen\img100.jpg" /reSET>NUL & ICACLS "%WINDIR%\Web\Screen\img103.png" /reSET>NUL & ICACLS "%WINDIR%\Web\Wallpaper\Windows\img0.jpg" /reSET > NUL
  189. COPY "%lockImgPath%" "%WINDIR%\Web\Screen\img100.jpg" /y>NUL & COPY "%lockImgPath%" "%WINDIR%\Web\Screen\img103.png" /y>NUL & COPY "%lockImgPath%" "%WINDIR%\Web\Wallpaper\Windows\img0.jpg" /y > NUL
  190. REM Clear cache
  191. TAKEOWN /R /D Y /F "%PROGRAMDATA%\Microsoft\Windows\SystemData" > NUL
  192. ICACLS "%PROGRAMDATA%\Microsoft\Windows\SystemData" /reSET /t > NUL
  193. FOR /D %%x in ("%PROGRAMDATA%\Microsoft\Windows\SystemData\*") do (
  194. FOR /D %%y in ("%%x\ReadOnly\LockScreen_*") do rd /s /q "%%y" )
  195. ECHO. & ECHO. & ECHO Wallpaper changed successfully & ECHO __________________________________________________________ & ECHO.
  196. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  197. ENDLOCAL & GOTO HOME-MAINMENU
  198. REM -----------------------LOCKSCREEN-END-----------------------
  199. REM ----------------------------PFP-----------------------------
  200. :PFP-GRABIMAGE
  201. SETLOCAL
  202. REM Original Author & Co-Author: Logan Darklock, lucid
  203. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Select your image & ECHO.
  204. REM Used for default starting directory for file selection window
  205. DIR /B "%SYSTEMDRIVE%\Users" | FINDSTR /x "%possibleUserDir%" > NUL 2>&1
  206. IF %ERRORLEVEL% LEQ 0 SET "UserPath=\%possibleUserDir%"
  207. FOR /F "usebackq delims=" %%I in (`POWERSHELL -NoP -C "[System.Reflection.Assembly]::LoadWithPartialName('System.windows.forms')|Out-Null;$OFD = New-Object System.Windows.Forms.OpenFileDialog;$OFD.Multiselect = $False;$OFD.Filter = 'Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.jfif)| *.jpg; *.jpeg; *.png; *.bmp; *.jfif';$OFD.InitialDirectory = '%SYSTEMDRIVE%\Users%UserPath%';$OFD.ShowDialog()|out-null;$OFD.FileNames"`) DO SET "pfpImgPath=%%~I"
  208. ECHO "%pfpImgPath%" | FINDSTR /I /X /c:""""""" ">NUL 2>&1 && SET "pfpBlank=true"
  209. IF "%pfpBlank%"=="true" (
  210. ECHO. & ECHO You must select an image & ECHO __________________________________________________________ & ECHO.
  211. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  212. ENDLOCAL & GOTO HOME-MAINMENU
  213. )
  214. :PFP-DEPLOY
  215. ECHO Setting profile image...
  216. FOR /F "usebackq delims=" %%F IN (`WMIC useraccount where "name="%currentUsername%"" get sid ^| FINDSTR "S-"`) DO SET PFPSID=%%F
  217. SET "PFPSID=%PFPSID:~0,-3%"
  218. REM On recent Windows 10 versions, resolutions called for are:
  219. REM 32x32, 40x40, 48x48, 64x64, 96x96, 192x192, 208x208, 240x240, 424x424,
  220. REM 448x448, 1080x1080
  221. SET "usrPfpDir=%PUBLIC%\AccountPictures\%PFPSID%"
  222. MKDIR "%usrPfpDir%" > NUL 2>&1
  223. TAKEOWN /r /d Y /f "%usrPfpDir%" > NUL
  224. ICACLS "%usrPfpDir%" /reset /t > NUL
  225. DEL /Q /F "%usrPfpDir%\*" > NUL
  226. POWERSHELL -NoP -C "Add-Type -AssemblyName System.Drawing; $img = [System.Drawing.Image]::FromFile((Get-Item '%pfpImgPath%')); $a = New-Object System.Drawing.Bitmap(32, 32); $graph = [System.Drawing.Graphics]::FromImage($a); $graph.DrawImage($img, 0, 0, 32, 32); $a.Save('%usrPfpDir%\32x32.png'); $b = New-Object System.Drawing.Bitmap(40, 40); $graph = [System.Drawing.Graphics]::FromImage($b); $graph.DrawImage($img, 0, 0, 40, 40); $b.Save('%usrPfpDir%\40x40.png'); $c = New-Object System.Drawing.Bitmap(48, 48); $graph = [System.Drawing.Graphics]::FromImage($c); $graph.DrawImage($img, 0, 0, 48, 48); $c.Save('%usrPfpDir%\48x48.png'); $d = New-Object System.Drawing.Bitmap(64, 64); $graph = [System.Drawing.Graphics]::FromImage($d); $graph.DrawImage($img, 0, 0, 64, 64); $d.Save('%usrPfpDir%\64x64.png'); $e = New-Object System.Drawing.Bitmap(96, 96); $graph = [System.Drawing.Graphics]::FromImage($e); $graph.DrawImage($img, 0, 0, 96, 96); $e.Save('%usrPfpDir%\96x96.png'); $f = New-Object System.Drawing.Bitmap(192, 192); $graph = [System.Drawing.Graphics]::FromImage($f); $graph.DrawImage($img, 0, 0, 192, 192); $f.Save('%usrPfpDir%\192x192.png'); $g = New-Object System.Drawing.Bitmap(208, 208); $graph = [System.Drawing.Graphics]::FromImage($g); $graph.DrawImage($img, 0, 0, 208, 208); $g.Save('%usrPfpDir%\208x208.png'); $h = New-Object System.Drawing.Bitmap(240, 240); $graph = [System.Drawing.Graphics]::FromImage($h); $graph.DrawImage($img, 0, 0, 240, 240); $h.Save('%usrPfpDir%\240x240.png'); $i = New-Object System.Drawing.Bitmap(424, 424); $graph = [System.Drawing.Graphics]::FromImage($i); $graph.DrawImage($img, 0, 0, 424, 424); $i.Save('%usrPfpDir%\424x424.png'); $j = New-Object System.Drawing.Bitmap(448, 448); $graph = [System.Drawing.Graphics]::FromImage($j); $graph.DrawImage($img, 0, 0, 448, 448); $j.Save('%usrPfpDir%\448x448.png'); $k = New-Object System.Drawing.Bitmap(1080, 1080); $graph = [System.Drawing.Graphics]::FromImage($k); $graph.DrawImage($img, 0, 0, 1080, 1080); $k.Save('%usrPfpDir%\1080x1080.png')"
  227. SET "usrPfpRegKey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%PFPSID%"
  228. REM Runs the reg delete command as SYSTEM
  229. SCHTASKS /create /tn "AME PFPREG" /tr "CMD /C 'REG DELETE '%usrPfpRegKey%' /f'" /sc MONTHLY /f /rl HIGHEST /ru "SYSTEM" > NUL
  230. SCHTASKS /run /tn "AME PFPREG" > NUL
  231. SCHTASKS /delete /tn "AME PFPREG" /f > NUL
  232. REG ADD "%usrPfpRegKey%" /f > NUL
  233. REG ADD "%usrPfpRegKey%" /v Image32 /t REG_SZ /d "%usrPfpDir%\32x32.png" /f > NUL
  234. REG ADD "%usrPfpRegKey%" /v Image40 /t REG_SZ /d "%usrPfpDir%\40x40.png" /f > NUL
  235. REG ADD "%usrPfpRegKey%" /v Image48 /t REG_SZ /d "%usrPfpDir%\48x48.png" /f > NUL
  236. REG ADD "%usrPfpRegKey%" /v Image64 /t REG_SZ /d "%usrPfpDir%\64x64.png" /f > NUL
  237. REG ADD "%usrPfpRegKey%" /v Image96 /t REG_SZ /d "%usrPfpDir%\96x96.png" /f > NUL
  238. REG ADD "%usrPfpRegKey%" /v Image192 /t REG_SZ /d "%usrPfpDir%\192x192.png" /f > NUL
  239. REG ADD "%usrPfpRegKey%" /v Image208 /t REG_SZ /d "%usrPfpDir%\208x208.png" /f > NUL
  240. REG ADD "%usrPfpRegKey%" /v Image240 /t REG_SZ /d "%usrPfpDir%\240x240.png" /f > NUL
  241. REG ADD "%usrPfpRegKey%" /v Image424 /t REG_SZ /d "%usrPfpDir%\424x424.png" /f > NUL
  242. REG ADD "%usrPfpRegKey%" /v Image448 /t REG_SZ /d "%usrPfpDir%\448x448.png" /f > NUL
  243. REG ADD "%usrPfpRegKey%" /v Image1080 /t REG_SZ /d "%usrPfpDir%\1080x1080.png" /f > NUL
  244. REG ADD "HKU\%PFPSID%\SOFTWARE\OpenShell\StartMenu\Settings" /v UserPicturePath /t REG_SZ /d "%usrPfpDir%\448x448.png" /f > NUL
  245. GPUPDATE /force > NUL
  246. ECHO. & ECHO. & ECHO Profile image changed successfully & ECHO __________________________________________________________ & ECHO.
  247. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  248. ENDLOCAL & GOTO HOME-MAINMENU
  249. REM --------------------------PFP-END---------------------------
  250. REM -------------------------ELEVATION--------------------------
  251. :ELEVATE-MENU
  252. SETLOCAL
  253. CLS & POWERSHELL -NoP -C "Write-Output ' %currentUsername%: %userStatus%'" & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Elevate your user & ECHO [2] De-elevate your user & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  254. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  255. IF %ERRORLEVEL%==1 SET "elevMenu=1" & GOTO ELEVATE-ELEVATE
  256. IF %ERRORLEVEL%==2 SET "elevMenu=2" & GOTO ELEVATE-REVOKE
  257. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  258. IF %ERRORLEVEL%==4 EXIT /B 0
  259. :ELEVATE-ELEVATE
  260. IF "%userStatus%"=="Elevated" (
  261. CLS & POWERSHELL -NoP -C "Write-Output ' %currentUsername%: %userStatus%'" & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO. & ECHO The current user is already an Administrator. & ECHO __________________________________________________________& ECHO.
  262. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  263. ENDLOCAL & GOTO ELEVATE-MENU )
  264. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Granting Admin rights to the current user...
  265. TIMEOUT /T 2 /NOBREAK > NUL
  266. NET localgroup administrators "%currentUsername%" /add > NUL 2>&1
  267. IF %ERRORLEVEL% GTR 0 ECHO. & SET "elevFail=true"
  268. IF %ERRORLEVEL% LEQ 0 SET "userStatus=Elevated"
  269. GOTO ELEVATE-FINISH
  270. :ELEVATE-REVOKE
  271. IF "%userStatus%"=="Not Elevated" (
  272. CLS & POWERSHELL -NoP -C "Write-Output ' %currentUsername%: %userStatus%'" & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO. & ECHO The current user is not an Administrator. & ECHO __________________________________________________________& ECHO.
  273. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  274. ENDLOCAL & GOTO ELEVATE-MENU )
  275. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Revoking Admin rights from the current user...
  276. TIMEOUT /T 2 /NOBREAK > NUL 2>&1
  277. NET localgroup administrators "%currentUsername%" /delete > NUL 2>&1
  278. IF %ERRORLEVEL% GTR 0 ECHO. & SET "elevFail=true"
  279. IF %ERRORLEVEL% LEQ 0 SET "userStatus=Not Elevated"
  280. GOTO ELEVATE-FINISH
  281. :ELEVATE-FINISH
  282. IF "%elevFail%"=="true" (
  283. ECHO. & ECHO. & ECHO Action failed. A restart may fix this. & ECHO __________________________________________________________ & ECHO.
  284. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  285. ENDLOCAL & GOTO HOME-MAINMENU )
  286. IF "%elevMenu%"=="1" SET "upOut= The current user is now an Administrator"
  287. IF "%elevMenu%"=="2" SET "upOut= Admin rights have been revoked for the current user"
  288. ECHO. & ECHO. & ECHO %upOut% & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO.
  289. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): "
  290. IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0
  291. IF %ERRORLEVEL%==2 ENDLOCAL & SET "userStatus=%userStatus%" & GOTO HOME-MAINMENU
  292. REM -----------------------ELEVATION-END------------------------
  293. REM --------------------------DISPLANG--------------------------
  294. :DISPLANG-MENUP1
  295. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  296. ECHO [1] Arabic (ar-SA) & ECHO [2] Bulgarian (bg-BG) & ECHO [3] Chineese [Simplified] (zh-CN) & ECHO [4] Chineese [Traditional] (zh-TW) & ECHO [5] Croatian (hr-HR) & ECHO [6] Czech (cs-CZ) & ECHO [7] Danish (da-DK) & ECHO.
  297. ECHO [N] Next Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 1/6 & ECHO __________________________________________________________ & ECHO.
  298. CHOICE /C 1234567N0X /N /M "%BS% Choose a menu option: "
  299. IF %ERRORLEVEL%==1 SET "langSel=ar-SA" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  300. IF %ERRORLEVEL%==2 SET "langSel=bg-BG" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  301. IF %ERRORLEVEL%==3 SET "langSel=zh-CN" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  302. IF %ERRORLEVEL%==4 SET "langSel=zh-TW" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  303. IF %ERRORLEVEL%==5 SET "langSel=hr-HR" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  304. IF %ERRORLEVEL%==6 SET "langSel=cs-CZ" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  305. IF %ERRORLEVEL%==7 SET "langSel=da-DK" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  306. IF %ERRORLEVEL%==8 GOTO DISPLANG-MENUP2
  307. IF %ERRORLEVEL%==9 GOTO HOME-MAINMENU
  308. IF %ERRORLEVEL%==10 EXIT /B 0
  309. :DISPLANG-MENUP2
  310. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  311. ECHO [1] Dutch (nl-NL) & ECHO [2] English [US] (en-US) & ECHO [3] English [UK] (en-GB) & ECHO [4] Estonian (et-EE) & ECHO [5] Finnish (fi-FI) & ECHO [6] French [Canada] (fr-CA) & ECHO [7] French [France] (fr-FR) & ECHO.
  312. ECHO [N] Next Page & ECHO [P] Previous Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 2/6 & ECHO __________________________________________________________ & ECHO.
  313. CHOICE /C 1234567NP0X /N /M "%BS% Choose a menu option: "
  314. IF %ERRORLEVEL%==1 SET "langSel=nl-NL" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  315. IF %ERRORLEVEL%==2 SET "langSel=en-US" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  316. IF %ERRORLEVEL%==3 SET "langSel=en-GB" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  317. IF %ERRORLEVEL%==4 SET "langSel=et-EE" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  318. IF %ERRORLEVEL%==5 SET "langSel=fi-FI" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  319. IF %ERRORLEVEL%==6 SET "langSel=fr-CA" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  320. IF %ERRORLEVEL%==7 SET "langSel=fr-FR" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  321. IF %ERRORLEVEL%==8 GOTO DISPLANG-MENUP3
  322. IF %ERRORLEVEL%==9 GOTO DISPLANG-MENUP1
  323. IF %ERRORLEVEL%==10 GOTO HOME-MAINMENU
  324. IF %ERRORLEVEL%==11 EXIT /B 0
  325. :DISPLANG-MENUP3
  326. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  327. ECHO [1] German (de-DE) & ECHO [2] Greek (el-GR) & ECHO [3] Hebrew (he-IL) & ECHO [4] Hungarian (hu-HU) & ECHO [5] Italian (it-IT) & ECHO [6] Japanese (ja-JP) & ECHO [7] Korean (ko-KR) & ECHO.
  328. ECHO [N] Next Page & ECHO [P] Previous Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 3/6 & ECHO __________________________________________________________ & ECHO.
  329. CHOICE /C 1234567NP0X /N /M "%BS% Choose a menu option: "
  330. IF %ERRORLEVEL%==1 SET "langSel=de-DE" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  331. IF %ERRORLEVEL%==2 SET "langSel=el-GR" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  332. IF %ERRORLEVEL%==3 SET "langSel=he-IL" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  333. IF %ERRORLEVEL%==4 SET "langSel=hu-HU" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  334. IF %ERRORLEVEL%==5 SET "langSel=it-IT" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  335. IF %ERRORLEVEL%==6 SET "langSel=ja-JP" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  336. IF %ERRORLEVEL%==7 SET "langSel=ko-KR" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  337. IF %ERRORLEVEL%==8 GOTO DISPLANG-MENUP4
  338. IF %ERRORLEVEL%==9 GOTO DISPLANG-MENUP2
  339. IF %ERRORLEVEL%==10 GOTO HOME-MAINMENU
  340. IF %ERRORLEVEL%==11 EXIT /B 0
  341. :DISPLANG-MENUP4
  342. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  343. ECHO [1] Latvian (lv-LV) & ECHO [2] Lithuanian (lt-LT) & ECHO [3] Norwegian (nb-NO) & ECHO [4] Polish (pl-PL) & ECHO [5] Portugeese [Brazil] (pt-BR) & ECHO [6] Portugeese [Portugal] (pt-PT) & ECHO [7] Romanian (ro-RO) & ECHO.
  344. ECHO [N] Next Page & ECHO [P] Previous Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 4/6 & ECHO __________________________________________________________ & ECHO.
  345. CHOICE /C 1234567NP0X /N /M "%BS% Choose a menu option: "
  346. IF %ERRORLEVEL%==1 SET "langSel=lv-LV" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  347. IF %ERRORLEVEL%==2 SET "langSel=lt-LT" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  348. IF %ERRORLEVEL%==3 SET "langSel=nb-NO" & SET "dispDl=2.9" & GOTO DISPLANG-DOWNLOAD
  349. IF %ERRORLEVEL%==4 SET "langSel=pl-PL" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  350. IF %ERRORLEVEL%==5 SET "langSel=pt-BR" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  351. IF %ERRORLEVEL%==6 SET "langSel=pt-PT" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  352. IF %ERRORLEVEL%==7 SET "langSel=ro-RO" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  353. IF %ERRORLEVEL%==8 GOTO DISPLANG-MENUP5
  354. IF %ERRORLEVEL%==9 GOTO DISPLANG-MENUP3
  355. IF %ERRORLEVEL%==10 GOTO HOME-MAINMENU
  356. IF %ERRORLEVEL%==11 EXIT /B 0
  357. :DISPLANG-MENUP5
  358. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  359. ECHO [1] Russian (ru-RU) & ECHO [2] Serbian (sr-Latn-RS) & ECHO [3] Slovak (sk-SK) & ECHO [4] Slovenian (sl-SI) & ECHO [5] Spanish [Mexico] (es-MX) & ECHO [6] Spanish [Spain] (es-ES) & ECHO [7] Swedish (sv-SE) & ECHO.
  360. ECHO [N] Next Page & ECHO [P] Previous Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 5/6 & ECHO __________________________________________________________ & ECHO.
  361. CHOICE /C 1234567NP0X /N /M "%BS% Choose a menu option: "
  362. IF %ERRORLEVEL%==1 SET "langSel=ru-RU" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  363. IF %ERRORLEVEL%==2 SET "langSel=sr-Latn-RS" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  364. IF %ERRORLEVEL%==3 SET "langSel=sk-SK" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  365. IF %ERRORLEVEL%==4 SET "langSel=sl-SI" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  366. IF %ERRORLEVEL%==5 SET "langSel=es-MX" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  367. IF %ERRORLEVEL%==6 SET "langSel=es-ES" & SET "dispDl=2.5" & GOTO DISPLANG-DOWNLOAD
  368. IF %ERRORLEVEL%==7 SET "langSel=sv-SE" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  369. IF %ERRORLEVEL%==8 GOTO DISPLANG-MENUP6
  370. IF %ERRORLEVEL%==9 GOTO DISPLANG-MENUP4
  371. IF %ERRORLEVEL%==10 GOTO HOME-MAINMENU
  372. IF %ERRORLEVEL%==11 EXIT /B 0
  373. :DISPLANG-MENUP6
  374. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  375. ECHO [1] Thai (th-TH) & ECHO [2] Turkish (tr-TR) & ECHO [3] Ukrainian (uk-UA) & ECHO.
  376. ECHO [P] Previous Page & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO Page 6/6 & ECHO __________________________________________________________ & ECHO.
  377. CHOICE /C 123P0X /N /M "%BS% Choose a menu option: "
  378. IF %ERRORLEVEL%==1 SET "langSel=th-TH" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  379. IF %ERRORLEVEL%==2 SET "langSel=tr-TR" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  380. IF %ERRORLEVEL%==3 SET "langSel=uk-UA" & SET "dispDl=3.2" & GOTO DISPLANG-DOWNLOAD
  381. IF %ERRORLEVEL%==4 GOTO DISPLANG-MENUP5
  382. IF %ERRORLEVEL%==5 GOTO HOME-MAINMENU
  383. IF %ERRORLEVEL%==6 EXIT /B 0
  384. :DISPLANG-DOWNLOAD
  385. SETLOCAL
  386. REM Check if language pack is already installed
  387. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO.
  388. IF "%lpStatus%"=="removed" GOTO DISPLANG-LPREMOVE
  389. WHERE 7z.exe>NUL 2>&1 && SET "dispSkip0=rem "
  390. WHERE choco.exe>NUL 2>&1 && SET "dispChoco=true"
  391. DISM /Online /Get-Intl /English | FIND "Installed language(s): %langSel%" > NUL 2>&1
  392. IF %ERRORLEVEL% LEQ 0 ECHO. & GOTO DISPLANG-USERCHECK
  393. FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "IMAGENAME eq lpksetup.exe" /NH /FO csv') DO SET lpkStatus=%%A
  394. IF "%lpkStatus%"=="," (
  395. ECHO. & ECHO. & ECHO All instances of lpksetup.exe must be closed. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE )
  396. ECHO. & ECHO A ~%dispDl%GB Language Packs ISO must be downloaded & ECHO.
  397. CHOICE /C YN /N /M "%BS% Continue? (Y/N): "
  398. IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU
  399. PING -n 1 archlinux.org -w 20000 > NUL 2>&1
  400. IF %ERRORLEVEL% GTR 0 (
  401. ECHO. & ECHO. & ECHO An internet connection is required. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE )
  402. FOR /F "tokens=2 delims==" %%A IN ('WMIC logicaldisk where "DeviceID='%~d0'" get FreeSpace /format:value') DO SET freeSpace=%%A
  403. SET "freeSpace=%freeSpace:~0,-10%"
  404. IF "%freeSpace%"=="" SET "freeSpace=1"
  405. IF %freeSpace% LSS 5 (
  406. ECHO. & ECHO. & ECHO Not enough free disk space. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE )
  407. IF EXIST "%dirPath%LangPacks.ISO" DEL /Q "%dirPath%LangPacks.ISO"
  408. IF EXIST "%dirPath%LangPacks" RMDIR /Q /S "%dirPath%LangPacks"
  409. REM If 7zip must be installed, there will not be enough space to display everything in 25 lines (script height) without this line
  410. %dispSkip0%CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^|
  411. ECHO. & ECHO Download Progress
  412. IF "%dispDl%"=="2.5" CURL --range 0-2480000000 -L --progress-bar "https://software-download.microsoft.com/download/pr/19041.1.191206-1406.vb_release_CLIENTLANGPACKDVD_OEM_MULTI.iso" --output "%dirPath%LangPacks.ISO"
  413. IF "%dispDl%"=="2.9" CURL --range 0-2900000000 -L --progress-bar "https://software-download.microsoft.com/download/pr/19041.1.191206-1406.vb_release_CLIENTLANGPACKDVD_OEM_MULTI.iso" --output "%dirPath%LangPacks.ISO"
  414. IF "%dispDl%"=="3.2" CURL --range 0-3230000000 -L --progress-bar "https://software-download.microsoft.com/download/pr/19041.1.191206-1406.vb_release_CLIENTLANGPACKDVD_OEM_MULTI.iso" --output "%dirPath%LangPacks.ISO"
  415. FOR %%A IN ("%dirPath%LangPacks.ISO") DO SET "langISOSize=%%~zA"
  416. IF "%langISOSize%"=="" SET "langISOSize=1"
  417. REM Detects size of ISO file, this essentially allows for a simple error detection.
  418. IF %langISOSize% LSS 700000 (
  419. DEL /Q "%dirPath%LangPacks.ISO" > NUL
  420. ENDLOCAL & GOTO AUX-DOWNLOADFAILED )
  421. :DISPLANG-INSTALL
  422. %dispSkip0%IF NOT "%dispChoco%"=="true" (
  423. %dispSkip0% ECHO. & ECHO. & ECHO 7zip or choclatey must be installed. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE )
  424. %dispSkip0%ECHO. & ECHO Installing 7zip... & choco install -y --force --allow-empty-checksums "7zip" > NUL
  425. 7z e -y -o"%dirPath%LangPacks" "%dirPath%LangPacks.ISO" x64\langpacks\*.cab > NUL 2>&1
  426. ECHO. & ECHO Installing language pack. This might take awhile & ECHO.
  427. FOR /F "tokens=2" %%A IN ('DATE /T') DO SET "dateAfter=%%A"
  428. SET "timeAfter=%TIME:~0,-3%"
  429. LPKSETUP /i %langSel% /p "%dirPath%LangPacks\Microsoft-Windows-Client-Language-Pack_x64_%langSel%.cab" /r > NUL
  430. :lpkInstLogLoop
  431. TIMEOUT /T 1 /NOBREAK > NUL
  432. POWERSHELL -NoP -C "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2014 2007" > NUL
  433. IF %ERRORLEVEL% LSS 1 (
  434. %dispSkip0%ECHO Removing 7zip... & choco uninstall 7zip -y --force-dependencies --allow-empty-checksums>NUL & ECHO.
  435. DEL /Q "%dirPath%LangPacks.ISO">NUL & RMDIR /Q /S "%dirPath%LangPacks" & ECHO. & ECHO. & ECHO Action failed. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE
  436. )
  437. POWERSHELL -NoP -C "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2000" > NUL
  438. IF %ERRORLEVEL% LSS 1 (
  439. %dispSkip0%ECHO Removing 7zip... & choco uninstall 7zip -y --force-dependencies --allow-empty-checksums>NUL & ECHO.
  440. IF "%lpStatus%"=="added" DEL /Q "%dirPath%LangPacks.ISO">NUL & RMDIR /Q /S "%dirPath%LangPacks" & GOTO DISPLANG-LPCOMPLETE
  441. DEL /Q "%dirPath%LangPacks.ISO">NUL & RMDIR /Q /S "%dirPath%LangPacks" & GOTO DISPLANG-USERCHECK
  442. )
  443. GOTO :lpkInstLogLoop
  444. :DISPLANG-USERCHECK
  445. IF /I "%~1"=="LangSet" WAITFOR /SI Golden>NUL 2>&1 & SET "langSel=%~2" & SET "makeKBDef=%~3" & GOTO DISPLANG-SETLANG
  446. CHOICE /C YN /N /M "%BS% Make default keyboard language? (Y/N): "
  447. IF %ERRORLEVEL%==2 SET "makeKBDef=false"
  448. REM The FOR command creates a new process ID, and thus cannot be used here
  449. POWERSHELL -NoP -C "(Get-WmiObject Win32_Process -Filter ProcessId=$PID).ParentProcessId" > %temp%\CentralAMEProcessID.txt
  450. FOR /F "delims=" %%A IN (%temp%\CentralAMEProcessID.txt) DO SET "scriptPID=%%A" & DEL "%temp%\CentralAMEProcessID.txt"
  451. REM Detects if the script is being run under the currently logged in user. If not it runs a second instance as the current user
  452. FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "PID eq %scriptPID%" /FI "USERNAME eq %currentUsername%" /NH /FO csv') DO SET processRunOut=%%A
  453. IF NOT "%processRunOut%"=="," (
  454. REM If %lim% = rem that means the script is NOT being run as administrator. There's a small chance someone attempts to run it as another non-admin user,
  455. REM this would be problematic as schtasks requires admin privilages.
  456. IF "%lim%"=="rem " ECHO. & ECHO. & ECHO Script must be run as the current user & ECHO or with administrator privilages. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE
  457. SETLOCAL ENABLEDELAYEDEXPANSION
  458. SCHTASKS /CREATE /tn SetDispLang /tr "CMD /C 'START /min '' '%scriptPath%' LangSet %langSel% %makeKBDef%'" /sc ONSTART /ru "%currentUsername%" /it /f > NUL
  459. REM RUNAS will work, however it requires the user to enter a password, and won't accept a blank one. This is a lot more simple and reliable
  460. SCHTASKS /RUN /tn SetDispLang > NUL
  461. WAITFOR Golden /T 10 > NUL 2>&1
  462. IF !ERRORLEVEL! LSS 1 SCHTASKS /DELETE /tn SetDispLang /f>NUL & GOTO DISPLANG-COMPLETE
  463. SCHTASKS /DELETE /tn SetDispLang /f > NUL
  464. ENDLOCAL & ENDLOCAL & ECHO. & ECHO. & ECHO Action failed. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE
  465. )
  466. :DISPLANG-SETLANG
  467. ECHO. & ECHO Setting language...
  468. FOR /F "delims= " %%A IN ('POWERSHELL -NoP -C "Get-WinDefaultInputMethodOverride"') DO SET "possibleLangDef=%%A"
  469. IF NOT "%possibleLangDef%"=="" SET "currentLangDef=%possibleLangDef%" & SET "dispSkip1=rem "
  470. %dispSkip1%FOR /F "delims=" %%A IN ('POWERSHELL -NoP -C "(Get-WinUserLanguageList)[0].InputMethodTips"') DO SET "currentLangDef=%%A"
  471. SETLOCAL ENABLEDELAYEDEXPANSION
  472. REM Accounts for zero input methods. Very unlikely scenario
  473. POWERSHELL -NoP -c "(Get-WinUserLanguageList).InputMethodTips" | FINDSTR ":" > NUL 2>&1
  474. IF %ERRORLEVEL% GTR 0 SET "dispSkip2=rem "
  475. %dispSkip2%FOR /F "delims=" %%A IN ('POWERSHELL -NoP -C "(Get-WinUserLanguageList).InputMethodTips"') DO SET "oldInputMethods=!oldInputMethods!;$LangList[0].InputMethodTips.Add('%%A')"
  476. POWERSHELL -NoP -C "Set-WinSystemLocale %langSel%; $LangList = New-WinUserLanguageList %langSel%%oldInputMethods%; Set-WinUserLanguageList $LangList -Force"
  477. REM Clears override
  478. IF "%makeKBDef%"=="" POWERSHELL -NoP -C "Set-WinDefaultInputMethodOverride"
  479. IF "%makeKBDef%"=="false" POWERSHELL -NoP -C "Set-WinDefaultInputMethodOverride "%currentLangDef%""
  480. ENDLOCAL
  481. IF /I "%~1"=="LangSet" EXIT 0
  482. :DISPLANG-COMPLETE
  483. ECHO. & ECHO. & ECHO Display language changed to %langSel% & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO.
  484. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): "
  485. IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0
  486. IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU
  487. :DISPLANG-LPCOMPLETE
  488. %dispSkip0%ECHO. & ECHO Removing 7zip... & choco uninstall 7zip.install -y --force > NUL
  489. %dispSkip0%choco uninstall 7zip -y --force > NUL
  490. SET "cenStr=LanguagePack %langSel% %lpStatus% successfully"
  491. CALL :AUX-CENTERTEXT
  492. ECHO. & ECHO. & ECHO %cenStr% & ECHO A restart is recommended. & ECHO __________________________________________________________ & ECHO.
  493. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  494. ENDLOCAL & GOTO HOME-MAINMENU
  495. :DISPLANG-LPREMOVE
  496. SET "dispSkip0=rem "
  497. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO.
  498. FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "IMAGENAME eq lpksetup.exe" /NH /FO csv') DO SET "lpkStatus=%%A"
  499. IF "%lpkStatus%"=="," ECHO. & ECHO. & ECHO All instances of lpksetup.exe must be closed. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU )
  500. FOR /F "tokens=2" %%A IN ('DATE /T') DO SET "dateAfter=%%A"
  501. SET "timeAfter=%TIME:~0,-3%"
  502. ECHO Uninstalling %langSel% LanguagePack...
  503. LPKSETUP /u %langSel% /r
  504. :lpkRemLogLoop
  505. TIMEOUT /T 1 /NOBREAK > NUL
  506. POWERSHELL -command "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2014 2008" > NUL
  507. IF %ERRORLEVEL% LSS 1 ECHO. & ECHO. & ECHO Action failed. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU
  508. POWERSHELL -command "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2001" > NUL
  509. IF %ERRORLEVEL% LSS 1 GOTO DISPLANG-LPCOMPLETE
  510. GOTO lpkRemLogLoop
  511. REM ------------------------DISPLANG-END------------------------
  512. REM ---------------------------KBLANG---------------------------
  513. :KBLANG-LANGS
  514. SETLOCAL ENABLEDELAYEDEXPANSION
  515. FOR /F "tokens=1 delims=:" %%A IN ('FINDSTR /B /N /C:"REM DB-Languages" "%~f0"') DO SET /A dbStartLine=%%A
  516. SET /A count=0
  517. SET "kbSub=false"
  518. FOR /F "usebackq tokens=1, 2, 4, 6, 8, 10, 12, 14 skip=%dbStartLine% delims=|" %%A IN ("%~f0") DO (
  519. IF "%%A"=="REM DB-Corresponding Commands" GOTO KBLANG-CCOMMS
  520. IF "%%B"=="" GOTO KBLANG-CCOMMS
  521. IF NOT "%%B"=="spacer" SET /A count=!count!+1 & SET "lang!count!=%%B"
  522. IF "%%C"=="" GOTO KBLANG-CCOMMS
  523. IF NOT "%%C"=="spacer" SET /A "count=!count!+1" & SET "lang!count!=%%C"
  524. IF "%%D"=="" GOTO KBLANG-CCOMMS
  525. IF NOT "%%D"=="spacer" SET /A "count=!count!+1" & SET "lang!count!=%%D"
  526. IF "%%E"=="" GOTO KBLANG-CCOMMS
  527. IF NOT "%%E"=="spacer" SET /A "count=!count!+1" & SET "lang!count!=%%E"
  528. IF "%%F"=="" GOTO KBLANG-CCOMMS
  529. IF NOT "%%F"=="spacer" SET /A "count=!count!+1" & SET "lang!count!=%%F"
  530. REM Overflow protecton, allows for more than 5 items per DB line
  531. IF NOT "%%G"=="" SET /A "count=!count!+1" & SET "lang!count!=%%G"
  532. IF NOT "%%H"=="" SET /A "count=!count!+1" & SET "lang!count!=%%H"
  533. )
  534. :KBLANG-CCOMMS
  535. FOR /F "tokens=1 delims=:" %%A IN ('FINDSTR /B /N /C:"REM DB-Corresponding Commands" "%~f0"') DO SET /A dbStartLine=%%A
  536. SET /A kbCCommCount=0
  537. FOR /F "usebackq tokens=1, 2, 4, 6, 8, 10, 12, 14 skip=%dbStartLine% delims=|" %%A IN ("%~f0") DO (
  538. IF "%%A"=="REM DB-Submenu Input Methods" GOTO KBLANG-PREMMS
  539. IF "%%B"=="" GOTO KBLANG-PREMMS
  540. IF NOT "%%B"=="spacer" SET /A kbCCommCount=!kbCCommCount!+1 & SET "kbComm!kbCCommCount!=SET kbLangSel=%%B"
  541. IF "%%C"=="" GOTO KBLANG-PREMMS
  542. IF NOT "%%C"=="spacer" SET /A "kbCCommCount=!kbCCommCount!+1" & SET "kbComm!kbCCommCount!=SET kbLangSel=%%C"
  543. IF "%%D"=="" GOTO KBLANG-PREMMS
  544. IF NOT "%%D"=="spacer" SET /A "kbCCommCount=!kbCCommCount!+1" & SET "kbComm!kbCCommCount!=SET kbLangSel=%%D"
  545. IF "%%E"=="" GOTO KBLANG-PREMMS
  546. IF NOT "%%E"=="spacer" SET /A "kbCCommCount=!kbCCommCount!+1" & SET "kbComm!kbCCommCount!=SET kbLangSel=%%E"
  547. IF "%%F"=="" GOTO KBLANG-PREMMS
  548. IF NOT "%%F"=="spacer" SET /A "kbCCommCount=!kbCCommCount!+1" & SET "kbComm!kbCCommCount!=SET kbLangSel=%%F"
  549. REM Overflow protecton, allows for more than 5 items per DB line
  550. IF NOT "%%G"=="" SET /A "count=!count!+1" & SET "lang!count!=SET kbLangSel=%%G"
  551. IF NOT "%%H"=="" SET /A "count=!count!+1" & SET "lang!count!=SET kbLangSel=%%H"
  552. )
  553. :KBLANG-SUBLANGS
  554. SETLOCAL ENABLEDELAYEDEXPANSION
  555. FOR /F "tokens=1 delims=:" %%A IN ('FINDSTR /B /N /C:"REM DB-Submenu Input Methods" "%~f0"') DO SET /A dbStartLine=%%A
  556. SET /A count=0
  557. SET "kbSub=true"
  558. FOR /F "usebackq tokens=1, 2, 4, 6, 8, 10, 12, 14, 16, 18 skip=%dbStartLine% delims=|" %%A IN ("%~f0") DO (
  559. IF "%%A"=="REM DB-SubCorresponding Input Methods" GOTO KBLANG-CCOMMS
  560. IF "%%B"=="%kbLangSel%" (
  561. IF "%%C"=="" GOTO KBLANG-SUBCOMMS
  562. SET /A count=!count!+1 & SET "lang!count!=%%C"
  563. IF "%%D"=="" GOTO KBLANG-SUBCCOMMS
  564. SET /A "count=!count!+1" & SET "lang!count!=%%D"
  565. IF "%%E"=="" GOTO KBLANG-SUBCCOMMS
  566. SET /A "count=!count!+1" & SET "lang!count!=%%E"
  567. IF "%%F"=="" GOTO KBLANG-SUBCCOMMS
  568. SET /A "count=!count!+1" & SET "lang!count!=%%F"
  569. IF "%%G"=="" GOTO KBLANG-SUBCCOMMS
  570. SET /A "count=!count!+1" & SET "lang!count!=%%G"
  571. IF "%%H"=="" GOTO KBLANG-SUBCCOMMS
  572. SET /A "count=!count!+1" & SET "lang!count!=%%H"
  573. IF "%%I"=="" GOTO KBLANG-SUBCCOMMS
  574. SET /A "count=!count!+1" & SET "lang!count!=%%I"
  575. IF "%%J"=="" GOTO KBLANG-SUBCCOMMS
  576. SET /A "count=!count!+1" & SET "lang!count!=%%J"
  577. )
  578. )
  579. :KBLANG-SUBCCOMMS
  580. FOR /F "tokens=1 delims=:" %%A IN ('FINDSTR /B /N /C:"REM DB-SubCorresponding Input Methods" "%~f0"') DO SET /A dbStartLine=%%A
  581. SET /A skbCCommCount=0
  582. FOR /F "usebackq tokens=1, 2, 4, 6, 8, 10, 12, 14, 16, 18 skip=%dbStartLine% delims=|" %%A IN ("%~f0") DO (
  583. IF "%%A"=="REM Marker" GOTO KBLANG-PREMMS
  584. IF "%%B"=="%kbLangSel%" (
  585. IF "%%C"=="" GOTO KBLANG-PREMMS
  586. SET /A skbCCommCount=!skbCCommCount!+1 & SET "kbComm!skbCCommCount!=SET kbLangSel=%%C& GOTO KBLANG-PRESET"
  587. IF "%%D"=="" GOTO KBLANG-PREMMS
  588. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%D& GOTO KBLANG-PRESET"
  589. IF "%%E"=="" GOTO KBLANG-PREMMS
  590. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%E& GOTO KBLANG-PRESET"
  591. IF "%%F"=="" GOTO KBLANG-PREMMS
  592. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%F& GOTO KBLANG-PRESET"
  593. IF "%%G"=="" GOTO KBLANG-PREMMS
  594. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%G& GOTO KBLANG-PRESET"
  595. IF "%%H"=="" GOTO KBLANG-PREMMS
  596. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%H& GOTO KBLANG-PRESET"
  597. IF "%%I"=="" GOTO KBLANG-PREMMS
  598. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%I& GOTO KBLANG-PRESET"
  599. IF "%%J"=="" GOTO KBLANG-PREMMS
  600. SET /A "skbCCommCount=!skbCCommCount!+1" & SET "kbComm!skbCCommCount!=SET kbLangSel=%%J& GOTO KBLANG-PRESET"
  601. )
  602. )
  603. :KBLANG-PREMMS
  604. SET kbLangCount=0
  605. SET /A "kbLangPages=%count%/9"
  606. SET /A "kbLangRemainder=%count%-(%kbLangPages%*9)""
  607. IF "%kbLangRemainder%" GTR "0" SET /A kbLangPages=%kbLangPages%+1
  608. SET kbLangPageLoc=1
  609. :KBLANG-MMS
  610. REM Modular menu system
  611. SET "lELs=9"
  612. IF "%kbSub%"=="true" (SET "kb0Opt=Go Back") ELSE (SET "kb0Opt=Return to Menu")
  613. SET "kbDisablePrev=" & SET "lC10=N" & SET "kbDisableNext=" & SET "lC11=P"
  614. IF "%kbLangPageLoc%" EQU "1" SET "kbDisablePrev=rem " & SET "lC11="
  615. SET "lC1=1" & SET "lC2=2" & SET "lC3=3" & SET "lC4=4" & SET "lC5=5" & SET "lC6=6" & SET "lC7=7" & SET "lC8=8" & SET "lC9=9"
  616. SET "kbLangSkip1=" & SET "kbLangSkip2=" & SET "kbLangSkip3=" & SET "kbLangSkip4=" & SET "kbLangSkip5=" & SET "kbLangSkip6=" & SET "kbLangSkip7=" & SET "kbLangSkip8="
  617. IF "%kbLangPageLoc%"=="%kbLangPages%" (
  618. SET "kbDisableNext=rem " & SET "lC10="
  619. IF "%kbLangRemainder%" GTR "0" (
  620. SET "lR1=1"
  621. SET "lELs=%kbLangRemainder%"
  622. IF NOT "%kbLangRemainder%" GTR "1" (SET "kbLangSkip1=rem ") ELSE (SET "lR2=2")
  623. IF NOT "%kbLangRemainder%" GTR "2" (SET "kbLangSkip2=rem ") ELSE (SET "lR3=3")
  624. IF NOT "%kbLangRemainder%" GTR "3" (SET "kbLangSkip3=rem ") ELSE (SET "lR4=4")
  625. IF NOT "%kbLangRemainder%" GTR "4" (SET "kbLangSkip4=rem ") ELSE (SET "lR5=5")
  626. IF NOT "%kbLangRemainder%" GTR "5" (SET "kbLangSkip5=rem ") ELSE (SET "lR6=6")
  627. IF NOT "%kbLangRemainder%" GTR "6" (SET "kbLangSkip6=rem ") ELSE (SET "lR7=7")
  628. IF NOT "%kbLangRemainder%" GTR "7" (SET "kbLangSkip7=rem ") ELSE (SET "lR8=8")
  629. IF NOT "%kbLangRemainder%" GTR "8" (SET "kbLangSkip8=rem ") ELSE (SET "lR9=9")
  630. SET "lC1=!lR1!" & SET "lC2=!lR2!" & SET "lC3=!lR3!" & SET "lC4=!lR4!" & SET "lC5=!lR5!" & SET "lC6=!lR6!" & SET "lC7=!lR7!" & SET "lC8=!lR8!" & SET "lC9=!lR9!"
  631. )
  632. )
  633. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  634. SET /A "kbLangCount=%kbLangCount%+1"
  635. ECHO [1] !lang%kbLangCount%! & SET "kbCComm1=!kbComm%kbLangCount%!"
  636. %kbLangSkip1%SET /A "kbLangCount=%kbLangCount%+1"
  637. %kbLangSkip1%ECHO [2] !lang%kbLangCount%! & SET "kbCComm2=!kbComm%kbLangCount%!"
  638. %kbLangSkip2%SET /A "kbLangCount=%kbLangCount%+1"
  639. %kbLangSkip2%ECHO [3] !lang%kbLangCount%! & SET "kbCComm3=!kbComm%kbLangCount%!"
  640. %kbLangSkip3%SET /A "kbLangCount=%kbLangCount%+1"
  641. %kbLangSkip3%ECHO [4] !lang%kbLangCount%! & SET "kbCComm4=!kbComm%kbLangCount%!"
  642. %kbLangSkip4%SET /A "kbLangCount=%kbLangCount%+1"
  643. %kbLangSkip4%ECHO [5] !lang%kbLangCount%! & SET "kbCComm5=!kbComm%kbLangCount%!"
  644. %kbLangSkip5%SET /A "kbLangCount=%kbLangCount%+1"
  645. %kbLangSkip5%ECHO [6] !lang%kbLangCount%! & SET "kbCComm6=!kbComm%kbLangCount%!"
  646. %kbLangSkip6%SET /A "kbLangCount=%kbLangCount%+1"
  647. %kbLangSkip6%ECHO [7] !lang%kbLangCount%! & SET "kbCComm7=!kbComm%kbLangCount%!"
  648. %kbLangSkip7%SET /A "kbLangCount=%kbLangCount%+1"
  649. %kbLangSkip7%ECHO [8] !lang%kbLangCount%! & SET "kbCComm8=!kbComm%kbLangCount%!"
  650. %kbLangSkip8%SET /A "kbLangCount=%kbLangCount%+1"
  651. %kbLangSkip8%ECHO [9] !lang%kbLangCount%! & SET "kbCComm9=!kbComm%kbLangCount%!"
  652. ECHO.
  653. %kbDisableNext%ECHO [N] Next Page
  654. %kbDisablePrev%ECHO [P] Previous Page
  655. ECHO [0] %kb0Opt% & ECHO [X] Exit
  656. IF "%kbSub%"=="true" (ECHO.) ELSE (ECHO Page %kbLangPageLoc%/%kbLangPages%)
  657. ECHO __________________________________________________________ &ECHO.
  658. IF %kbLangPageLoc% LSS %kbLangPages% (SET /A kbLangCount=%kbLangCount%-9) ELSE (SET /A kbLangCount=%kbLangCount%-%kbLangRemainder%)
  659. CHOICE /C %lC1%%lC2%%lC3%%lC4%%lC5%%lC6%%lC7%%lC8%%lC9%%lC10%%lC11%0X /N /M "%BS% Choose a menu option: "
  660. SET "kbChoice=%ERRORLEVEL%"
  661. IF %kbChoice%==1 ENDLOCAL & %kbCComm1%
  662. %kbLangSkip1%IF %kbChoice%==2 ENDLOCAL & %kbCComm2%
  663. %kbLangSkip2%IF %kbChoice%==3 ENDLOCAL & %kbCComm3%
  664. %kbLangSkip3%IF %kbChoice%==4 ENDLOCAL & %kbCComm4%
  665. %kbLangSkip4%IF %kbChoice%==5 ENDLOCAL & %kbCComm5%
  666. %kbLangSkip5%IF %kbChoice%==6 ENDLOCAL & %kbCComm6%
  667. %kbLangSkip6%IF %kbChoice%==7 ENDLOCAL & %kbCComm7%
  668. %kbLangSkip7%IF %kbChoice%==8 ENDLOCAL & %kbCComm8%
  669. %kbLangSkip8%IF %kbChoice%==9 ENDLOCAL & %kbCComm9%
  670. SET /A "lEL10=%lELs%"
  671. %kbDisableNext%SET /A "lEL10=%lEL10%+1"
  672. %kbDisableNext%IF %kbChoice%==%lEL10% (
  673. %kbDisableNext% SET /A kbLangPageLoc=%kbLangPageLoc%+1
  674. %kbDisableNext% SET /A kbLangCount=%kbLangCount%+9
  675. %kbDisableNext% GOTO KBLANG-MMS
  676. %kbDisableNext%)
  677. %kbDisablePrev%SET /A "lEL11=%lEL10%+1" & SET /A "lEL10=%lEL10%+1"
  678. %kbDisablePrev%IF %kbChoice%==%lEL11% (
  679. %kbDisablePrev% SET /A kbLangPageLoc=%kbLangPageLoc%-1
  680. %kbDisablePrev% SET /A kbLangCount=%kbLangCount%-9
  681. %kbDisablePrev% GOTO KBLANG-MMS
  682. %kbDisablePrev%)
  683. SET /A "lEL12=%lEL10%+1"
  684. IF %kbChoice%==%lEL12% (
  685. IF "%kbSub%"=="true" (ENDLOCAL & GOTO KBLANG-LANGS) ELSE (ENDLOCAL & GOTO HOME-MAINMENU)
  686. )
  687. SET /A "lEL13=%lEL10%+2"
  688. IF %kbChoice%==%lEL13% EXIT /B 0
  689. GOTO KBLANG-MMS
  690. :KBLANG-DATABASE
  691. REM DB-Languages
  692. ::1 |United States| |Chinese| |Hindi (Devanagari) Traditional| |Spanish| |French|
  693. ::2 |Arabic| |Russian| |Bangla| |Portuguese| |Albanian|
  694. ::3 |Amharic| |Armenian| |Assamese - Inscript| |Azerbaijani| |Bashkir|
  695. ::4 |Belarusian| |Belgian| |Bosnian (Cyrillic)| |Buginese| |Bulgarian|
  696. ::5 |Canadian| |Central Atlas Tamazight| |Central Kurdish| |Cherokee| |Croatian|
  697. ::6 |Czech| |Danish| |Divehi| |Dutch| |Dzongkha|
  698. ::7 |Estonian| |Faeroese| |Finnish| |Futhark| |Georgian|
  699. ::8 |German| |Gothic| |Greek| |Greenlandic| |Guarani|
  700. ::9 |Gujarati| |Hausa| |Hebrew| |Hungarian| |Icelandic|
  701. ::10 |Igbo| |Indian| |Inuktitut| |Irish| |Italian|
  702. ::11 |Japanese NON-FUNCTIONAL| |Javanese| |Kannada| |Kazakh| |Khmer|
  703. ::12 |Konkoni (Devanagari) - INSCRIPT| |Korean| |Kyrgyz Cyrillic| |Lao| |Latin American|
  704. ::13 |Latvian| |Lisu| |Lithuanian| |Luxembourgish| |Macedonia|
  705. ::14 |Malayalam| |Maltese| |Maori| |Marathi| |Mongolian|
  706. ::15 |Myanmar| |N'ko| |Nepali| |New Tai Lue| |Norwegian|
  707. ::16 |Odia| |Ol Chiki| |Old Italic| |Osmanya| |Pashto (Afghanistan)|
  708. ::17 |Persian| |Phags-pa| |Polish| |Punjabi| |Romanian|
  709. ::18 |Sakha| |Sami| |Scottish Gaelic| |Serbian| |Sesotho sa Leboa|
  710. ::19 |Setswana| |Sinhala| |Slovak| |Slovenian| |Sora|
  711. ::20 |Sorbian| |Swedish| |Swiss| |Syriac| |Tai Le|
  712. ::21 |Tajik| |Tamil| |Tatar| |Telugu| |Thai|
  713. ::22 |Tibetan| |Tifinagh| |Tigrinya| |Turkish| |Turkmen|
  714. ::23 |Uyghur| |Ukrainian| |United Kingdom| |Urdu| |Uzbek|
  715. ::24 |Vietnamese| |Wolof| |Yakut| |Yoruba|
  716. REM DB-Corresponding Commands
  717. ::1 |US& GOTO KBLANG-SUBLANGS| |CHI& GOTO KBLANG-SUBLANGS| |0439:00010439& GOTO KBLANG-PRESET| |SPA& GOTO KBLANG-SUBLANGS| |040c:0000040c& GOTO KBLANG-PRESET|
  718. ::2 |ARA& GOTO KBLANG-SUBLANGS| |RUS& GOTO KBLANG-SUBLANGS| |BAN& GOTO KBLANG-SUBLANGS| |POR& GOTO KBLANG-SUBLANGS| |041c:0000041c& GOTO KBLANG-PRESET|
  719. ::3 |045e:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{8F96574E-C86C-4bd6-9666-3F7327D4CBE8}& GOTO KBLANG-PRESET| |ARM& GOTO KBLANG-SUBLANGS| |044d:0000044d& GOTO KBLANG-PRESET| |AZ& GOTO KBLANG-SUBLANGS| |046d:0000046d& GOTO KBLANG-PRESET|
  720. ::4 |0423:00000423& GOTO KBLANG-PRESET| |BEL& GOTO KBLANG-SUBLANGS| |141a:00000201a& GOTO KBLANG-PRESET| |0421:000b0c00& GOTO KBLANG-PRESET| |BUL& GOTO KBLANG-SUBLANGS|
  721. ::5 |CAN& GOTO KBLANG-SUBLANGS| |085f:0000085f& GOTO KBLANG-PRESET| |0429:00000429& GOTO KBLANG-PRESET| |CHE& GOTO KBLANG-SUBLANGS| |041a:0000041a& GOTO KBLANG-PRESET|
  722. ::6 |CZE& GOTO KBLANG-SUBLANGS| |0406:00000406& GOTO KBLANG-PRESET| |DIV& GOTO KBLANG-SUBLANGS| |0413:00000413& GOTO KBLANG-PRESET| |0C51:00000C51|
  723. ::7 |0425:00000425& GOTO KBLANG-PRESET| |0438:00000438& GOTO KBLANG-PRESET| |FIN& GOTO KBLANG-SUBLANGS| |0407:00120c00& GOTO KBLANG-PRESET| |GEO& GOTO KBLANG-SUBLANGS|
  724. ::8 |GER& GOTO KBLANG-SUBLANGS| |0407:000c0c00& GOTO KBLANG-PRESET| |GRE& GOTO KBLANG-SUBLANGS| |046f:0000046f& GOTO KBLANG-PRESET| |0474:00000474& GOTO KBLANG-PRESET|
  725. ::9 |0447:00000447& GOTO KBLANG-PRESET| |0468:00000468& GOTO KBLANG-PRESET| |040d:0000040d& GOTO KBLANG-PRESET| |HUN& GOTO KBLANG-SUBLANGS| |040f:0000040f& GOTO KBLANG-PRESET|
  726. ::10 |0470:00000470& GOTO KBLANG-PRESET| |4009:00004009& GOTO KBLANG-PRESET| |INU& GOTO KBLANG-SUBLANGS| |083C:000001809& GOTO KBLANG-PRESET| |ITA& GOTO KBLANG-SUBLANGS|
  727. ::11 |0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}& GOTO KBLANG-PRESET| |0421:00110c00& GOTO KBLANG-PRESET| |044b:0000044b& GOTO KBLANG-PRESET| |043f:0000043f& GOTO KBLANG-PRESET| |KHM& GOTO KBLANG-SUBLANGS|
  728. ::12 |0457:00000439& GOTO KBLANG-PRESET| |KOR& GOTO KBLANG-SUBLANGS| |0440:00000440& GOTO KBLANG-PRESET| |0454:00000454& GOTO KBLANG-PRESET| |080a:0000080a& GOTO KBLANG-PRESET|
  729. ::13 |LAT& GOTO KBLANG-SUBLANGS| |LIS& GOTO KBLANG-SUBLANGS| |LIT& GOTO KBLANG-SUBLANGS| |046e:0000046e& GOTO KBLANG-PRESET| |MAC& GOTO KBLANG-SUBLANGS|
  730. ::14 |044c:0000044c& GOTO KBLANG-PRESET| |MAL& GOTO KBLANG-SUBLANGS| |0481:00000481& GOTO KBLANG-PRESET| |044e:0000044e& GOTO KBLANG-PRESET| |MON& GOTO KBLANG-SUBLANGS|
  731. ::15 |0455:00010c00& GOTO KBLANG-PRESET| |0409:000090c00& GOTO KBLANG-PRESET| |0461:00000461& GOTO KBLANG-PRESET| |0409:00020c00& GOTO KBLANG-PRESET| |NOR& GOTO KBLANG-SUBLANGS|
  732. ::16 |0448:00000448& GOTO KBLANG-PRESET| |0409:d0c00& GOTO KBLANG-PRESET| |0409:000f0c00& GOTO KBLANG-PRESET| |0409:000e0c00& GOTO KBLANG-PRESET| |0463:00000463& GOTO KBLANG-PRESET|
  733. ::17 |PER& GOTO KBLANG-SUBLANGS| |0409:000a0c00& GOTO KBLANG-PRESET| |POL& GOTO KBLANG-SUBLANGS| |0446:00000446& GOTO KBLANG-PRESET| |ROM& GOTO KBLANG-SUBLANGS|
  734. ::18 |0485:00000485& GOTO KBLANG-PRESET| |SAM& GOTO KBLANG-SUBLANGS| |0809:00011809& GOTO KBLANG-PRESET| |SER& GOTO KBLANG-SUBLANGS| |046c:0000046c& GOTO KBLANG-PRESET|
  735. ::19 |0432:00000432& GOTO KBLANG-PRESET| |SIN& GOTO KBLANG-SUBLANGS| |SLO& GOTO KBLANG-SUBLANGS| |0424:00000424& GOTO KBLANG-PRESET| |0409:00100c00& GOTO KBLANG-PRESET|
  736. ::20 |SOR& GOTO KBLANG-SUBLANGS| |SWE& GOTO KBLANG-SUBLANGS| |SWI& GOTO KBLANG-SUBLANGS| |SYR& GOTO KBLANG-SUBLANGS| |0409:00030c00& GOTO KBLANG-PRESET|
  737. ::21 |0428:00000428& GOTO KBLANG-PRESET| |TAM& GOTO KBLANG-SUBLANGS| |TAT& GOTO KBLANG-SUBLANGS| |044a:0000044a& GOTO KBLANG-PRESET| |THA& GOTO KBLANG-SUBLANGS|
  738. ::22 |TIB& GOTO KBLANG-SUBLANGS| |TIF& GOTO KBLANG-SUBLANGS| |0473:{E429B25A-E5D3-4D1F-9BE3-0C608477E3A1}{3CAB88B7-CC3E-46A6-9765-B772AD7761FF}& GOTO KBLANG-PRESET| |TUR& GOTO KBLANG-SUBLANGS| |0442:00000442& GOTO KBLANG-PRESET|
  739. ::23 |UYG& GOTO KBLANG-SUBLANGS| |UKR& GOTO KBLANG-SUBLANGS| |UK& GOTO KBLANG-SUBLANGS| |0420:00000420| |0843:00000843|
  740. ::24 |VIE& GOTO KBLANG-SUBLANGS| |0488:00000488& GOTO KBLANG-PRESET| |0485:00000485& GOTO KBLANG-PRESET| |046a:0000056a& GOTO KBLANG-PRESET|
  741. REM DB-Submenu Input Methods
  742. :: |ARA| |Arabic (101)| |Arabic (102)| |Arabic (102 AZERTY)|
  743. :: |ARM| |Armenian Eastern| |Armenian Phonetic| |Armenian Typewriter| |Armenian Western|
  744. :: |AZE| |Azerbaijani (Standard)| |Azerbaijani Cyrillic| |Azerbaijani Latin|
  745. :: |BEL| |Belgian (Comma)| |Belgian (Period)| |Belgian French|
  746. :: |BAN| |Bangla (Bangladesh)| |Bangla (India)| |Bangla (India) - Legacy|
  747. :: |BUL| |Bulgarian| |Bulgarian Latin| |Bulgarian (Phonetic Layout)| |Bulgarian (Phonetic Traditonal)| |Bulgarian (Typewriter)|
  748. :: |CAN| |Canadian French| |Canadian French (Legacy)| |Canadian Multilingual Standard|
  749. :: |CHE| |Cherokee Nation| |Cherokee Nation Phonetic|
  750. :: |CHI| |Chineese (Simplified)| |Chineese (Traditional) NON-FUNCTIONAL| |Chineese (Traditional, Hong Kong S.A.R.)| |Chineese (Traditonal Macao S.A.R.)| |Chineese (Simplified, Singapore)|
  751. :: |CZE| |Czech| |Czech (QWERTY)| |Czech Programmers|
  752. :: |DIV| |Divehi Phonetic| |Divehi Typewriter|
  753. :: |FIN| |Finnish| |Finnish with Sami|
  754. :: |GEO| |Georgian| |Georgian (Ergonomic)| |Georgian (QWERTY)| |Georgian Ministry of Education and Science Schools| |Georgian (Old Alphabets)|
  755. :: |GER| |German| |German (IBM)|
  756. :: |GRE| |Greek| |Greek (220)| |Greek (220) Latin| |Greek (319)| |Greek (319) Latin| |Greek Latin| |Greek Polytonic|
  757. :: |HUN| |Hungarian| |Hungarian 101-key|
  758. :: |INU| |Inuktitut - Latin| |Inuktitut - Naqittaut|
  759. :: |ITA| |Italian| |Italian (142)|
  760. :: |KHM| |Khmer| |Khmer (NIDA)|
  761. :: |KOR| |Korean (Hangul)| |Korean (Old Hangul)|
  762. :: |LAT| |Latvian (Standard)| |Latvian (Legacy)|
  763. :: |LIS| |Lisu (Basic)| |Lisu (Standard)|
  764. :: |LIT| |Lithuanian| |Lithuanian IBM| |Lithuanian Standard|
  765. :: |MAC| |Macedonian (FYROM)| |Macedonian (FYROM) - Standard|
  766. :: |MAL| |Maltese 47-key| |Maltese 48-key|
  767. :: |MON| |Mongoloian (Mongolian Script - Legacy)| |Mongolian (Mongolian Script - Standard)| |Mongolian Cyrillic|
  768. :: |NOR| |Norwegian| |Norwegian with Sami|
  769. :: |PER| |Persian| |Persian (Standard)|
  770. :: |POL| |Polish (214)| |Polish (Programmers)|
  771. :: |POR| |Portuguese| |Portuguese (Brazilian ABNT)| |Portuguese (Brazilian ABNT2)|
  772. :: |ROM| |Romanian (Legacy)| |Romanian (Programmers) |Romanian (Standard)|
  773. :: |RUS| |Russian| |Russian - Mnemonic| |Russian (Typewriter)|
  774. :: |SAM| |Sami Extended Finland-Sweden| |Sami Extended Norway|
  775. :: |SER| |Serbian (Cyrillic)| |Serbian (Latin)|
  776. :: |SIN| |Sinhala| |Sinhala - wij 9|
  777. :: |SLO| |Slovak| |Slovak (QWERTY)|
  778. :: |SOR| |Sorbian Extended| |Sorbian Standard| |Sorbian Standard (Legacy)|
  779. :: |SPA| |Spanish (Spain)| |Spanish (Mexico)| |Spanish Variation|
  780. :: |SWE| |Swedish| |Swedish with Sami|
  781. :: |SWI| |Swiss French| |Swiss German|
  782. :: |SYR| |Syriac| |Syriac Phonetic|
  783. :: |TAM| |Tamil| |Tamil (99 Keyboard)|
  784. :: |TAT| |Tatar| |Tatar (Legacy)|
  785. :: |THA| |Thai Kedmanee| |Thai Kedmanee (non-ShiftLock)| |Thai Pattachote| |Thai Pattachote (non-ShiftLock)|
  786. :: |TIB| |Tibetan (PRC - Standard)| |Tibetan (PRC - Legacy)|
  787. :: |TIF| |Tifinagh (Basic)| |Tifinagh (Full)|
  788. :: |TUR| |Turkish F| |Turkish Q|
  789. :: |UYG| |Uyghur| |Uygher (Legacy)| |Uyghur (Greek 220)|
  790. :: |UKR| |Ukrainian| |Ukrainian (Enhanced)|
  791. :: |UK| |United Kingdom| |United Kingdom Extended|
  792. :: |US| |United States - English| |United States - International| |United States - Dvorak| |United States - Dvorak (Left Hand)| |United States - Dvorak (Right Hand)|
  793. :: |VIE| |Vietnamese| |Vietnamese Telex|
  794. REM DB-SubCorresponding Input Methods
  795. :: |ARA| |0401:00000401| |0401:00010401| |0401:00020401|
  796. :: |ARM| |042b:0000042b| |042b:0002042b| |042b:0003042b| |042b:0001042b|
  797. :: |AZE| |042c:0001042c| |042c:0000082c| |042c:0000042c|
  798. :: |BEL| |080c:0001080c| |080c:00000813| |080c:0000080c|
  799. :: |BAN| |0445:00000445| |0445:00020445| |0445:00010445|
  800. :: |BUL| |042b:0003042b| |042b:0001042b| |042b:0002042b| |042b:0004042b| |042b:0000042b|
  801. :: |CAN| |0c0c:00001009| |0c0c:00000c0c| |0c0c:00011009|
  802. :: |CHE| |045c:0000045c| |045c:0001045c|
  803. :: |CHI| |0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}| |0404:{B115690A-EA02-48D5-A231-E3578D2FDF80}{B2F9C502-1742-11D4-9790-0080C882687E}| |0404:00000c04| |0404:00001404| |0404:00001004|
  804. :: |CZE| |2000:00000405| |2000:00010405| |2000:00020405|
  805. :: |DIV| |0465:00000465| |0465:00010465|
  806. :: |FIN| |040b:0000040b| |040b:0001083b|
  807. :: |GEO| |0437:00020437| |0437:00010437| |0437:00030437| |0437:00040437|
  808. :: |GER| |0407:00000407| |0407:00010407|
  809. :: |GRE| |0408:00000408| |0408:00010408| |0408:00030408| |0408:00020408| |0408:00040408| |0408:00050408| |0408:00600408|
  810. :: |HUN| |040e:0000040e| |040e:0001040e|
  811. :: |INU| |085d:0000085d| |085d:0001045d|
  812. :: |ITA| |0410:00000410| |0410:00010410|
  813. :: |KHM| |0453:00000453| |0453:00010453|
  814. :: |KOR| |0412:{A028AE76-01B1-46C2-99C4-ACD9858AE02F}{B5FE1F02-D5F2-4445-9C03-C568F23C99A1}| |0412:{a1e2b86b-924a-4d43-80f6-8a820df7190f}{b60af051-257a-46bc-b9d3-84dad819bafb}|
  815. :: |LAT| |0426:00020426| |0426:00010426|
  816. :: |LIS| |0409:00070c00| |0409:00080c00|
  817. :: |LIT| |0427:00010427| |0427:00000427| |0427:00020427|
  818. :: |MAC| |042f:0000042f| |042f:0001042f|
  819. :: |MAL| |043a:0000043a| |043a:0001043a|
  820. :: |MON| |0850:00000850| |0850:00020850| |0850:00000450|
  821. :: |NOR| |0814:00000414| |0814:0000043b|
  822. :: |PER| |0429:00000429| |0429:00050429|
  823. :: |POL| |0415:00010415| |0415:00000415|
  824. :: |POR| |0816:00000816| |0816:00000416| |0816:00010416|
  825. :: |ROM| |0418:00000418| |0418:00020418| |0418:00010418|
  826. :: |RUS| |0419:00000419| |0419:00020419| |0419:00010419|
  827. :: |SAM| |083b:0002083b| |043b:0001043b|
  828. :: |SER| |1C1A:00000c1a| |241A:0000081a|
  829. :: |SIN| |045b:0000045b| |045b:0001045b|
  830. :: |SLO| |041b:0000041b| |041b:0001041b|
  831. :: |SOR| |042e:0001042e| |042e:0002042e| |042e:0000042e|
  832. :: |SPA| |0c0a:0000040a| |080a:0000080a| |0c0a:0001040a|
  833. :: |SWE| |041d:0000041d| |083b:0000083b|
  834. :: |SWI| |100c:0000100c| |0807:00000807|
  835. :: |SYR| |045a:0000045a| |045a:0001045a|
  836. :: |TAM| |0449:00000449| |0449:00020449|
  837. :: |TAT| |0444:00010444| |0444:00000444|
  838. :: |THA| |041e:0000041e| |041e:0002041e| |041e:0001041e| |041e:0003041e|
  839. :: |TIB| |0451:00010451| |0451:00000451|
  840. :: |TIF| |0409:00050c00| |0409:00050c00|
  841. :: |TUR| |041f:0001041f| |041f:0000041f|
  842. :: |UYG| |0480:00010480| |0480:00000480| |0480:00010408|
  843. :: |UKR| |0422:00000422| |0422:00020422|
  844. :: |UK| |0809:00000809| |0809:00000452|
  845. :: |US| |0409:00000409| |0409:00020409| |0409:00010409| |0409:00030409| |0409:00040409|
  846. :: |VIE| |042a:0000042a| |042A:{C2CB2CF0-AF47-413E-9780-8BC3A3C16068}{5FB02EC5-0A77-4684-B4FA-DEF8A2195628}|
  847. REM Marker
  848. :KBLANG-PRESET
  849. SETLOCAL
  850. IF /I "%~1"=="kbLangSet" WAITFOR /SI Golden>NUL 2>&1 & SET "kbLangSel=%~2" & SET "kbMakeDef=%~3" & GOTO KBLANG-SETLANG
  851. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  852. CHOICE /C YN /N /M "%BS% Make default keyboard language? (Y/N): "
  853. IF %ERRORLEVEL%==2 SET "kbMakeDef=false"
  854. ECHO. & ECHO Adding keyboard language...
  855. TIMEOUT /T 1 /NOBREAK > NUL
  856. POWERSHELL -NoP -C "(Get-WmiObject Win32_Process -Filter ProcessId=$PID).ParentProcessId" > %temp%\CentralAMEProcessID.txt
  857. FOR /F "delims=" %%A IN (%temp%\CentralAMEProcessID.txt) DO SET "scriptPID=%%A" & DEL "%temp%\CentralAMEProcessID.txt"
  858. REM Detects if the script is being run under the currently logged in user. If not it runs a second instance as the current user
  859. FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "PID eq %scriptPID%" /FI "USERNAME eq %currentUsername%" /NH /FO csv') DO SET processRunOut=%%A
  860. IF NOT "%processRunOut%"=="," (
  861. REM If %lim% = rem that means the script is NOT being run as administrator. There's a small chance someone attempts to run it as another non-admin user,
  862. REM this would be problematic as schtasks requires admin privilages.
  863. IF "%lim%"=="rem " ECHO. & ECHO. & ECHO Script must be run as the current user & ECHO or with administrator privilages. & ECHO __________________________________________________________ & ECHO. & ENDLOCAL & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE
  864. SETLOCAL ENABLEDELAYEDEXPANSION
  865. SCHTASKS /CREATE /tn SetDispLang /tr "CMD /C 'START /min '' '%scriptPath%' kbLangSet %kbLangSel% %kbMakeDef%'" /sc ONSTART /ru "%currentUsername%" /it /f > NUL
  866. REM RUNAS will work, however it requires the user to enter a password, and won't accept a blank one. This is a lot more simple and reliable
  867. SCHTASKS /RUN /tn SetDispLang > NUL
  868. WAITFOR Golden /T 10 > NUL 2>&1
  869. IF !ERRORLEVEL! LSS 1 SCHTASKS /DELETE /tn SetDispLang /f>NUL & GOTO KBLANG-COMPLETE
  870. SCHTASKS /DELETE /tn SetDispLang /f > NUL
  871. ENDLOCAL & ENDLOCAL & ECHO. & ECHO. & ECHO Action may have failed. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-LANGUAGE
  872. )
  873. :KBLANG-SETLANG
  874. POWERSHELL -NoP -C "$NewLangs=Get-WinUserLanguageList; $NewLangs[0].InputMethodTips.Add('%kbLangSel%'); Set-WinUserLanguageList $NewLangs -Force" > NUL
  875. IF NOT "%kbMakeDef%"=="false" POWERSHELL -NoP -C "Set-WinDefaultInputMethodOverride -InputTip "%kbLangSel%""
  876. IF /I "%~1"=="kbLangSet" EXIT 0
  877. :KBLANG-COMPLETE
  878. ECHO. & ECHO. & ECHO Keyboard language added successfully & ECHO __________________________________________________________ & ECHO.
  879. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  880. ENDLOCAL & GOTO HOME-MAINMENU
  881. REM -------------------------KBLANG-END-------------------------
  882. REM -------------------------NOUSERNAME-------------------------
  883. :NOUSERNAME-MENU
  884. SETLOCAL
  885. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Disable Username Requirement & ECHO [2] Enable Username Requirement & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  886. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  887. IF %ERRORLEVEL%==1 GOTO NOUSERNAME-DISABLE
  888. IF %ERRORLEVEL%==2 GOTO NOUSERNAME-ENABLE
  889. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  890. IF %ERRORLEVEL%==4 EXIT /B 0
  891. :NOUSERNAME-DISABLE
  892. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO.
  893. ECHO Disabling username login requirement...
  894. TIMEOUT /T 2 /NOBREAK > NUL
  895. REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v dontdisplaylastusername /f > NUL 2>&1
  896. ECHO. & ECHO. & ECHO The username login requirement is now disabled & ECHO __________________________________________________________ & ECHO.
  897. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  898. ENDLOCAL & GOTO HOME-MAINMENU
  899. :NOUSERNAME-ENABLE
  900. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO.
  901. ECHO Enabling username login requirement...
  902. TIMEOUT /T 2 /NOBREAK > NUL
  903. REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v dontdisplaylastusername /t REG_DWORD /d 1 /f > NUL 2>&1
  904. ECHO. & ECHO. & ECHO The username login requirement is now enabled & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO.
  905. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): "
  906. IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0
  907. IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU
  908. REM -----------------------NOUSERNAME-END-----------------------
  909. REM -------------------------HIBERNATE-------------------------
  910. :HIBERNATE-MENU
  911. SETLOCAL
  912. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Enable Hibernation & ECHO [2] Disable Hibernation & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  913. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  914. IF %ERRORLEVEL%==1 GOTO HIBERNATE-ENABLE
  915. IF %ERRORLEVEL%==2 GOTO HIBERNATE-DISABLE
  916. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  917. IF %ERRORLEVEL%==4 EXIT /B 0
  918. :HIBERNATE-ENABLE
  919. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Enabling hibernation...
  920. TIMEOUT /T 2 /NOBREAK > NUL
  921. POWERCFG /HIBERNATE /TYPE FULL > NUL 2>&1
  922. IF %ERRORLEVEL% NEQ 0 (
  923. ECHO. & ECHO. & ECHO Failed to enable hibernation. & ECHO Hibernation may not be supported by your firmware. & ECHO __________________________________________________________ & ECHO.
  924. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  925. ENDLOCAL & GOTO HOME-EXTRA
  926. )
  927. SET "hibernate=enable" & GOTO HIBERNATE-FINISH
  928. :HIBERNATE-DISABLE
  929. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Disabling hibernation...
  930. TIMEOUT /T 2 /NOBREAK > NUL
  931. POWERCFG /HIBERNATE OFF > NUL 2>&1
  932. IF %ERRORLEVEL% NEQ 0 (
  933. ECHO. & ECHO. & ECHO Failed to disable hibernation. & ECHO __________________________________________________________ & ECHO.
  934. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  935. ENDLOCAL & GOTO HOME-EXTRA
  936. )
  937. SET "hibernate=disable" & GOTO HIBERNATE-FINISH
  938. :HIBERNATE-FINISH
  939. IF "%hibernate%"=="enable" SET "hibernateResult= Hibernation is now enabled"
  940. IF "%hibernate%"=="disable" SET "hibernateResult= Hibernation is now disabled"
  941. ECHO. & ECHO. & ECHO %hibernateResult% & ECHO __________________________________________________________ & ECHO.
  942. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  943. ENDLOCAL & GOTO HOME-MAINMENU
  944. REM -----------------------HIBERNATE-END-----------------------
  945. REM ----------------------------WSH-----------------------------
  946. :WSH-MENU
  947. SETLOCAL
  948. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Enable WSH & ECHO [2] Disable WSH & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  949. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  950. IF %ERRORLEVEL%==1 GOTO WSH-ENABLE
  951. IF %ERRORLEVEL%==2 GOTO WSH-DISABLE
  952. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  953. IF %ERRORLEVEL%==4 EXIT /B 0
  954. :WSH-ENABLE
  955. SET "cenStr=Enabling WSH for %currentUsername%..." & CALL :AUX-CENTERTEXT
  956. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & POWERSHELL -NoP -C "Write-Output '%cenOut%'"
  957. TIMEOUT /T 2 /NOBREAK > NUL
  958. FOR /F "usebackq tokens=*" %%F IN (`WMIC useraccount where "name="%currentUsername%"" get sid ^| FINDSTR "S-"`) DO SET WSHSID=%%F
  959. SET WSHSID=%WSHSID:~0,-3%
  960. REG ADD "HKEY_USERS\%WSHSID%\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f > NUL
  961. REG ADD "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f > NUL
  962. SET "wsh=enable" & GOTO WSH-FINISH
  963. :WSH-DISABLE
  964. SET "cenStr=Disabling WSH for %currentUsername%..." & CALL :AUX-CENTERTEXT
  965. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & POWERSHELL -NoP -C "Write-Output '%cenOut%'"
  966. TIMEOUT /T 2 /NOBREAK > NUL
  967. FOR /F "usebackq tokens=*" %%F IN (`WMIC useraccount where "name="%currentUsername%"" get sid ^| FINDSTR "S-"`) DO SET WSHSID=%%F
  968. SET WSHSID=%WSHSID:~0,-3%
  969. REG ADD "HKEY_USERS\%WSHSID%\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f > NUL
  970. REG ADD "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f > NUL
  971. SET "wsh=disable" & GOTO WSH-FINISH
  972. :WSH-FINISH
  973. IF "%wsh%"=="enable" SET "cenStr=WSH is now enabled for %currentUsername%" & SET "wshRestartMsg=& ECHO A restart is required to complete the setup. "
  974. IF "%wsh%"=="disable" SET "cenStr=WSH is now disabled for %currentUsername%" & SET "wshRestartMsg="
  975. CALL :AUX-CENTERTEXT
  976. ECHO. & ECHO. & POWERSHELL -NoP -C "Write-Output '%cenOut%'" %wshRestartMsg%& ECHO __________________________________________________________ & ECHO.
  977. IF "%wsh%"=="enable" CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): "
  978. IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0
  979. IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU
  980. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  981. ENDLOCAL & GOTO HOME-MAINMENU
  982. REM --------------------------WSH-END--------------------------
  983. REM ---------------------------NCSI----------------------------
  984. :NCSI-MENU
  985. SETLOCAL
  986. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Enable NCSI Active Probing & ECHO [2] Disable NCSI Active Probing & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  987. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  988. IF %ERRORLEVEL%==1 GOTO NCSI-ENABLE
  989. IF %ERRORLEVEL%==2 GOTO NCSI-DISABLE
  990. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  991. IF %ERRORLEVEL%==4 EXIT /B 0
  992. :NCSI-ENABLE
  993. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Enabling NCSI Active Probing...
  994. TIMEOUT /T 2 /NOBREAK > NUL
  995. REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 1 /f > NUL
  996. SET "ncsi=enable" & GOTO NCSI-FINISH
  997. :NCSI-DISABLE
  998. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Disabling NCSI Active Probing...
  999. TIMEOUT /T 2 /NOBREAK > NUL
  1000. REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 0 /f > NUL
  1001. SET "ncsi=disable" & GOTO NCSI-FINISH
  1002. :NCSI-FINISH
  1003. IF "%ncsi%"=="enable" SET "ncsiResult= NCSI Active Probing is now disabled"
  1004. IF "%ncsi%"=="disable" SET "ncsiResult= NCSI Active Probing is now enabled"
  1005. ECHO. & ECHO. & ECHO %ncsiResult% & ECHO A restart is required to take effect. & ECHO __________________________________________________________ & ECHO.
  1006. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): "
  1007. IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0
  1008. IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU
  1009. REM -------------------------NCSI-END--------------------------
  1010. REM --------------------------NEWUSER--------------------------
  1011. :NEWUSER-MENU
  1012. SETLOCAL
  1013. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO [1] Create a New User & ECHO [2] Remove Existing User & ECHO. & ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO.
  1014. CHOICE /C 120X /N /M "%BS% Choose a menu option: "
  1015. IF %ERRORLEVEL%==1 GOTO NEWUSER-CREATE
  1016. IF %ERRORLEVEL%==2 GOTO NEWUSER-REMOVE
  1017. IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU
  1018. IF %ERRORLEVEL%==4 EXIT /B 0
  1019. :NEWUSER-CREATE
  1020. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  1021. SET /P "newUsername=%BS% Enter desired username, or enter 'Cancel': "
  1022. ECHO "%newUsername%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO NEWUSER-MENU
  1023. ECHO "%newUsername%" | FINDSTR /I /X /c:""""""" ">NUL 2>&1 && SET "blankUsrN=true"
  1024. IF "%blankUsrN%"=="true" (
  1025. ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO.
  1026. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1027. ENDLOCAL & GOTO NEWUSER-MENU
  1028. )
  1029. ECHO.
  1030. SET /P "newPassword=%BS% Enter desired password, or enter 'Cancel': "
  1031. ECHO "%newPassword%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO NEWUSER-MENU
  1032. ECHO. & ECHO Creating user...
  1033. TIMEOUT /T 2 /NOBREAK > NUL 2>&1
  1034. NET user "%newUsername%" "%newPassword%" /add > NUL 2>&1
  1035. IF %ERRORLEVEL% NEQ 0 (
  1036. ECHO. & ECHO. & ECHO Improper username or password. & ECHO __________________________________________________________ & ECHO.
  1037. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1038. ENDLOCAL & GOTO HOME-MAINMENU
  1039. )
  1040. ECHO. & ECHO Configuring new user...
  1041. SCHTASKS /create /tn "AME NEWUSRREG" /tr "CMD /C 'FOR /F 'usebackq delims=' %%A IN (`REG QUERY 'HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications'`) DO REG DELETE '%%A' /f'" /sc MONTHLY /f /rl HIGHEST /ru "SYSTEM" > NUL
  1042. SCHTASKS /run /tn "AME NEWUSRREG" > NUL
  1043. SCHTASKS /delete /tn "AME NEWUSRREG" /f > NUL
  1044. REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\OOBE" /v DisablePrivacyExperience /t REG_DWORD /d 1 /f > NUL 2>&1
  1045. REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableFirstLogonAnimation /t REG_DWORD /d 0 /f > NUL 2>&1
  1046. REG LOAD "HKU\DefaultHiveMount" "%SYSTEMDRIVE%\Users\Default\NTUSER.DAT" > NUL 2>&1
  1047. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell" /t REG_SZ /f > NUL 2>&1
  1048. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\OpenShell" /t REG_SZ /f > NUL 2>&1
  1049. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\OpenShell\Settings" /t REG_SZ /f > NUL 2>&1
  1050. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /t REG_SZ /f > NUL 2>&1
  1051. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /t REG_SZ /f > NUL 2>&1
  1052. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /t REG_SZ /f > NUL 2>&1
  1053. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer\Settings" /t REG_SZ /f > NUL 2>&1
  1054. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /v "ShowedToolbar" /t REG_DWORD /d 1 /f > NUL 2>&1
  1055. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /v "NewLine" /t REG_DWORD /d 0 /f > NUL 2>&1
  1056. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer\Settings" /v "ShowStatusBar" /t REG_DWORD /d 0 /f > NUL 2>&1
  1057. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "ShowedStyle2" /t REG_DWORD /d 1 /f > NUL 2>&1
  1058. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "CSettingsDlg" /t REG_BINARY /d c80100001a0100000000000000000000360d00000100000000000000 /f > NUL 2>&1
  1059. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "OldItems" /t REG_BINARY /f > NUL 2>&1
  1060. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "ItemRanks" /t REG_BINARY /d 0 /f > NUL 2>&1
  1061. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\MRU" /v "0" /t REG_SZ /d "%SYSTEMDRIVE%\Windows\regedit.exe" /f > NUL 2>&1
  1062. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "Version" /t REG_DWORD /d 04040098 /f > NUL 2>&1
  1063. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "AllProgramsMetro" /t REG_DWORD /d 1 /f > NUL 2>&1
  1064. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "RecentMetroApps" /t REG_DWORD /d 1 /f > NUL 2>&1
  1065. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "StartScreenShortcut" /t REG_DWORD /d 0 /f > NUL 2>&1
  1066. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SearchInternet" /t REG_DWORD /d 0 /f > NUL 2>&1
  1067. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "GlassOverride" /t REG_DWORD /d 1 /f > NUL 2>&1
  1068. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "GlassColor" /t REG_DWORD /d 0 /f > NUL 2>&1
  1069. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinW7" /t REG_SZ /d "Fluent-Metro" /f > NUL 2>&1
  1070. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinVariationW7" /t REG_SZ /f > NUL 2>&1
  1071. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinOptionsW7" /t REG_MULTI_SZ /d "USER_IMAGE=1"\0"SMALL_ICONS=0"\0"LARGE_FONT=0"\0"DISABLE_MASK=0"\0"OPAQUE=0"\0"TRANSPARENT_LESS=0"\0"TRANSPARENT_MORE=1"\0"WHITE_SUBMENUS2=0" /f > NUL 2>&1
  1072. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkipMetro" /t REG_DWORD /d 1 /f > NUL 2>&1
  1073. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "MenuItems7" /t REG_MULTI_SZ /d "Item1.Command=user_files"\0"Item1.Settings=NOEXPAND"\0"Item2.Command=user_documents"\0"Item2.Settings=NOEXPAND"\0"Item3.Command=user_pictures"\0"Item3.Settings=NOEXPAND"\0"Item4.Command=user_music"\0"Item4.Settings=NOEXPAND"\0"Item5.Command=user_videos"\0"Item5.Settings=NOEXPAND"\0"Item6.Command=downloads"\0"Item6.Settings=NOEXPAND"\0"Item7.Command=homegroup"\0"Item7.Settings=ITEM_DISABLED"\0"Item8.Command=separator"\0"Item9.Command=games"\0"Item9.Settings=TRACK_RECENT|NOEXPAND|ITEM_DISABLED"\0"Item10.Command=favorites"\0"Item10.Settings=ITEM_DISABLED"\0"Item11.Command=recent_documents"\0"Item12.Command=computer"\0"Item12.Settings=NOEXPAND"\0"Item13.Command=network"\0"Item13.Settings=ITEM_DISABLED"\0"Item14.Command=network_connections"\0"Item14.Settings=ITEM_DISABLED"\0"Item15.Command=separator"\0"Item16.Command=control_panel"\0"Item16.Settings=TRACK_RECENT"\0"Item17.Command=pc_settings"\0"Item17.Settings=TRACK_RECENT"\0"Item18.Command=admin"\0"Item18.Settings=TRACK_RECENT|ITEM_DISABLED"\0"Item19.Command=devices"\0"Item19.Settings=ITEM_DISABLED"\0"Item20.Command=defaults"\0"Item20.Settings=ITEM_DISABLED"\0"Item21.Command=help"\0"Item21.Settings=ITEM_DISABLED"\0"Item22.Command=run"\0"Item23.Command=apps"\0"Item23.Settings=ITEM_DISABLED"\0"Item24.Command=windows_security"\0"Item24.Settings=ITEM_DISABLED"\0"" /f > NUL 2>&1
  1074. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinOptionsW7" /t REG_MULTI_SZ /d "DARK_MAIN=0"\0"METRO_MAIN=0"\0"LIGHT_MAIN=0"\0"AUTOMODE_MAIN=1"\0"DARK_SUBMENU=0"\0"METRO_SUBMENU=0"\0"LIGHT_SUBMENU=0"\0"AUTOMODE_SUBMENU=1"\0"SUBMENU_SEPARATORS=1"\0"DARK_SEARCH=0"\0"METRO_SEARCH=0"\0"LIGHT_SEARCH=0"\0"AUTOMODE_SEARCH=1"\0"SEARCH_FRAME=1"\0"SEARCH_COLOR=0"\0"MODERN_SEARCH=1"\0"SEARCH_ITALICS=0"\0"NONE=0"\0"SEPARATOR=0"\0"TWO_TONE=1"\0"CLASSIC_SELECTOR=1"\0"HALF_SELECTOR=0"\0"CURVED_MENUSEL=1"\0"CURVED_SUBMENU=0"\0"SELECTOR_REVEAL=1"\0"TRANSPARENT=0"\0"OPAQUE_SUBMENU=1"\0"OPAQUE_MENU=0"\0"OPAQUE=0"\0"STANDARD=0"\0"SMALL_MAIN2=1"\0"SMALL_ICONS=0"\0"COMPACT_SUBMENU=0"\0"PRESERVE_MAIN2=0"\0"LESS_PADDING=0"\0"EXTRA_PADDING=1"\0"24_PADDING=0"\0"LARGE_PROGRAMS=0"\0"TRANSPARENT_SHUTDOWN=0"\0"OUTLINE_SHUTDOWN=0"\0"BUTTON_SHUTDOWN=1"\0"EXPERIMENTAL_SHUTDOWN=0"\0"LARGE_FONT=0"\0"CONNECTED_BORDER=1"\0"FLOATING_BORDER=0"\0"LARGE_SUBMENU=0"\0"LARGE_LISTS=0"\0"THIN_MAIN2=0"\0"EXPERIMENTAL_MAIN2=1"\0"USER_IMAGE=1"\0"USER_OUTSIDE=0"\0"SCALING_USER=1"\0"56=0"\0"64=0"\0"TRANSPARENT_USER=0"\0"UWP_SCROLLBAR=0"\0"MODERN_SCROLLBAR=1"\0"SMALL_ARROWS=0"\0"ARROW_BACKGROUND=1"\0"ICON_FRAME=0"\0"SEARCH_SEPARATOR=0"\0"NO_PROGRAMS_BUTTON=0"\0"" /f > NUL 2>&1
  1075. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f > NUL 2>&1
  1076. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowTaskViewButton /t REG_DWORD /d 0 /f > NUL 2>&1
  1077. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" /v EnableAutoTray /t REG_DWORD /d 0 /f > NUL 2>&1
  1078. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v Enabled /t REG_DWORD /d 0 /f > NUL 2>&1
  1079. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" /v EnableWebContentEvaluation /t REG_DWORD /d 0 /f > NUL 2>&1
  1080. REG ADD "HKEY_USERS\DefaultHiveMount\Control Panel\International\User Profile" /v HttpAcceptLanguageOptOut /t REG_DWORD /d 1 /f > NUL 2>&1
  1081. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Policies\Microsoft\Windows\Explorer" /v DisableNotificationCenter /t REG_DWORD /d 1 /f > NUL 2>&1
  1082. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR" /v AppCaptureEnabled /t REG_DWORD /d 0 /f > NUL 2>&1
  1083. REG ADD "HKEY_USERS\DefaultHiveMount\System\GameConfigStore" /v GameDVR_Enabled /t REG_DWORD /d 0 /f > NUL 2>&1
  1084. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Attachments" /v SaveZoneInformation /t REG_DWORD /d 1 /f > NUL 2>&1
  1085. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" /v ContentEvaluation /t REG_DWORD /d 0 /f > NUL 2>&1
  1086. REG ADD "HKEY_USERS\DefaultHiveMount\Control Panel\Desktop" /v WaitToKillAppTimeOut /t REG_SZ /d 2000 /f > NUL 2>&1
  1087. REG DELETE "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense" /f > NUL 2>&1
  1088. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "BingSearchEnabled" /t REG_DWORD /d 0 /f > NUL 2>&1
  1089. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "CortanaConsent" /t REG_DWORD /d 0 /f > NUL 2>&1
  1090. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "CortanaInAmbientMode" /t REG_DWORD /d 0 /f > NUL 2>&1
  1091. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "HistoryViewEnabled" /t REG_DWORD 0 /f > NUL 2>&1
  1092. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "HasAboveLockTips" /t REG_DWORD /d 0 /f > NUL 2>&1
  1093. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "AllowSearchToUseLocation" /t REG_DWORD /d 0 /f > NUL 2>&1
  1094. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\SearchSettings" /v "SafeSearchMode" /t REG_DWORD /d 0 /f > NUL 2>&1
  1095. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Policies\Microsoft\Windows\Explorer" /v "DisableSearchBoxSuggestions" /t REG_DWORD /d 1 /f > NUL 2>&1
  1096. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization" /v "RestrictImplicitTextCollection" /t REG_DWORD /d 1 /f > NUL 2>&1
  1097. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization" /v "RestrictImplicitInkCollection" /t REG_DWORD /d 1 /f > NUL 2>&1
  1098. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization\TrainedDataStore" /v "AcceptedPrivacyPolicy" /t REG_DWORD /d 0 /f > NUL 2>&1
  1099. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization\TrainedDataStore" /v "HarvestContacts" /t REG_DWORD /d 0 /f > NUL 2>&1
  1100. REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Personalization\Settings" /v "AcceptedPrivacyPolicy" /t REG_DWORD /d 0 /f > NUL 2>&1
  1101. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v "DisableSearchBoxSuggestions" /t REG_DWORD /d 1 /f > NUL 2>&1
  1102. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "NavPaneShowAllFolders" /t REG_DWORD /d 0 /f > NUL 2>&1
  1103. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v LaunchTo /t REG_DWORD /d 1 /f > NUL 2>&1
  1104. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f > NUL 2>&1
  1105. REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f > NUL 2>&1
  1106. REG UNLOAD "HKU\DefaultHiveMount" > NUL 2>&1
  1107. TIMEOUT /T 1 /NOBREAK > NUL 2>&1
  1108. ECHO. & ECHO. & ECHO User created successfully. & ECHO __________________________________________________________ & ECHO.
  1109. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1110. ENDLOCAL & GOTO HOME-MAINMENU
  1111. :NEWUSER-REMOVE
  1112. CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO.
  1113. SET /P "usernameRemove=%BS% Enter the user to be removed, or enter 'Cancel': "
  1114. ECHO "%usernameRemove%" | FINDSTR /I /X /c:""""Cancel""" ">NUL 2>&1 && ENDLOCAL && GOTO NEWUSER-MENU
  1115. ECHO "%usernameRemove%" | FINDSTR /I /X /c:""""""" ">NUL 2>&1 && SET "blankUsrR=true"
  1116. IF "%blankUsrR%"=="true" (
  1117. ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO.
  1118. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1119. ENDLOCAL & GOTO NEWUSER-MENU
  1120. )
  1121. ECHO "%usernameRemove%" | FINDSTR /I /X /c:""""%currentUsername%""" ">NUL 2>&1 && SET "sameUser=true"
  1122. IF "%sameUser%"=="true" (
  1123. ECHO. & ECHO The specified user is the current user ^("%currentUsername%"^)
  1124. CHOICE /C YN /N /M "%BS% Continue Anyways? (Y/N): "
  1125. IF ERRORLEVEL 2 ENDLOCAL & GOTO NEWUSER-MENU
  1126. )
  1127. NET USER "%usernameRemove%" > NUL 2>&1
  1128. IF %ERRORLEVEL% NEQ 0 (
  1129. ECHO. & ECHO. & ECHO User does not exist or deletion failed. & ECHO __________________________________________________________ & ECHO.
  1130. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1131. ENDLOCAL & GOTO NEWUSER-MENU
  1132. )
  1133. ECHO. & ECHO Removing user...
  1134. TIMEOUT /T 2 /NOBREAK > NUL 2>&1
  1135. NET user "%usernameRemove%" /delete > NUL 2>&1
  1136. IF %ERRORLEVEL% NEQ 0 (
  1137. ECHO. & ECHO. & ECHO Failed to remove user. & ECHO __________________________________________________________ & ECHO.
  1138. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1139. ENDLOCAL & GOTO HOME-MAINMENU
  1140. )
  1141. ECHO. & ECHO. & ECHO User removed successfully. & ECHO __________________________________________________________ & ECHO.
  1142. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1143. ENDLOCAL & GOTO HOME-MAINMENU
  1144. REM ------------------------NEWUSER-END------------------------
  1145. REM ----------------
  1146. REM Script Functions
  1147. REM ----------------
  1148. REM -----------------------------------------------------------
  1149. :AUX-DOWNLOADFAILED
  1150. ECHO. & ECHO. & ECHO Download failed. & ECHO __________________________________________________________ & ECHO.
  1151. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu:
  1152. GOTO HOME-MAINMENU
  1153. REM -----------------------------------------------------------
  1154. REM -----------------------------------------------------------
  1155. :AUX-CENTERTEXT
  1156. SETLOCAL
  1157. SET "spaces= "
  1158. SET "cenSize=58"
  1159. SET /A "LEN=0"
  1160. SETLOCAL ENABLEDELAYEDEXPANSION
  1161. :CENTERTEXT-LOOP
  1162. ECHO "!cenStr:~%LEN%!" | FINDSTR /I /X /c:""""""" ">NUL 2>&1 && ENDLOCAL && SET "LEN=%LEN%" && GOTO CENTERTEXT-LOOPEND
  1163. SET /A "LEN=%LEN%+1"
  1164. IF %LEN% GEQ 100 SET "cenOut= Output Error" & EXIT /B 0
  1165. GOTO CENTERTEXT-LOOP
  1166. :CENTERTEXT-LOOPEND
  1167. SET /A "oddCheck=%LEN% %% 2"
  1168. IF "%oddCheck%"=="0" (SET "space=") ELSE (SET "space= ")
  1169. SET /A "pref_len=%cenSize%-%LEN%" & SET /A "pref_len/=2"
  1170. CALL SET "cenOut=%space% %%spaces:~0,%pref_len%%%%%CENSTR%%"
  1171. ENDLOCAL & SET "cenOut=%cenOut%"
  1172. EXIT /B 0
  1173. REM -----------------------------------------------------------
  1174. REM -----------------------------------------------------------
  1175. :AUX-GETUSERNAME
  1176. REM Grabs current username. %username% can be problematic and %userprofile%
  1177. REM is hard to filter properly, thus why this method is used.
  1178. FOR /F "tokens=2 delims=\" %%B IN ('WMIC computersystem get username') DO SET currentUsername=%%B
  1179. SET "currentUsername=%currentUsername:~0,-3%"
  1180. REM Detection for if user changed their username without restarting
  1181. ECHO "%currentUsername%" | FINDSTR /I /X /c:""""~0,-3""" ">NUL 2>&1 && SET "currentUsername=RestartRequired"
  1182. SET "possibleUserDir=%currentUsername%"
  1183. EXIT /B 0
  1184. REM -----------------------------------------------------------
  1185. REM -----------------------------------------------------------
  1186. :AUX-ELEVATIONCHECK
  1187. ECHO "%currentUsername%" | FINDSTR /I /X /c:""""RestartRequired""" ">NUL 2>&1 && SET "userStatus=Unknown" && EXIT /B 0
  1188. FOR /F "usebackq delims=" %%A IN (`NET user "%currentUsername%" ^| FINDSTR /i /c:"Local Group Memberships"`) DO SET "elevResult=%%A" > NUL 2>&1
  1189. ECHO "%elevResult%" | FINDSTR /c:"*Administrators " > NUL 2>&1
  1190. IF %ERRORLEVEL% NEQ 0 (SET "userStatus=Not Elevated") ELSE (SET "userStatus=Elevated")
  1191. EXIT /B 0
  1192. REM -----------------------------------------------------------