-
-
Save approximate/975148db514e232025a919455e88e8dc to your computer and use it in GitHub Desktop.
Boxstarter Commands for a new Windows box.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Description: Boxstarter Script | |
# | |
# Forked from the original script by Jesse Frazelle | |
# https://gist.github.com/jessfraz/7c319b046daa101a4aaef937a20ff41f | |
# | |
# Last Updated: 2018-04-09 | |
# | |
# Install boxstarter: | |
# . { iwr -useb http://boxstarter.org/bootstrapper.ps1 } | iex; get-boxstarter -Force | |
# | |
# You might need to set: Set-ExecutionPolicy RemoteSigned | |
# | |
# Run this boxstarter by calling the following from an **elevated** command-prompt: | |
# start http://boxstarter.org/package/nr/url?<URL-TO-RAW-GIST> | |
# OR | |
# Install-BoxstarterPackage -PackageName <URL-TO-RAW-GIST> -DisableReboots | |
# | |
# Learn more: http://boxstarter.org/Learn/WebLauncher | |
#---- TEMPORARY --- | |
Disable-UAC | |
#--- Fonts --- | |
choco install inconsolata envycoder hackfont anonymouspro -y | |
#--- Windows Settings --- | |
Disable-BingSearch | |
Disable-GameBarTips | |
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions | |
Set-TaskbarOptions -Size Small -Dock Bottom -Combine Full -Lock | |
Set-TaskbarOptions -Size Small -Dock Bottom -Combine Full -AlwaysShowIconsOn | |
#--- Windows Subsystems/Features --- | |
#choco install Microsoft-Hyper-V-All -source windowsFeatures | |
#choco install Microsoft-Windows-Subsystem-Linux -source windowsfeatures | |
# Don't forget to install Bash on Ubuntu from the MS Store | |
# This is the closest to Linux experience you can get | |
#--- Tools --- | |
# choco install git -params '"/GitAndUnixToolsOnPath /WindowsTerminal"' -y | |
# choco install poshgit | |
# Install system tools | |
choco install -y sysinternals chocolateygui crystaldiskinfo.install ccleaner ccenhancer hwinfo.install | |
choco install -y evince windirstat irfanview irfanviewplugins | |
# Install better CLI tools | |
choco install -y cmder | |
# Install VM-related tools | |
# choco install -y virtualbox # Not needed when using Docker-for-Windows | |
choco install -y vagrant | |
choco install -y docker-for-windows | |
# Install development tools | |
choco install -y dbeaver pycharm-community | |
choco install -y miniconda3 -params '"/AddToPath:1"' | |
#--- Install Other Apps --- | |
# choco install chromium | |
# choco install vim | |
# choso install FAR | |
#--- Uninstall unecessary applications that come with Windows out of the box --- | |
# First, find all installed packages by executing this: | |
# Get-AppxPackage | Select Name | Sort Name | |
# Find the ones you don't need, put them in the list below | |
$AppsList = "Microsoft.3DBuilder", | |
"Microsoft.WindowsAlarms", | |
"Microsoft.BingFinance", | |
"Microsoft.BingNews", | |
"Microsoft.BingSports", | |
"Microsoft.BingWeathe", | |
"Microsoft.CommsPhone", | |
"Microsoft.WindowsFeedbackHub", | |
"Microsoft.Getstarted", | |
"microsoft.windowscommunicationsapps", | |
"Microsoft.WindowsMaps", | |
"Microsoft.Messaging", | |
"Microsoft.MicrosoftOfficeHub", | |
"Microsoft.OneConnect", | |
"Microsoft.Office.OneNote", | |
"Microsoft.People", | |
"Microsoft.WindowsPhone", | |
"Microsoft.Windows.Photos", | |
"Microsoft.SkypeApp", | |
"Microsoft.WindowsSoundRecorder", | |
"Microsoft.MicrosoftSolitaireCollection", | |
"Microsoft.MicrosoftStickyNotes", | |
"Microsoft.Office.Sway", | |
"Microsoft.XboxApp", | |
"Microsoft.XboxIdentityProvider", | |
"Microsoft.ZuneMusic", | |
"Microsoft.ZuneVideo" | |
# Now, remove all those apps | |
ForEach ($App in $AppsList) | |
{ | |
$Packages = Get-AppxPackage | Where-Object {$_.Name -eq $App} | |
if ($Packages -ne $null) | |
{ | |
"Removing Appx Package: $App" | |
foreach ($Package in $Packages) { Remove-AppxPackage -package $Package.PackageFullName } | |
} | |
else { "Unable to find package for app $App" } | |
$ProvisionedPackage = Get-AppxProvisionedPackage -online | Where-Object {$_.displayName -eq $App} | |
if ($ProvisionedPackage -ne $null) | |
{ | |
"Removing Appx Provisioned Package: $App" | |
remove-AppxProvisionedPackage -online -packagename $ProvisionedPackage.PackageName | |
} | |
else { "Unable to find provisioned package for app $App" } | |
} | |
#--- Windows Settings --- | |
# Some from: @NickCraver's gist https://gist.github.com/NickCraver/7ebf9efbfd0c3eab72e9 | |
# Privacy: Let apps use my advertising ID: Disable | |
If (-Not (Test-Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo")) { | |
New-Item -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo | Out-Null | |
} | |
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\AdvertisingInfo -Name Enabled -Type DWord -Value 0 | |
# WiFi Sense: HotSpot Sharing: Disable | |
If (-Not (Test-Path "HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting")) { | |
New-Item -Path HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting | Out-Null | |
} | |
Set-ItemProperty -Path HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowWiFiHotSpotReporting -Name value -Type DWord -Value 0 | |
# WiFi Sense: Shared HotSpot Auto-Connect: Disable | |
Set-ItemProperty -Path HKLM:\Software\Microsoft\PolicyManager\default\WiFi\AllowAutoConnectToWiFiSenseHotspots -Name value -Type DWord -Value 0 | |
# Start Menu: Disable Bing Search Results | |
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name BingSearchEnabled -Type DWord -Value 0 | |
# To Restore (Enabled): | |
# Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Search -Name BingSearchEnabled -Type DWord -Value 1 | |
# Disable Telemetry (requires a reboot to take effect) | |
# Note this may break Insider builds for your organization | |
# Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DataCollection -Name AllowTelemetry -Type DWord -Value 0 | |
# Get-Service DiagTrack,Dmwappushservice | Stop-Service | Set-Service -StartupType Disabled | |
# Change Explorer home screen back to "This PC" | |
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name LaunchTo -Type DWord -Value 1 | |
# Change it back to "Quick Access" (Windows 10 default) | |
# Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name LaunchTo -Type DWord -Value 2 | |
# Better File Explorer | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneExpandToCurrentFolder -Value 1 | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneShowAllFolders -Value 1 | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name MMTaskbarMode -Value 2 | |
# These make "Quick Access" behave much closer to the old "Favorites" | |
# Disable Quick Access: Recent Files | |
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowRecent -Type DWord -Value 0 | |
# Disable Quick Access: Frequent Folders | |
Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowFrequent -Type DWord -Value 0 | |
# To Restore: | |
# Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowRecent -Type DWord -Value 1 | |
# Set-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer -Name ShowFrequent -Type DWord -Value 1 | |
# Disable the Lock Screen (the one before password prompt - to prevent dropping the first character) | |
If (-Not (Test-Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization)) { | |
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows -Name Personalization | Out-Null | |
} | |
Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization -Name NoLockScreen -Type DWord -Value 1 | |
# To Restore: | |
# Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Personalization -Name NoLockScreen -Type DWord -Value 1 | |
# Lock screen (not sleep) on lid close | |
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' -Name AwayModeEnabled -Type DWord -Value 1 | |
# To Restore: | |
# Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' -Name AwayModeEnabled -Type DWord -Value 0 | |
# Use the Windows 7-8.1 Style Volume Mixer | |
If (-Not (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC")) { | |
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name MTCUVC | Out-Null | |
} | |
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC" -Name EnableMtcUvc -Type DWord -Value 0 | |
# To Restore (Windows 10 Style Volume Control): | |
# Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\MTCUVC" -Name EnableMtcUvc -Type DWord -Value 1 | |
# Disable Xbox Gamebar | |
Set-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\GameDVR" -Name AppCaptureEnabled -Type DWord -Value 0 | |
Set-ItemProperty -Path "HKCU:\System\GameConfigStore" -Name GameDVR_Enabled -Type DWord -Value 0 | |
# Turn off People in Taskbar | |
If (-Not (Test-Path "HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People")) { | |
New-Item -Path HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People | Out-Null | |
} | |
Set-ItemProperty -Path "HKCU:SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People" -Name PeopleBand -Type DWord -Value 0 | |
#--- Patch CapsLock to be Control | |
$hexified = "00,00,00,00,00,00,00,00,02,00,00,00,1d,00,3a,00,00,00,00,00".Split(',') | % { "0x$_"} | |
$kbLayout = 'HKLM:\System\CurrentControlSet\Control\Keyboard Layout' | |
New-ItemProperty -Path $kbLayout -Name "Scancode Map" -PropertyType Binary -Value ([byte[]]$hexified) | |
#--- Restore Temporary Settings --- | |
Enable-UAC | |
Enable-MicrosoftUpdate | |
# Install-WindowsUpdate -acceptEula | |
#--- Install help files for PS commads --- | |
Update-Help |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment