From b978930cb19778e681ed806b1e989cea104dc2ad Mon Sep 17 00:00:00 2001 From: Joe Date: Mon, 25 Apr 2022 18:29:59 -0700 Subject: [PATCH] Added profile image function. Added hibernation function. Added beta new user function. Bug fixes and improvements --- CentralAMEScript.cmd | 508 +++++++++++++++++++++++++++++++++---------- README.md | 38 +++- 2 files changed, 428 insertions(+), 118 deletions(-) diff --git a/CentralAMEScript.cmd b/CentralAMEScript.cmd index dcd51e8..4dc33f6 100644 --- a/CentralAMEScript.cmd +++ b/CentralAMEScript.cmd @@ -21,7 +21,7 @@ NET SESSION > NUL 2>&1 IF %ERRORLEVEL% GTR 0 GOTO PRE-ADMINCHECK2 CALL :AUX-ELEVATIONCHECK IF /I "%currentUsername%"=="RestartRequired" ( - ECHO Running this script after a username change may cause issues^! & ECHO. + ECHO Running this script after a username change may cause serious damage^! & ECHO. CHOICE /C YN /N /M "Run anyways? (Y/N): " IF %ERRORLEVEL%==1 GOTO HOME-MAINMENU IF %ERRORLEVEL%==2 EXIT /B 0 ) @@ -29,7 +29,7 @@ GOTO HOME-MAINMENU :PRE-ADMINCHECK2 -POWERSHELL "Start-Process '%scriptPath%' -Verb RunAs" > NUL 2>&1 +POWERSHELL -NoP -C "Start-Process '%scriptPath%' -Verb RunAs" > NUL 2>&1 IF %ERRORLEVEL% GTR 0 CHOICE /C YN /N /M "Elevation canceled, run with limited functionality? (Y/N): " IF %ERRORLEVEL%==1 SET lim=rem & GOTO HOME-MAINMENU IF %ERRORLEVEL%==2 EXIT /B 0 @@ -48,20 +48,20 @@ REM ----------------------------MENU---------------------------- CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. %lim%ECHO [1] Change Username or Password %lim%ECHO [2] Change Lockscreen Image -ECHO [3] Change Language Settings -%lim%ECHO [4] Elevate User to Administrator -%lim%ECHO [5] Login w^/o Typing Username +%lim%ECHO [3] Change Profile Image +ECHO [4] Change Language Settings +%lim%ECHO [5] Elevate User to Administrator +%lim%ECHO [6] Login w^/o Typing Username ECHO. -ECHO [0] Update Script %lim%ECHO [E] Extra ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO. - CHOICE /C 123450EX8 /N /M "%BS% Choose a menu option: " + CHOICE /C 123456EX8 /N /M "%BS% Choose a menu option: " %lim%IF %ERRORLEVEL%==1 GOTO USERPASS-MENU %lim%IF %ERRORLEVEL%==2 GOTO LOCKSCREEN-GRABIMAGE - IF %ERRORLEVEL%==3 GOTO HOME-LANGUAGE - %lim%IF %ERRORLEVEL%==4 GOTO ELEVATE-MENU - %lim%IF %ERRORLEVEL%==5 GOTO NOUSERNAME-MENU - IF %ERRORLEVEL%==6 GOTO AUX-UPDATE + %lim%IF %ERRORLEVEL%==3 GOTO PFP-GRABIMAGE + IF %ERRORLEVEL%==4 GOTO HOME-LANGUAGE + %lim%IF %ERRORLEVEL%==5 GOTO ELEVATE-MENU + %lim%IF %ERRORLEVEL%==6 GOTO NOUSERNAME-MENU %lim%IF %ERRORLEVEL%==7 GOTO HOME-EXTRA IF %ERRORLEVEL%==8 EXIT /B 0 GOTO HOME-MAINMENU @@ -69,16 +69,20 @@ ECHO [X] Exit & ECHO. & ECHO _______________________ :HOME-EXTRA CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. -%lim%ECHO [1] Enable Windows Script Host (Legacy) -%lim%ECHO [2] Enable NCSI Active Probing (Legacy) +%lim%ECHO [1] Enable Hibernation +%lim%ECHO [2] Enable Windows Script Host (Legacy) +%lim%ECHO [3] Enable NCSI Active Probing (Legacy) +%lim%ECHO [4] Create New User (Beta) %lim%ECHO. ECHO [0] Return to Menu & ECHO [X] Exit & ECHO. & ECHO __________________________________________________________ & ECHO. - CHOICE /C 120X /N /M "%BS% Choose a menu option: " - %lim%IF %ERRORLEVEL%==1 GOTO WSH-MENU - %lim%IF %ERRORLEVEL%==2 GOTO NCSI-MENU - IF %ERRORLEVEL%==3 GOTO HOME-MAINMENU - IF %ERRORLEVEL%==4 EXIT /B 0 - GOTO HOME-MAINMENU + CHOICE /C 12340X /N /M "%BS% Choose a menu option: " + %lim%IF %ERRORLEVEL%==1 GOTO HIBERNATE-MENU + %lim%IF %ERRORLEVEL%==2 GOTO WSH-MENU + %lim%IF %ERRORLEVEL%==3 GOTO NCSI-MENU + %lim%IF %ERRORLEVEL%==4 GOTO NEWUSER-MENU + IF %ERRORLEVEL%==5 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==6 EXIT /B 0 + GOTO HOME-EXTRA :HOME-LANGUAGE @@ -107,30 +111,31 @@ REM --------------------------MENU-END-------------------------- REM --------------------------USERPASS-------------------------- :USERPASS-MENU +SETLOCAL 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. CHOICE /C 1230X /N /M "%BS% Choose a menu option: " IF %ERRORLEVEL%==1 GOTO USERPASS-USERNAME IF %ERRORLEVEL%==2 GOTO USERPASS-PASSWORD IF %ERRORLEVEL%==3 GOTO USERPASS-ADMINPASSWORD - IF %ERRORLEVEL%==4 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==4 ENDLOCAL & GOTO HOME-MAINMENU IF %ERRORLEVEL%==5 EXIT /B 0 :USERPASS-USERNAME CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. -SET newUsername= -SET /P newUsername="%BS% Enter the new Username, or enter 'Cancel' to quit: " - IF /I "%newUsername%"=="Cancel" GOTO USERPASS-MENU +SET "newUsername=" +SET /P "newUsername=%BS% Enter the new Username, or enter 'Cancel' to quit: " + IF /I "%newUsername%"=="Cancel" ENDLOCAL & GOTO USERPASS-MENU IF "%newUsername%"=="" ( ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO USERPASS-MENU ) + ENDLOCAL & GOTO USERPASS-MENU ) TIMEOUT /T 1 /NOBREAK > NUL -FOR /F "tokens=3" %%A IN ('WMIC useraccount where "name='%currentUsername%'" rename '%newUsername%'') DO SET "wmicOutput=%%A" > NUL 2>&1 - IF "%wmicOutput%"=="0;" SET "currentUsername=%newUsername%" & ECHO. & ECHO Username Changed Successfully & ECHO A restart is recommended. +FOR /F "usebackq tokens=3" %%A IN (`WMIC useraccount where "name='%currentUsername%'" rename '%newUsername%'`) DO SET "wmicOutput=%%A" > NUL 2>&1 + IF "%wmicOutput%"=="0;" ENDLOCAL & SET "currentUsername=%newUsername%" & ECHO. & ECHO Username Changed Successfully & ECHO A restart is recommended. REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting. - IF "%wmicOutput%"=="Available." ECHO. & ECHO You must restart before changing your username again. - IF "%wmicOutput%"=="9;" ECHO. & ECHO Invalid input. & SET "loc=USERPASS-MENU" + IF "%wmicOutput%"=="Available." ENDLOCAL & ECHO. & ECHO You must restart before changing your username again. + IF "%wmicOutput%"=="9;" ENDLOCAL & ECHO. & ECHO Invalid input. & SET "loc=USERPASS-MENU" ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: GOTO HOME-MAINMENU @@ -138,27 +143,27 @@ GOTO HOME-MAINMENU :USERPASS-PASSWORD CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Username/Password Changer ^| & ECHO. -SET newPassword= -SET /P newPassword="%BS% Enter the new Password, or enter 'Cancel' to quit: " - IF /I "%newPassword%"=="Cancel" GOTO USERPASS-MENU +SET "newPassword=" +SET /P "newPassword=%BS% Enter the new Password, or enter 'Cancel' to quit: " + IF /I "%newPassword%"=="Cancel" ENDLOCAL & GOTO USERPASS-MENU IF "%newPassword%"=="" ( ECHO. & ECHO Input cannot be blank. :& ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO USERPASS-MENU ) + ENDLOCAL & GOTO USERPASS-MENU ) TIMEOUT /T 1 /NOBREAK > NUL NET user "%currentUsername%" "%newPassword%" > NUL 2>&1 - IF %ERRORLEVEL% LEQ 0 SET "currentPassword=%newPassword%" & ECHO. & ECHO. & ECHO Password Changed Successfully + IF %ERRORLEVEL% LEQ 0 ECHO. & ECHO. & ECHO Password Changed Successfully REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting. IF %ERRORLEVEL% GTR 0 ECHO. & ECHO. & ECHO. & ECHO You must restart after changing your username. & ECHO. ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU :USERPASS-ADMINPASSWORD CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Username/Password Changer ^| & ECHO. -SET newPassword= -SET /P newPassword="%BS% Enter the new Password, or enter 'Cancel' to quit: " +SET "newPassword=" +SET /P "newPassword=%BS% Enter the new Password, or enter 'Cancel' to quit: " IF /I "%newPassword%"=="Cancel" GOTO USERPASS-MENU IF "%newPassword%"=="" ( ECHO. & ECHO Input cannot be blank. :& ECHO __________________________________________________________ & ECHO. @@ -166,12 +171,12 @@ SET /P newPassword="%BS% Enter the new Password, or enter 'Cancel' to GOTO USERPASS-MENU ) TIMEOUT /T 1 /NOBREAK > NUL NET user "Administrator" "%newPassword%" > NUL 2>&1 - IF %ERRORLEVEL% LEQ 0 SET "currentPassword=%newPassword%" & ECHO. & ECHO. & ECHO Admin Password Changed Successfully + IF %ERRORLEVEL% LEQ 0 ECHO. & ECHO. & ECHO Admin Password Changed Successfully REM This should only happen if the user changes their username AND closes/re-opens the .cmd before restarting. IF %ERRORLEVEL% GTR 0 ECHO. & ECHO. & ECHO. & ECHO Action failed. & ECHO. ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU REM ------------------------USERPASS-END------------------------ @@ -179,18 +184,22 @@ REM ------------------------USERPASS-END------------------------ REM -------------------------LOCKSCREEN------------------------- :LOCKSCREEN-GRABIMAGE +SETLOCAL REM Original Author & Co-Author: Logan Darklock, lucid CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Select your image & ECHO. -DIR %SYSTEMDRIVE%\Users | FINDSTR "%possibleUserDir%" > NUL 2>&1 - IF %ERRORLEVEL% LEQ 0 SET "ImgSelDir=\%possibleUserDir%" -SET "IMAGEPATH=" & SET "IMAGEEXT=" -SET LSPSComm=POWERSHELL -NoP -C "[System.Reflection.Assembly]::LoadWithPartialName('System.windows.forms')|Out-Null;$OFD = New-Object System.Windows.Forms.OpenFileDialog;$OFD.Multiselect = $True;$OFD.Filter = 'Image Files (*.jpg; *.jpeg; *.png; *.bmp; *.jfif)| *.jpg; *.jpeg; *.png; *.bmp; *.jfif';$OFD.InitialDirectory = '%SYSTEMDRIVE%\Users%ImgSelDir%';$OFD.ShowDialog()|out-null;$OFD.FileNames" -REM Execute PowerShell command and get results in IMAGEPATH and IMAGEEXT variables -FOR /F "delims=" %%I in ('%LSPSComm%') DO SET "IMAGEPATH=%%~I" & SET "IMAGEEXT=%%~xI" + +DIR /B "%SYSTEMDRIVE%\Users" | FINDSTR /x "%possibleUserDir%" > NUL 2>&1 + IF %ERRORLEVEL% LEQ 0 SET "UserPath=\%possibleUserDir%" + +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 "IMAGEPATH=%%~I" IF "%IMAGEPATH%" =="" ( ECHO. & ECHO You must select an image & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO HOME-MAINMENU ) + ENDLOCAL & GOTO HOME-MAINMENU ) + +CHOICE /C YN /N /M "%BS% Remove lockscreen blur? (Y/N): " + IF %ERRORLEVEL%==1 REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\System" /v DisableAcrylicBackgroundOnLogon /t REG_DWORD /d 1 /f > NUL + IF %ERRORLEVEL%==2 REG DELETE "HKLM\SOFTWARE\Policies\Microsoft\Windows" /v DisableAcrylicBackgroundOnLogon /f > NUL 2>&1 :LOCKSCREEN-DEPLOY @@ -204,21 +213,88 @@ TAKEOWN /R /D Y /F "%PROGRAMDATA%\Microsoft\Windows\SystemData" > NUL ICACLS "%PROGRAMDATA%\Microsoft\Windows\SystemData" /reSET /t > NUL FOR /D %%x in ("%PROGRAMDATA%\Microsoft\Windows\SystemData\*") do ( FOR /D %%y in ("%%x\ReadOnly\LockScreen_*") do rd /s /q "%%y" ) -ECHO. & ECHO Wallpaper changed successfully & ECHO __________________________________________________________ & ECHO. + +ECHO. & ECHO. & ECHO Wallpaper changed successfully & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU REM -----------------------LOCKSCREEN-END----------------------- +REM ----------------------------PFP----------------------------- +:PFP-GRABIMAGE + +SETLOCAL +REM Original Author & Co-Author: Logan Darklock, lucid +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Select your image & ECHO. + +REM Used for default starting directory for file selection window +DIR /B "%SYSTEMDRIVE%\Users" | FINDSTR /x "%possibleUserDir%" > NUL 2>&1 + IF %ERRORLEVEL% LEQ 0 SET "UserPath=\%possibleUserDir%" + +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 "IMAGE=%%~I" + IF "%IMAGE%"=="" ( + ECHO. & ECHO You must select an image & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU ) + +:PFP-DEPLOY + +ECHO Setting profile image... +FOR /F "usebackq delims=" %%F IN (`WMIC useraccount where "name="%currentUsername%"" get sid ^| FINDSTR "S-"`) DO SET PFPSID=%%F + SET "PFPSID=%PFPSID:~0,-3%" + +REM On recent Windows 10 versions, resolutions called for are: +REM 32x32, 40x40, 48x48, 64x64, 96x96, 192x192, 208x208, 240x240, 424x424, +REM 448x448, 1080x1080 +SET "FOLDER=%PUBLIC%\AccountPictures\%PFPSID%" + +MKDIR "%FOLDER%" > NUL 2>&1 +TAKEOWN /r /d Y /f "%FOLDER%" > NUL +ICACLS "%FOLDER%" /reset /t > NUL +DEL /Q /F "%FOLDER%\*" > NUL + +POWERSHELL -NoP -C "Add-Type -AssemblyName System.Drawing; $img = [System.Drawing.Image]::FromFile((Get-Item """"%IMAGE%"""")); $a = New-Object System.Drawing.Bitmap(32, 32); $graph = [System.Drawing.Graphics]::FromImage($a); $graph.DrawImage($img, 0, 0, 32, 32); $a.Save("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\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("""%FOLDER%\1080x1080.png""")" + +SET "KEY=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AccountPicture\Users\%PFPSID%" + +REM Runs the reg delete command as SYSTEM +SCHTASKS /create /tn "AME PFPREG" /tr "CMD /C 'REG DELETE '%KEY%' /f'" /sc MONTHLY /f /rl HIGHEST /ru "SYSTEM" > NUL +SCHTASKS /run /tn "AME PFPREG" > NUL +SCHTASKS /delete /tn "AME PFPREG" /f > NUL + +REG ADD "%KEY%" /f > NUL +REG ADD "%KEY%" /v Image32 /t REG_SZ /d "%FOLDER%\32x32.png" /f > NUL +REG ADD "%KEY%" /v Image40 /t REG_SZ /d "%FOLDER%\40x40.png" /f > NUL +REG ADD "%KEY%" /v Image48 /t REG_SZ /d "%FOLDER%\48x48.png" /f > NUL +REG ADD "%KEY%" /v Image64 /t REG_SZ /d "%FOLDER%\64x64.png" /f > NUL +REG ADD "%KEY%" /v Image96 /t REG_SZ /d "%FOLDER%\96x96.png" /f > NUL +REG ADD "%KEY%" /v Image192 /t REG_SZ /d "%FOLDER%\192x192.png" /f > NUL +REG ADD "%KEY%" /v Image208 /t REG_SZ /d "%FOLDER%\208x208.png" /f > NUL +REG ADD "%KEY%" /v Image240 /t REG_SZ /d "%FOLDER%\240x240.png" /f > NUL +REG ADD "%KEY%" /v Image424 /t REG_SZ /d "%FOLDER%\424x424.png" /f > NUL +REG ADD "%KEY%" /v Image448 /t REG_SZ /d "%FOLDER%\448x448.png" /f > NUL +REG ADD "%KEY%" /v Image1080 /t REG_SZ /d "%FOLDER%\1080x1080.png" /f > NUL +REG ADD "HKU\%PFPSID%\SOFTWARE\OpenShell\StartMenu\Settings" /v UserPicturePath /t REG_SZ /d "%FOLDER%\448x448.png" /f > NUL + +GPUPDATE /force > NUL + +ECHO. & ECHO. & ECHO Profile image changed successfully & ECHO __________________________________________________________ & ECHO. +PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: +ENDLOCAL & GOTO HOME-MAINMENU +REM --------------------------PFP-END--------------------------- + + + REM -------------------------ELEVATION-------------------------- :ELEVATE-MENU +SETLOCAL CLS & ECHO %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. CHOICE /C 120X /N /M "%BS% Choose a menu option: " IF %ERRORLEVEL%==1 SET "elevMenu=1" & GOTO ELEVATE-ELEVATE IF %ERRORLEVEL%==2 SET "elevMenu=2" & GOTO ELEVATE-REVOKE - IF %ERRORLEVEL%==3 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU IF %ERRORLEVEL%==4 EXIT /B 0 :ELEVATE-ELEVATE @@ -227,7 +303,7 @@ SET "cenStr=%currentUsername% is already an Administrator." & CALL :AUX-CENTERTE IF "%userStatus%"=="Elevated" ( CLS & ECHO %currentUsername%: %userStatus% & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO. & ECHO%cenOut% & ECHO __________________________________________________________& ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO ELEVATE-MENU ) + ENDLOCAL & GOTO ELEVATE-MENU ) SET "cenStr=Elevating %currentUsername% to Administrator..." & CALL :AUX-CENTERTEXT CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO%cenOut% TIMEOUT /T 2 /NOBREAK > NUL @@ -242,7 +318,7 @@ SET "cenStr=%currentUsername% is not an Administator." & CALL :AUX-CENTERTEXT IF "%userStatus%"=="Not Elevated" ( CLS & ECHO %currentUsername%: %userStatus% & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. & ECHO%cenOut% & ECHO __________________________________________________________& ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO ELEVATE-MENU ) + ENDLOCAL & GOTO ELEVATE-MENU ) SET "cenStr=Revoking admin rights for %currentUsername%..." & CALL :AUX-CENTERTEXT CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO%cenOut% TIMEOUT /T 2 /NOBREAK > NUL 2>&1 @@ -256,14 +332,14 @@ GOTO ELEVATE-FINISH IF "%elevFail%"=="true" ( ECHO. & ECHO.& ECHO Action failed. A restart may fix this. & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: - GOTO HOME-MAINMENU ) + ENDLOCAL & GOTO HOME-MAINMENU ) IF "%elevMenu%"=="1" SET "cenStr=%currentUsername% is now an Administrator" IF "%elevMenu%"=="2" SET "cenStr=Admin rights have been revoked for %currentUsername%" CALL :AUX-CENTERTEXT ECHO. & ECHO. & ECHO%cenOut% & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU REM -----------------------ELEVATION-END------------------------ @@ -377,26 +453,34 @@ SETLOCAL REM Check if language pack is already installed CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. IF "%lpStatus%"=="removed" GOTO DISPLANG-LPREMOVE + WHERE 7z.exe>NUL 2>&1 && SET "dispSkip0=rem " WHERE choco.exe>NUL 2>&1 && SET "dispChoco=true" + DISM /Online /Get-Intl /English | FIND "Installed language(s): %langSel%" > NUL 2>&1 IF %ERRORLEVEL% LEQ 0 GOTO DISPLANG-USERCHECK + FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "IMAGENAME eq lpksetup.exe" /NH /FO csv') DO SET lpkStatus=%%A 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 ) + ECHO A ~%dispDl%GB Language Packs ISO must be downloaded & ECHO. CHOICE /C YN /N /M "%BS% Continue? (Y/N): " IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU + PING -n 1 archlinux.org -w 20000 > NUL 2>&1 IF %ERRORLEVEL% GTR 0 ( 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-MAINMENU ) + FOR /F "tokens=2 delims==" %%A IN ('WMIC logicaldisk where "DeviceID='%~d0'" get FreeSpace /format:value') DO SET freeSpace=%%A SET "freeSpace=%freeSpace:~0,-10%" IF "%freeSpace%"=="" SET "freeSpace=1" IF %freeSpace% LSS 5 ( 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-MAINMENU ) + IF EXIST "%dirPath%LangPacks.ISO" DEL /Q "%dirPath%LangPacks.ISO" IF EXIST "%dirPath%LangPacks" RMDIR /Q /S "%dirPath%LangPacks" + REM If 7zip must be installed, there will not be enough space to display everything in 25 lines (script height) without this line %dispSkip0%CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| ECHO. & ECHO Download Progress @@ -408,8 +492,7 @@ FOR %%A IN ("%dirPath%LangPacks.ISO") DO SET "langISOSize=%%~zA" REM Detects size of ISO file, this essentially allows for a simple error detection. IF %langISOSize% LSS 700000 ( DEL /Q "%dirPath%LangPacks.ISO" > NUL - ENDLOCAL - GOTO AUX-UPDATEFAILED ) + ENDLOCAL & GOTO AUX-DOWNLOADFAILED ) :DISPLANG-INSTALL @@ -480,27 +563,25 @@ IF /I "%~1"=="LangSet" EXIT 0 :DISPLANG-COMPLETE ECHO. & ECHO. & ECHO Display language changed to %langSel% & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO. -ENDLOCAL CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU :DISPLANG-LPCOMPLETE %dispSkip0%ECHO. & ECHO Removing 7zip... & choco uninstall 7zip.install -y --force > NUL %dispSkip0%choco uninstall 7zip -y --force > NUL + ECHO. & ECHO. & ECHO LanguagePack %langSel% %lpStatus% successfully & ECHO A restart is recommended. & ECHO __________________________________________________________ & ECHO. -ENDLOCAL PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU :DISPLANG-LPREMOVE SET "dispSkip0=rem " CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "IMAGENAME eq lpksetup.exe" /NH /FO csv') DO SET "lpkStatus=%%A" - IF "%lpkStatus%"=="," ( - ECHO. & ECHO. & ECHO All instances of lpksetup.exe must be closed. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU ) + 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 ) FOR /F "tokens=2" %%A IN ('DATE /T') DO SET "dateAfter=%%A" SET "timeAfter=%TIME:~0,-3%" ECHO Uninstalling %langSel% LanguagePack... @@ -508,7 +589,7 @@ LPKSETUP /u %langSel% /r :lpkRemLogLoop TIMEOUT /T 1 /NOBREAK > NUL POWERSHELL -command "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2014 2008" > NUL - IF %ERRORLEVEL% LSS 1 ECHO. & ECHO. & ECHO Action failed. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU + 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 POWERSHELL -command "$timeAfter = Get-Date -Date '%dateAfter% %timeAfter%'; Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-LanguagePackSetup/Operational';StartTime=$timeAfter}" | FINDSTR "2001" > NUL IF %ERRORLEVEL% LSS 1 GOTO DISPLANG-LPCOMPLETE GOTO lpkRemLogLoop @@ -701,7 +782,7 @@ CHOICE /C %lC1%%lC2%%lC3%%lC4%%lC5%%lC6%%lC7%%lC8%%lC9%%lC10%%lC11%0X /N /M "%BS %kbDisablePrev%) SET /A "lEL12=%lEL10%+1" IF %kbChoice%==%lEL12% ( - IF "%kbSub%"=="true" (ENDLOCAL & GOTO KBLANG-LANGS) ELSE (GOTO HOME-MAINMENU) + IF "%kbSub%"=="true" (ENDLOCAL & GOTO KBLANG-LANGS) ELSE (ENDLOCAL & GOTO HOME-MAINMENU) ) SET /A "lEL13=%lEL10%+2" IF %kbChoice%==%lEL13% EXIT /B 0 @@ -872,8 +953,8 @@ REM Marker :KBLANG-PRESET -IF /I "%~1"=="kbLangSet" WAITFOR /SI Golden>NUL 2>&1 & SET "kbLangSel=%~2" & SET "kbMakeDef=%~3" & GOTO KBLANG-SETLANG SETLOCAL +IF /I "%~1"=="kbLangSet" WAITFOR /SI Golden>NUL 2>&1 & SET "kbLangSel=%~2" & SET "kbMakeDef=%~3" & GOTO KBLANG-SETLANG CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO. CHOICE /C YN /N /M "%BS% Make default keyboard language? (Y/N): " IF %ERRORLEVEL%==2 SET "kbMakeDef=false" @@ -886,7 +967,7 @@ FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "PID eq %scriptPID%" /FI "USE IF NOT "%processRunOut%"=="," ( 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, REM this would be problematic as schtasks requires admin privilages. - IF "%lim%"=="rem " ECHO. & ECHO. & ECHO Script must be run as the current user & ECHO or with administrator privilages. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU + 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-MAINMENU SETLOCAL ENABLEDELAYEDEXPANSION SCHTASKS /CREATE /tn SetDispLang /tr "CMD /C 'START /min '' '%scriptPath%' kbLangSet %kbLangSel% %kbMakeDef%'" /sc ONSTART /ru "%currentUsername%" /it /f > NUL 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 @@ -894,7 +975,7 @@ FOR /F tokens^=2^ delims^=^" %%A IN ('TASKLIST /FI "PID eq %scriptPID%" /FI "USE WAITFOR Golden /T 10 > NUL 2>&1 IF !ERRORLEVEL! LSS 1 SCHTASKS /DELETE /tn SetDispLang /f>NUL & GOTO KBLANG-COMPLETE SCHTASKS /DELETE /tn SetDispLang /f > NUL - ENDLOCAL & ENDLOCAL & ECHO. & ECHO. & ECHO Action failed. & ECHO __________________________________________________________ & ECHO. & PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: & GOTO HOME-MAINMENU ) + 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-MAINMENU ) :KBLANG-SETLANG @@ -905,9 +986,8 @@ IF /I "%~1"=="kbLangSet" EXIT 0 :KBLANG-COMPLETE ECHO. & ECHO. & ECHO Keyboard language added successfully & ECHO __________________________________________________________ & ECHO. -ENDLOCAL PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU REM -------------------------KBLANG-END------------------------- @@ -915,11 +995,12 @@ REM -------------------------KBLANG-END------------------------- REM -------------------------NOUSERNAME------------------------- :NOUSERNAME-MENU +SETLOCAL 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. CHOICE /C 120X /N /M "%BS% Choose a menu option: " - IF %ERRORLEVEL%==1 SET "wshMenu=1" & GOTO NOUSERNAME-DISABLE - IF %ERRORLEVEL%==2 SET "wshMenu=2" & GOTO NOUSERNAME-ENABLE - IF %ERRORLEVEL%==3 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==1 GOTO NOUSERNAME-DISABLE + IF %ERRORLEVEL%==2 GOTO NOUSERNAME-ENABLE + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU IF %ERRORLEVEL%==4 EXIT /B 0 :NOUSERNAME-DISABLE @@ -930,7 +1011,7 @@ REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v d ECHO. & ECHO The username login requirement is now disabled & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU :NOUSERNAME-ENABLE @@ -940,19 +1021,66 @@ REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v dont ECHO. & ECHO The username login requirement is now enabled & ECHO A restart is needed to take effect. & ECHO __________________________________________________________ & ECHO. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU REM -----------------------NOUSERNAME-END----------------------- +REM -------------------------HIBERNATE------------------------- +:HIBERNATE-MENU + +SETLOCAL +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. +CHOICE /C 120X /N /M "%BS% Choose a menu option: " + IF %ERRORLEVEL%==1 GOTO HIBERNATE-ENABLE + IF %ERRORLEVEL%==2 GOTO HIBERNATE-DISABLE + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU + IF %ERRORLEVEL%==4 EXIT /B 0 + +:HIBERNATE-ENABLE + +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Enabling Hibernation... +TIMEOUT /T 2 /NOBREAK > NUL +POWERCFG /HIBERNATE /TYPE FULL > NUL 2>&1 + IF %ERRORLEVEL% NEQ 0 ( + ECHO. & ECHO. & ECHO Failed to enable hibernation. & ECHO Hibernation may not be supported by your firmware. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) +SET "hibernate=enable" & GOTO HIBERNATE-FINISH + +:HIBERNATE-DISABLE + +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Disabling Hibernation... +TIMEOUT /T 2 /NOBREAK > NUL +POWERCFG /HIBERNATE OFF > NUL 2>&1 + IF %ERRORLEVEL% NEQ 0 ( + ECHO. & ECHO. & ECHO Failed to disable hibernation. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) +SET "hibernate=disable" & GOTO HIBERNATE-FINISH + +:HIBERNATE-FINISH + +IF "%hibernate%"=="enable" SET "hibernateResult= Hibernation is now enabled" +IF "%hibernate%"=="disable" SET "hibernateResult= Hibernation is now disabled" +ECHO. & ECHO. & ECHO %hibernateResult% & ECHO __________________________________________________________ & ECHO. +PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: +ENDLOCAL & GOTO HOME-MAINMENU +REM -----------------------HIBERNATE-END----------------------- + + + REM ----------------------------WSH----------------------------- :WSH-MENU +SETLOCAL 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. CHOICE /C 120X /N /M "%BS% Choose a menu option: " - IF %ERRORLEVEL%==1 SET "wshMenu=1" & GOTO WSH-ENABLE - IF %ERRORLEVEL%==2 SET "wshMenu=2" & GOTO WSH-DISABLE - IF %ERRORLEVEL%==3 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==1 GOTO WSH-ENABLE + IF %ERRORLEVEL%==2 GOTO WSH-DISABLE + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU IF %ERRORLEVEL%==4 EXIT /B 0 :WSH-ENABLE @@ -964,7 +1092,7 @@ FOR /F "tokens=* USEBACKQ" %%F IN (`WMIC useraccount where "name="%currentUserna SET WSHSID=%WSHSID:~0,-3% REG ADD "HKEY_USERS\%WSHSID%\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f > NUL REG ADD "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f > NUL -GOTO WSH-FINISH +SET "wsh=enable" & GOTO WSH-FINISH :WSH-DISABLE @@ -975,19 +1103,19 @@ FOR /F "tokens=* USEBACKQ" %%F IN (`WMIC useraccount where "name="%currentUserna SET WSHSID=%WSHSID:~0,-3% REG ADD "HKEY_USERS\%WSHSID%\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f > NUL REG ADD "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f > NUL -GOTO WSH-FINISH +SET "wsh=disable" & GOTO WSH-FINISH :WSH-FINISH -IF "%wshMenu%"=="1" SET "cenStr=WSH is now enabled for %currentUsername%" & SET "wshRestartMsg=& ECHO A restart is required to complete the setup. " -IF "%wshMenu%"=="2" SET "cenStr=WSH is now disabled for %currentUsername%" & SET "wshRestartMsg=" +IF "%wsh%"=="enable" SET "cenStr=WSH is now enabled for %currentUsername%" & SET "wshRestartMsg=& ECHO A restart is required to complete the setup. " +IF "%wsh%"=="disable" SET "cenStr=WSH is now disabled for %currentUsername%" & SET "wshRestartMsg=" CALL :AUX-CENTERTEXT ECHO. & ECHO. & ECHO%cenOut:~1% %wshRestartMsg%& ECHO __________________________________________________________ & ECHO. -IF "%wshMenu%"=="1" CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " +IF "%wsh%"=="enable" CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU REM --------------------------WSH-END-------------------------- @@ -995,11 +1123,12 @@ REM --------------------------WSH-END-------------------------- REM ---------------------------NCSI---------------------------- :NCSI-MENU +SETLOCAL 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. CHOICE /C 120X /N /M "%BS% Choose a menu option: " - IF %ERRORLEVEL%==1 SET "ncsiMenu=1" & GOTO NCSI-ENABLE - IF %ERRORLEVEL%==2 SET "ncsiMenu=2" & GOTO NCSI-DISABLE - IF %ERRORLEVEL%==3 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==1 GOTO NCSI-ENABLE + IF %ERRORLEVEL%==2 GOTO NCSI-DISABLE + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU IF %ERRORLEVEL%==4 EXIT /B 0 :NCSI-ENABLE @@ -1007,54 +1136,209 @@ CHOICE /C 120X /N /M "%BS% Choose a menu option: " CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Enabling NCSI Active Probing... TIMEOUT /T 2 /NOBREAK > NUL REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 1 /f > NUL -GOTO NCSI-FINISH +SET "ncsi=enable" & GOTO NCSI-FINISH :NCSI-DISABLE CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Disabling NCSI Active Probing... TIMEOUT /T 2 /NOBREAK > NUL REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 0 /f > NUL -GOTO NCSI-FINISH +SET "ncsi=disable" & GOTO NCSI-FINISH :NCSI-FINISH -IF "%ncsiMenu%"=="1" SET "ncsiResult= NCSI Active Probing is now disabled" -IF "%ncsiMenu%"=="2" SET "ncsiResult= NCSI Active Probing is now enabled" +IF "%ncsi%"=="enable" SET "ncsiResult= NCSI Active Probing is now disabled" +IF "%ncsi%"=="disable" SET "ncsiResult= NCSI Active Probing is now enabled" ECHO. & ECHO. & ECHO %ncsiResult% & ECHO A restart is required to take effect. & ECHO __________________________________________________________ & ECHO. CHOICE /C YN /N /M "%BS% Would you like to restart now? (Y/N): " IF %ERRORLEVEL%==1 SHUTDOWN -R -T 0 & EXIT 0 - IF %ERRORLEVEL%==2 GOTO HOME-MAINMENU + IF %ERRORLEVEL%==2 ENDLOCAL & GOTO HOME-MAINMENU REM -------------------------NCSI-END-------------------------- - REM ---------------- - REM Script Functions - REM ---------------- +REM --------------------------NEWUSER-------------------------- +:NEWUSER-MENU -REM ----------------------------------------------------------- -:AUX-UPDATE +SETLOCAL -CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Downloading and applying update... -TIMEOUT /T 1 /NOBREAK > NUL -CURL -L "https://git.ameliorated.info/Joe/Central-AME-Script/releases/latest/CentralAMEScript.zip" --output "%temp%\AMECentralUpdated.zip" > NUL 2>&1 -REM Detect size of update CMD file, this essentially allows for a simple error detection. -FOR %%A IN ("%temp%\AMECentralUpdated.zip") DO SET "updCmdSize=%%~zA" - IF %updCmdSize% LSS 7000 ( - DEL /Q "%temp%\AMECentralUpdated.zip" > NUL - GOTO AUX-UPDATEFAILED ) -POWERSHELL -command "Expand-Archive -Path '%temp%\AMECentralUpdated.zip' -DestinationPath '%temp%'" > NUL -> NUL 2>&1 XCOPY "%temp%\CentralAMEScript.cmd" "%scriptPath%" /Y /V /O & DEL /Q "%temp%\AMECentralUpdated.cmd" & CMD /C "%~0" updateFinished & EXIT 0 +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO WARNING: This is a beta feature, use at your own risk. & ECHO __________________________________________________________ & ECHO. +PAUSE > NUL|SET /P =%BS% Press any key to to continue: + +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. +CHOICE /C 120X /N /M "%BS% Choose a menu option: " + IF %ERRORLEVEL%==1 GOTO NEWUSER-CREATE + IF %ERRORLEVEL%==2 GOTO NEWUSER-REMOVE + IF %ERRORLEVEL%==3 ENDLOCAL & GOTO HOME-MAINMENU + IF %ERRORLEVEL%==4 EXIT /B 0 -:AUX-UPDATEFAILED +:NEWUSER-CREATE -ECHO. & ECHO. & ECHO Download failed. & ECHO __________________________________________________________ & ECHO. +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. + +SET /P "username=%BS% Enter desired username, or enter 'Cancel' to quit: " + IF /I "%username%"=="Cancel" ENDLOCAL & GOTO HOME-MAINMENU + + IF "%username%"=="" ( + ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) + +ECHO. +SET /P "password=%BS% Enter desired password, or enter 'Cancel' to quit: " + IF /I "%password%"=="Cancel" ENDLOCAL & GOTO HOME-MAINMENU + +ECHO. & ECHO Creating user... + +NET user "%username%" "%password%" /add > NUL 2>&1 + IF %ERRORLEVEL% NEQ 0 ( + ECHO. & ECHO. & ECHO Improper username or password. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) + +TIMEOUT /T 1 /NOBREAK > NUL 2>&1 + +ECHO. & ECHO Configuring new user... + +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 +SCHTASKS /run /tn "AME NEWUSRREG" > NUL +SCHTASKS /delete /tn "AME NEWUSRREG" /f > NUL + +REG ADD "HKLM\SOFTWARE\Policies\Microsoft\Windows\OOBE" /v DisablePrivacyExperience /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableFirstLogonAnimation /t REG_DWORD /d 0 /f > NUL 2>&1 + +REG LOAD "HKU\DefaultHiveMount" "%SYSTEMDRIVE%\Users\Default\NTUSER.DAT" > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\OpenShell" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\OpenShell\Settings" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer\Settings" /t REG_SZ /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /v "ShowedToolbar" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer" /v "NewLine" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\ClassicExplorer\Settings" /v "ShowStatusBar" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "ShowedStyle2" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "CSettingsDlg" /t REG_BINARY /d c80100001a0100000000000000000000360d00000100000000000000 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "OldItems" /t REG_BINARY /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu" /v "ItemRanks" /t REG_BINARY /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\MRU" /v "0" /t REG_SZ /d "%SYSTEMDRIVE%\Windows\regedit.exe" /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "Version" /t REG_DWORD /d 04040098 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "AllProgramsMetro" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "RecentMetroApps" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "StartScreenShortcut" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SearchInternet" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "GlassOverride" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "GlassColor" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinW7" /t REG_SZ /d "Fluent-Metro" /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkinVariationW7" /t REG_SZ /f > NUL 2>&1 +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 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\OpenShell\StartMenu\Settings" /v "SkipMetro" /t REG_DWORD /d 1 /f > NUL 2>&1 +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 +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 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Search" /v SearchboxTaskbarMode /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowTaskViewButton /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" /v EnableAutoTray /t REG_DWORD /d 0 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo" /v Enabled /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" /v EnableWebContentEvaluation /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Control Panel\International\User Profile" /v HttpAcceptLanguageOptOut /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Policies\Microsoft\Windows\Explorer" /v DisableNotificationCenter /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR" /v AppCaptureEnabled /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\System\GameConfigStore" /v GameDVR_Enabled /t REG_DWORD /d 0 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Attachments" /v SaveZoneInformation /t REG_DWORD /d 1 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\AppHost" /v ContentEvaluation /t REG_DWORD /d 0 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\Control Panel\Desktop" /v WaitToKillAppTimeOut /t REG_SZ /d 2000 /f > NUL 2>&1 + +REG DELETE "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\StorageSense" /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "BingSearchEnabled" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "CortanaConsent" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "CortanaInAmbientMode" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "HistoryViewEnabled" /t REG_DWORD 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "HasAboveLockTips" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\Search" /v "AllowSearchToUseLocation" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Windows\CurrentVersion\SearchSettings" /v "SafeSearchMode" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Policies\Microsoft\Windows\Explorer" /v "DisableSearchBoxSuggestions" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization" /v "RestrictImplicitTextCollection" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization" /v "RestrictImplicitInkCollection" /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization\TrainedDataStore" /v "AcceptedPrivacyPolicy" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\InputPersonalization\TrainedDataStore" /v "HarvestContacts" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\Software\Microsoft\Personalization\Settings" /v "AcceptedPrivacyPolicy" /t REG_DWORD /d 0 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v "DisableSearchBoxSuggestions" /t REG_DWORD /d 1 /f > NUL 2>&1 + +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "NavPaneShowAllFolders" /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v LaunchTo /t REG_DWORD /d 1 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f > NUL 2>&1 +REG ADD "HKEY_USERS\DefaultHiveMount\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f > NUL 2>&1 + +REG UNLOAD "HKU\DefaultHiveMount" > NUL 2>&1 + +TIMEOUT /T 1 /NOBREAK > NUL 2>&1 + +ECHO. & ECHO. & ECHO User created successfully. & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: -GOTO HOME-MAINMENU +ENDLOCAL & GOTO HOME-MAINMENU + +:NEWUSER-REMOVE + +CLS & ECHO. & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. + +SET /P "usernameRemove=%BS% Enter the user to be removed, or enter 'Cancel' to quit: " + IF /I "%username%"=="Cancel" ENDLOCAL & GOTO HOME-MAINMENU + + IF "%username%"=="" ( + ECHO. & ECHO. & ECHO Input cannot be blank. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) + + IF "%usernameRemove%"=="%currentUsername%" ( + ECHO. & ECHO. & ECHO User must not be the logged in user. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) + + NET USER "%usernameRemove%" > NUL 2>&1 + IF %ERRORLEVEL% NEQ 0 ( + ECHO. & ECHO. & ECHO User does not exist. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) -:AUX-UPDATEFINISHED +ECHO. & ECHO Removing user... -ECHO. & ECHO Script update successful & ECHO __________________________________________________________ & ECHO. & ECHO ^| Central AME Script %ver% ^| & ECHO. & ECHO Downloading and applying update... & ECHO. & ECHO. & ECHO Script Update Successful & ECHO __________________________________________________________ & ECHO. +NET user "%usernameRemove%" /delete > NUL 2>&1 + IF %ERRORLEVEL% NEQ 0 ( + ECHO. & ECHO. & ECHO Failed to remove user. & ECHO __________________________________________________________ & ECHO. + PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: + ENDLOCAL & GOTO HOME-MAINMENU + ) + +TIMEOUT /T 1 /NOBREAK > NUL 2>&1 + +ECHO. & ECHO. & ECHO User removed successfully. & ECHO __________________________________________________________ & ECHO. +PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: +ENDLOCAL & GOTO HOME-MAINMENU +REM ------------------------NEWUSER-END------------------------ + + REM ---------------- + REM Script Functions + REM ---------------- + + +REM ----------------------------------------------------------- +:AUX-DOWNLOADFAILED + +ECHO. & ECHO. & ECHO Download failed. & ECHO __________________________________________________________ & ECHO. PAUSE > NUL|SET /P =%BS% Press any key to return to the Menu: GOTO HOME-MAINMENU REM ----------------------------------------------------------- @@ -1064,11 +1348,11 @@ REM ----------------------------------------------------------- REM ----------------------------------------------------------- :AUX-CENTERTEXT +SETLOCAL ENABLEDELAYEDEXPANSION SET "cenSize=58" SET "offset= " SET "LEN=0" :CENTERTEXT-LOOP - SETLOCAL ENABLEDELAYEDEXPANSION IF "!!cenStr:~%LEN%!!"=="" ENDLOCAL & GOTO CENTERTEXT-LOOPEND SET /A "LEN=%LEN%+1" FOR %%B IN ('%LEN%') DO ENDLOCAL & SET "LEN=%%B" @@ -1095,7 +1379,7 @@ FOR /F "tokens=2 delims=\" %%B IN ('WMIC computersystem get username') DO SET cu SET "currentUsername=%currentUsername:~0,-3%" REM Detection for if user changed their username without restarting IF "%currentUsername%"=="~0,-3" SET "currentUsername=RestartRequired" - SET "possibleUserDir=%currentUsername:~0,5%" + SET "possibleUserDir=%currentUsername%" EXIT /B 0 REM ----------------------------------------------------------- diff --git a/README.md b/README.md index 85e2b4b..0fbc870 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Script for automating a large assortment of AME related actions. ## Usage -You can download the script by going to the [latest release](https://git.ameliorated.info/Joe/Central-AME-Script/releases/latest) and downloading `CentralAMEScript.zip` from the Downloads section. +You can download the script by going to the [latest release](https://git.ameliorated.info/Joe/Central-AME-Script/releases/latest) and downloading `Central-AME-Script.zip` from the Downloads section. Alternatively, you could clone the repository: @@ -32,9 +32,17 @@ Similarly, the following command is used for changing the password: #### Lockscreen Image -This function allows for changing the lockscreen image. This is a modified version of [LoganDark's lockscreen-img script](https://git.ameliorated.info/LoganDark/lockscreen-img). +This function allows for changing the lockscreen image. -It works by taking ownership of the existing lockscreen image files, and replacing them with the new image supplied by the user. +This is a modified version of [LoganDark's lockscreen-img script](https://git.ameliorated.info/LoganDark/lockscreen-img). + +#### Profile Image + +This function allows for changing the user's profile (PFP) image. + +It works by taking ownership of the existing profile image files, and replacing them with the new image supplied by the user. Several necessary registry changes are made as well. + +This is a modified version of [LoganDark's profile-img script](https://git.ameliorated.info/LoganDark/profile-img). #### User Elevation @@ -92,9 +100,21 @@ Or the following for enabling the requirement: ## Extra Functions -Currently this section only contains legacy functions, these are only useful for versions of AME predating the [REDACTED]. +This section contains small, beta, or legacy functions. Legacy functions are only useful for versions of AME predating the [REDACTED]. + +#### Hibernation + +This function allows for enabling or disabling the hibernation option in Windows. + +At its core, the following commands are used: + + powercfg /HIBERNATE /TYPE FULL + +Or the following for disabling hibernation: + + powercfg /HIBERNATE OFF -#### Windows Script Host +#### Windows Script Host (Legacy) This function allows for enabling or disabling Windows Script Host (WSH). WSH is necessary for some programs. @@ -108,7 +128,7 @@ Or the following for disabling WSH: reg add "HKEY_USERS\\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 0 /f -#### NCSI Active Probing +#### NCSI Active Probing (Legacy) This function allows for enabling or disabling NCSI Active Probing. Some applications require this to be enabled. @@ -120,6 +140,12 @@ Or the following for disabling NCSI Active Probing: reg add "HKLM\SYSTEM\CurrentControlSet\Services\NlaSvc\Parameters\Internet" /v EnableActiveProbing /t REG_DWORD /d 0 /f +#### New User + +This function allows for creating partially functional and pre-configured users in Windows AME. + +To do this, it uses a standard user creation command, followed by many registry edits to make the new user usable. + ## Known Issues Some keyboard languages may not work, and a few are improperly tagged. This will be fixed in a future release. \ No newline at end of file