@echo off SETLOCAL EnableExtensions EnableDelayedExpansion :: Define Steam folder path SET "STEAM_FOLDER=C:\Program Files (x86)\Steam" :: Check if Steam is installed IF NOT EXIST "%STEAM_FOLDER%\Steam.exe" ( echo Steam is not installed. Downloading and installing Steam... :: Define download URL SET "STEAM_INSTALLER_URL=https://steamcdn-a.akamaihd.net/client/installer/SteamSetup.exe" :: Download Steam installer echo Downloading Steam installer... powershell -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $url='%STEAM_INSTALLER_URL%'; $path='%TEMP%\SteamSetup.exe'; Invoke-WebRequest $url -OutFile $path; Start-Process -FilePath $path -ArgumentList '/S' -Wait" :: Check if Steam was installed IF NOT EXIST "%STEAM_FOLDER%\Steam.exe" ( echo Steam installation failed. Please install Steam manually. pause exit /b 1 ) ) echo Steam installed successfully! :: Define script names and paths SET "SCRIPT_NAME=DelayedExplorerStart.bat" SET "SCRIPT_PATH=%STEAM_FOLDER%\%SCRIPT_NAME%" SET "EXPLORER_PATH=C:\Windows\explorer.exe" :: Create the DelayedExplorerStart.bat script in the Steam folder echo Creating DelayedExplorerStart.bat script ( echo @echo off echo ^:: Check if user is logged on echo query user ^| find /i "%USERNAME%" ^>nul echo if ERRORLEVEL 1 exit echo ^:: Set Shell back to Explorer echo REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%EXPLORER_PATH%" /f echo timeout /t 20 /nobreak ^>nul echo start C:\Windows\explorer.exe echo timeout /t 10 /nobreak ^>nul echo REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%STEAM_PATH%" /f ) > "%SCRIPT_PATH%" :: Create VBScript to run the batch file silently echo Creating RunBatchSilently.vbs script SET "VBS_NAME=RunBatchSilently.vbs" SET "VBS_PATH=%STEAM_FOLDER%\%VBS_NAME%" ( echo Set WshShell = CreateObject("WScript.Shell") echo WshShell.Run chr(34^) ^& "%SCRIPT_PATH%" ^& chr(34^), 0, True echo Set WshShell = Nothing ) > "%VBS_PATH%" :: Create XML file for the scheduled task SET "XML_PATH=%STEAM_FOLDER%\DelayedExplorerStartTask.xml" echo Creating DelayedExplorerStartTask.xml ( echo ^ echo ^ echo ^ echo ^2020-01-01T00:00:00^ echo ^%USERNAME%^ echo ^Run DelayedExplorerStart.bat at logon.^ echo ^ echo ^ echo ^ echo ^true^ echo ^ echo ^ echo ^ echo ^ echo ^%USERNAME%^ echo ^InteractiveToken^ echo ^HighestAvailable^ echo ^ echo ^ echo ^ echo ^IgnoreNew^ echo ^false^ echo ^false^ echo ^true^ echo ^true^ echo ^false^ echo ^ echo ^true^ echo ^false^ echo ^ echo ^true^ echo ^false^ echo ^false^ echo ^PT72H^ echo ^7^ echo ^ echo ^ echo ^ echo ^wscript.exe^ echo ^"%VBS_PATH%"^ echo ^ echo ^ echo ^ ) > "%XML_PATH%" :: Delete the existing scheduled task if it exists echo Deleting existing scheduled task if it exists schtasks /delete /tn "RunDelayedExplorerStart" /f :: Create the scheduled task using the XML file echo Creating the scheduled task using the XML file schtasks /create /tn "RunDelayedExplorerStart" /xml "%XML_PATH%" :: Additional configurations and optimizations echo Registry modifications and other optimizations... :: Enable automatic logon reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "%USERNAME%" /f reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "" /f :: Disable the boot UI bcdedit.exe -set {globalsettings} bootuxdisabled on :: Disable Logon UI reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DisableLogonUI /t REG_DWORD /d 1 /f :: Disable Visual Effects reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v VisualEffects /t REG_DWORD /d 3 /f :: Increase File System Performance reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v NtfsDisableLastAccessUpdate /t REG_DWORD /d 1 /f :: Disable Fast Startup to ensure changes take effect powercfg -h off :: Disable the lock screen (effective for Enterprise/Education) reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization" /v NoLockScreen /t REG_DWORD /d 1 /f :: Set the logon background to black by setting a custom background reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\System" /v DisableLogonBackgroundImage /t REG_DWORD /d 1 /f :: Create the backgrounds folder if it doesn't exist if not exist "C:\Windows\System32\oobe\info\backgrounds" ( mkdir "C:\Windows\System32\oobe\info\backgrounds" ) :: Generate a black image using PowerShell powershell -command "Add-Type -AssemblyName System.Drawing; $width = 1920; $height = 1080; $bitmap = New-Object System.Drawing.Bitmap $width, $height; $graphics = [System.Drawing.Graphics]::FromImage($bitmap); $black = [System.Drawing.Brushes]::Black; $graphics.FillRectangle($black, 0, 0, $width, $height); $bitmap.Save('C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg', [System.Drawing.Imaging.ImageFormat]::Jpeg); $graphics.Dispose(); $bitmap.Dispose();" :: Set the custom black background image for the lock screen reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization" /v LockScreenImage /t REG_SZ /d "C:\Windows\System32\oobe\info\backgrounds\backgroundDefault.jpg" /f :: Do not display last signed-in user name reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DontDisplayLastUserName /t REG_DWORD /d 1 /f :: Do not display the username and other information during sign-in reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DontDisplayLockedUserId /t REG_DWORD /d 3 /f :: Disable Windows animations during sign-in reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableStatusMessages /t REG_DWORD /d 1 /f :: Disable verbose status messages reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v VerboseStatus /t REG_DWORD /d 0 /f :: Disable the Welcome screen and reduce animation delay reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DelayedDesktopSwitchTimeout /t REG_DWORD /d 0 /f :: Disable lock screen transitions reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\System" /v DisableLockScreenAppNotifications /t REG_DWORD /d 1 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\System" /v DisableLogonUIAnimations /t REG_DWORD /d 1 /f :: Disable Startup Delay reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Serialize" /f reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Serialize" /v StartupDelayInMSec /t REG_DWORD /d 0 /f :: Improve Windows Explorer Process Priority reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\explorer.exe\PerfOptions" /v CpuPriorityClass /t REG_DWORD /d 3 /f :: Adjust Large System Cache reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v LargeSystemCache /t REG_DWORD /d 1 /f :: Enable No GUI Boot bcdedit /set {current} quietboot on echo Registry modifications are complete. echo Steam Big Picture set as default shell. echo Automatic logon enabled. echo Boot UI disabled. pause