@echo off rem =================== rem GLOBAL VARS rem =================== set TOOLS=c:\tools set SCRIPT_SETTINGS=%TOOLS%\scripts\settings.cmd set COMPANY_SETTINGS=%TOOLS%\company\settings.cmd set USERCONFIG_DONE=%LOCALAPPDATA%\.userconfig_done set EMLICENSE_DONE=%LOCALAPPDATA%\.emlicense_done set STARTMENU=%APPDATA%\"Microsoft\Windows\Start Menu\Programs" set STARTMENU_PUBLIC=%PROGRAMDATA%\"Microsoft\Windows\Start Menu\Programs" rem =================== rem DEFAULTS rem =================== set bgcol_R=0 set bgcol_G=0 set bgcol_B=0 set LANG=en-US set support_user= set support_password= set emclient_license=0 echo ####### %0 ####### rem =================== rem CONFIGFILE CHECKS rem =================== echo searching for SCRIPT settings ... if NOT EXIST %SCRIPT_SETTINGS% ( echo INFO: config file %COMPANY_SETTINGS% NOT FOUND ) else ( echo OK. Loading SCRIPT settings ... call %SCRIPT_SETTINGS% echo LANG=%LANG% ) echo searching for COMPANY settings ... if NOT EXIST %COMPANY_SETTINGS% ( echo INFO: config file %COMPANY_SETTINGS% NOT FOUND ) else ( echo OK. Loading COMPANY settings ... call %COMPANY_SETTINGS% ) rem =================== rem EMCLIENT LICENSING rem =================== rem licensing for emClient already done ? if EXIST %EMLICENSE_DONE% GOTO EMCLIENT_END if %emclient_license% == 0 ( echo no em Client license found! ) else ( echo. if EXIST "%ProgramFiles(x86)%\eM Client\MailClient.exe" ( echo adding em Client license ... "%ProgramFiles(x86)%\eM Client\MailClient.exe" /activate %emclient_license% rem create a statusfile (this codeblock must be executed only once per use) ... echo 1 >%EMLICENSE_DONE% ) else ( echo em Client is NOT installed! ) echo. ) :EMCLIENT_END rem ================================================ rem GENERIC SETTINGS FOR THE USER (this runs always) rem ================================================ echo removing wallpaper ... reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v WallPaper /t REG_SZ /d " " /f 1>nul RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters echo setting desktop colour (RGB) ... %TOOLS%\setbgcol %bgcol_R% %bgcol_G% %bgcol_B% echo starting BGInfo ... %TOOLS%\bginfo\bginfo64.exe %TOOLS%\bginfo\config.bgi /NOLICPROMPT /silent /timer:0 echo setting RECYCLE BIN limits ... powershell -command %TOOLS%\scripts\set-recyclebin.ps1 echo remapping Desktop folder to standard location ... reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" ^ /v Desktop /t REG_EXPAND_SZ /d "%%USERPROFILE%%\Desktop" /f 1>nul rem ================================================ rem USER TWEAKS AND CONFIG FILES (this runs always) rem ================================================ rem User tweaks already done ? if EXIST %USERCONFIG_DONE% GOTO USERTWEAKS_DONE rem WORKSPACE folder echo creating folder %USERPROFILE%\workspace ... mkdir %USERPROFILE%\workspace 1>nul 2>nul rem SSH echo setting up ssh client ... mkdir %USERPROFILE%\.ssh 1>nul 2>nul copy /Y %TOOLS%\scripts\config\ssh-config.txt %USERPROFILE%\.ssh\config rem VIM echo copying vimrc ... copy /Y %TOOLS%\scripts\config\vimrc.txt %USERPROFILE%\.vimrc rem WINDOWS TERMINAL echo seting up WINDOWS TERMINAL ... set LOCALSTATE=%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState mkdir %LOCALSTATE% 1>nul 2>nul copy /Y %TOOLS%\scripts\config\wt-settings.json %LOCALSTATE%\settings.json rem TOTALCOMMANDER mkdir %APPDATA%\GHISLER 1>nul 2>nul echo copying ini file for TOTALCOMMANDER ... copy /Y %TOOLS%\optional\config\WINCMD.ini %APPDATA%\GHISLER echo copying TOTALCOMMANDER ftp config file ... copy /Y %TOOLS%\optional\config\wcx_ftp.ini %APPDATA%\GHISLER rem fix for broken SEAFILE folder access rights ... if EXIST %USERPROFILE%\Seafile ( echo removing SEAFILE system attributes ... attrib -S %USERPROFILE%\Seafile /S /D ) echo Adding "This PC" icon for current user on desktop Windows 10 ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" ^ /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d 0 /f 1>nul reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" ^ /v "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" /t REG_DWORD /d 0 /f 1>nul echo Refreshing desktop (W10 style) ie4uinit.exe -show echo Adding seconds to clock ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ^ /v "ShowSecondsInSystemClock" /t REG_DWORD /d 1 /f 1>nul echo setting GLOBAL view mode for windows EXPLORER ... powershell -command %TOOLS%\scripts\set-explorer-viewmode.ps1 echo Enabling the show file extensions feature in explorer ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ^ /v "HideFileExt" /t REG_DWORD /d 0 /f 1>nul echo Do not add "-Shortcut" text to the name of newly created shortcuts ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer" ^ /v "link" /t REG_BINARY /d "00000000" /f 1>nul echo Disabling search box on taskbar ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search" ^ /v "SearchboxTaskbarMode" /t REG_DWORD /d 0 /f 1>nul echo Disabling multi tasking view button on the taskbar ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ^ /v "ShowTaskViewButton" /t REG_DWORD /d 0 /f 1>nul echo Disabling cortana button on the taskbar ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ^ /v "ShowCortanaButton" /t REG_DWORD /d 0 /f 1>nul echo Loading OpenShell config ... rem config must be full qualified pathname (OpenShell BUG!) set CONFIG=%TOOLS%\scripts\config\OpenshellSettings.xml "%ProgramFiles%"\Open-Shell\StartMenu.exe -xml %CONFIG% echo Removing user folders from explorer navigation pane ... for %%K in ( {0DB7E03F-FC29-4DC6-9020-FF41B59E513A} {B4BFCC3A-DB2C-424C-B029-7FE99A87C641} {D3162B92-9365-467A-956B-92703ACA08AF} {088E3905-0323-4B02-9826-5D99428E115F} {3DFDF296-DBEC-4FB4-81D1-6A3438BCF4DE} {24AD3AD4-A569-4530-98E1-AB02F9417AA8} {F86FA3AB-70D2-4FC7-9C99-FCBF05467F3A} ) do ( echo %%K reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons" ^ /v "%%K" /t REG_DWORD /d 1 /f 1>nul ) echo Adding home folder to explorer navigation pane ... reg add "HKEY_CURRENT_USER\Software\Classes\CLSID\{59031a47-3f72-44a7-89c5-5595fe6b30ee}" ^ /v "System.IsPinnedToNameSpaceTree" /t REG_DWORD /d 1 /f 1>nul echo Make explorer show ThisPC on top ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" ^ /v "LaunchTo" /t REG_DWORD /d 1 /f 1>nul echo Cleaning up recent files and libraries ... del /F /Q %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations\* 2>nul del /F /Q %APPDATA%\Microsoft\Windows\Recent\* 2>nul del /F /Q %APPDATA%\Microsoft\Windows\Libraries\* 2>nul echo Disabling frequent and recent files in explorer ... reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer" ^ /v "ShowRecent" /t REG_DWORD /d 0 /f 1>nul reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer" ^ /v "ShowFrequent" /t REG_DWORD /d 0 /f 1>nul echo disabling unwanted NETWORK features ... powershell -command %TOOLS%\scripts\disable-networkfeatures.ps1 rem try to cleanup the tiles in the start menu (only for admins) call %TOOLS%\scripts\cleanup-tiles.cmd rem create a statusfile (this codeblock must be executed only once per user) ... echo 1 >%USERCONFIG_DONE% :USERTWEAKS_DONE rem ======================================== rem ACCOUNT CLEANUP AND FIXES (runs always) rem ======================================== echo. echo ##### echo ##### CLEANING ... echo ##### echo. echo Reorganizing start menu and desktop ... echo ######################################## echo. rem ... stupid OS problem #4 rem why the heck are "System Tools" installed per user ? stupid Microsoft. echo Moving system tools links ... move /Y %STARTMENU%\"System Tools\*.*" ^ %STARTMENU_PUBLIC%\"System Tools" 2>nul rem Removing and renaming some start menu stuff ... move /Y %STARTMENU_PUBLIC%\"System Tools\computer.lnk" ^ %STARTMENU_PUBLIC%\"System Tools\This PC.lnk" 2>nul del /F %STARTMENU_PUBLIC%\"System Tools\Command Prompt.lnk" 2>nul rem ... stupid OS problem #5 rem same here for the accessibility tools. WHY ? stupid Microsoft. echo Moving accessibility tools ... move /Y %STARTMENU%\"Accessibility\*.*" ^ %STARTMENU_PUBLIC%\"Accessibility" 2>nul rem ... stupid OS problem #6 rem Edge is such a zombie! echo Removing microsoft edge links in start menu... del /F %STARTMENU%\"Microsoft Edge.lnk" 2>nul del /F %USERPROFILE%\"Desktop\Microsoft Edge.lnk" 2>nul rem ... stupid OS problem #7 rem Rewards ? Really ? Seriously ? echo Disabling nag screen in windows settings ... %TOOLS%\vivetool delconfig 18299130 1 rem IE too! echo Removing IE links in start menu, sigh ... del /F %STARTMENU%\"Accessories\Internet Explorer.lnk" 2>nul rem finally remove some useless directories in the users start menu ... echo Removing more startmenu crap ... rd /S /Q %STARTMENU%\"Accessories" 2>nul rd /S /Q %STARTMENU%\"Accessibility" 2>nul rd /S /Q %STARTMENU%\"Administrative Tools" 2>nul rd /S /Q %STARTMENU%\"Maintenance" 2>nul rd /S /Q %STARTMENU%\"System Tools" 2>nul rd /S /Q %STARTMENU%\"Windows Powershell" 2>nul echo. rem WARNING! rem DO NOT remove the "PICTURES" folder! rem this is used and needed by the snipping tool! echo Cleaning users home directory ... echo ######################################## echo. echo 3D Objects ... rd /S /Q %USERPROFILE%\"3D Objects" 2>nul echo Links ... rd /S /Q %USERPROFILE%\"Links" 2>nul echo Saved Games (folder used by Microsoft only) ... rd /S /Q %USERPROFILE%\"Saved Games" 2>nul echo Searches ... rd /S /Q %USERPROFILE%\"Searches" 2>nul for %%D in ( Contacts Documents Favorites Music Searches Videos ) do ( echo %%D ... attrib -R -S -H %USERPROFILE%\%%D 1>nul 2>nul attrib -R -S -H %USERPROFILE%\%%D\desktop.ini 1>nul 2>nul del /F /Q %USERPROFILE%\%%D\desktop.ini 2>nul rmdir /Q %USERPROFILE%\%%D 2>nul ) echo creating Pictures folder for Snipping Tool ... mkdir %USERPROFILE%\Pictures 2>nul echo. echo Starting workstation service ... net start workstation 1>nul 2>nul net config workstation echo ####### %0 ####### if %ERRORLEVEL% NEQ 0 ( echo # unknown ERROR! # echo ####### %0 ####### echo. pause )