@echo off SETLOCAL EnableExtensions echo Setting Steam Big Picture as default shell echo Set Steam Big Picture as the default shell SET "KEY_NAME=HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" SET "VALUE_NAME=Shell" SET "STEAM_PATH=C:\Program Files (x86)\Steam\Steam.exe -bigpicture -nobootstrapupdate -skipinitialbootstrap -skipverifyfiles" REG ADD "%KEY_NAME%" /v %VALUE_NAME% /t REG_SZ /d "%STEAM_PATH%" /f @echo off SETLOCAL EnableExtensions EnableDelayedExpansion echo Define the default Steam folder path and script names SET "STEAM_FOLDER=C:\Program Files (x86)\Steam" SET "SCRIPT_NAME=DelayedExplorerStart.bat" SET "SCRIPT_PATH=%STEAM_FOLDER%\%SCRIPT_NAME%" SET "EXPLORER_PATH=C:\Windows\explorer.exe" SET "MANIFEST_PATH=%STEAM_PATH%.manifest" :: Create the manifest file to force admin privileges for Steam echo Creating manifest file for Steam to run as admin... ( echo ^ echo ^ echo ^ echo ^ echo ^ echo ^ echo ^ echo ^ echo ^ echo ^ ) > "%MANIFEST_PATH%" echo Creating DelayedExplorerStart.bat script echo Create the DelayedExplorerStart.bat script in the Steam folder ( echo @echo off echo rem Check if user is logged on echo whoami ^| find /i "%%USERNAME%%" ^>nul echo if ERRORLEVEL 1 exit echo rem Set Shell back to Explorer echo REG ADD "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%%EXPLORER_PATH%%" /f echo timeout /t 20 /nobreak ^>nul echo rem Launch Explorer minimized without stealing focus by using a temporary VBScript echo set "TempVBS=%%TEMP%%\LaunchExplorerMinimized.vbs" echo (echo Set WshShell = CreateObject("WScript.Shell"))>"%%TempVBS%%" echo (echo ' 7 = Minimized ^& no focus) >>"%%TempVBS%%" echo (echo WshShell.Run "explorer.exe", 7, False)>>"%%TempVBS%%" echo (echo Set WshShell = Nothing)>>"%%TempVBS%%" echo cscript //nologo "%%TempVBS%%" echo del "%%TempVBS%%" echo timeout /t 10 /nobreak ^>nul echo REG ADD "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "%%STEAM_PATH%%" /f ) > "%SCRIPT_PATH%" echo %VBS_PATH% echo Creating RunBatchSilently.vbs script :: Create VBScript to run the batch file silently @echo off SET "VBS_NAME=RunBatchSilently.vbs" SET "VBS_PATH=%STEAM_FOLDER%\%VBS_NAME%" echo Set WshShell = CreateObject("WScript.Shell") > "%VBS_PATH%" echo WshShell.Run chr(34)^&"%SCRIPT_PATH%"^&chr(34), 0, True >> "%VBS_PATH%" echo Set WshShell = Nothing >> "%VBS_PATH%" echo Create XML file for the scheduled task SET XML_PATH=%STEAM_FOLDER%\DelayedExplorerStartTask.xml echo Delete the existing XML file if it exists IF EXIST "%XML_PATH%" DEL "%XML_PATH%" ( 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%" echo Delete the existing scheduled task if it exists schtasks /delete /tn "RunDelayedExplorerStart" /f echo Create the scheduled task using the XML file schtasks /create /tn "RunDelayedExplorerStart" /xml "%XML_PATH%" /ru "%USERNAME%" echo Delayed Explorer start script and VBScript created in Steam folder. echo Scheduled Task added to run the script at logon. echo XML file for Scheduled Task created. echo Disable the boot UI bcdedit.exe -set {globalsettings} bootuxdisabled on echo Disable Logon UI reg add "HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DisableLogonUI /t REG_DWORD /d 1 /f echo Disable Visual Effects reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v VisualEffects /t REG_DWORD /d 3 /f echo Increase File System Performance reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" /v NtfsDisableLastAccessUpdate /t REG_DWORD /d 1 /f echo Optimize Paging File Performance reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 1 /f echo 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 echo 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 echo Adjust Large System Cache reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v LargeSystemCache /t REG_DWORD /d 1 /f echo Enabling 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