Created
May 12, 2019 13:04
-
-
Save abroadbent/b000f160839f944bac82ae10254e773f to your computer and use it in GitHub Desktop.
Boxstarter Dev Machine Setup
This file contains 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
# Boxstarter options | |
$Boxstarter.RebootOk=$true # Allow reboots? | |
$Boxstarter.NoPassword=$false # Is this a machine with no login password? | |
$Boxstarter.AutoLogin=$true # Save my password securely and auto-login after a reboot | |
#### WINDOWS SETTTINGS ##### | |
Disable-UAC | |
#--- Configuring Windows properties --- | |
#--- Windows Features --- | |
# Show hidden files, Show protected OS files, Show file extensions | |
Set-WindowsExplorerOptions -EnableShowHiddenFilesFoldersDrives -EnableShowProtectedOSFiles -EnableShowFileExtensions | |
#--- File Explorer Settings --- | |
# will expand explorer to the actual folder you're in | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneExpandToCurrentFolder -Value 1 | |
#adds things back in your left pane like recycle bin | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name NavPaneShowAllFolders -Value 1 | |
#opens PC to This PC, not quick access | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name LaunchTo -Value 1 | |
#taskbar where window is open for multi-monitor | |
Set-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced -Name MMTaskbarMode -Value 2 | |
#--- Enable developer mode on the system --- | |
Set-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion\AppModelUnlock -Name AllowDevelopmentWithoutDevLicense -Value 1 | |
################################# POWER SETTINGS ################################# | |
# Turn off hibernation | |
# powercfg /H OFF | |
# Change Power saving options (ac=plugged in dc=battery) | |
powercfg -change -monitor-timeout-ac 0 | |
powercfg -change -monitor-timeout-dc 15 | |
powercfg -change -standby-timeout-ac 0 | |
powercfg -change -standby-timeout-dc 30 | |
powercfg -change -disk-timeout-ac 0 | |
powercfg -change -disk-timeout-dc 30 | |
powercfg -change -hibernate-timeout-ac 0 | |
## When docked - Make sure that when I close the lid of my laptop it doesn't go to sleep | |
# retrieve the current power mode Guid | |
$guid = (Get-WmiObject -Class win32_powerplan -Namespace root\cimv2\power -Filter "isActive='true'").InstanceID.tostring() | |
$regex = [regex]"{(.*?)}$" | |
$guidVal = $regex.Match($guid).groups[1].value #$regex.Match($guid) | |
# Write-Host $guidVal | |
# Set close the lid power option to 'Do Nothing' for plugged in. | |
powercfg -SETACVALUEINDEX $guidVal 4f971e89-eebd-4455-a8de-9e59040e7347 5ca83367-6e45-459f-a27b-476b1d01c936 0 | |
#To see what other options are available - run the following: | |
# powercfg -Q $guidVal | |
################################# SOFTWARE ####################################### | |
#Browsers | |
choco install googlechrome -y | |
choco install firefox -y | |
# tools we expect devs across many scenarios will want | |
choco install -y vscode | |
choco install -y git --package-parameters="'/GitAndUnixToolsOnPath /WindowsTerminal'" | |
choco install -y python | |
choco install -y 7zip.install | |
choco install -y sysinternals | |
#Other dev tools | |
#choco install visualstudio2019enterprise | |
choco install fiddler4 -y | |
choco install notepadplusplus -y | |
choco install nodejs.install -y | |
choco install sql-server-2017 | |
#Other essential tools | |
choco install windirstat -y | |
choco install slack -y | |
choco install sql-server-management-studio | |
choco install vscode-gitlens | |
choco install lastpass | |
#Not on Choco | |
# * (nothing yet) | |
#--- Uninstall unecessary applications that come with Windows out of the box --- | |
Write-Host "Uninstall some applications that come with Windows out of the box" -ForegroundColor "Yellow" | |
#Referenced to build script | |
# https://docs.microsoft.com/en-us/windows/application-management/remove-provisioned-apps-during-update | |
# https://github.com/jayharris/dotfiles-windows/blob/master/windows.ps1#L157 | |
# https://gist.github.com/jessfraz/7c319b046daa101a4aaef937a20ff41f | |
# https://gist.github.com/alirobe/7f3b34ad89a159e6daa1 | |
# https://github.com/W4RH4WK/Debloat-Windows-10/blob/master/scripts/remove-default-apps.ps1 | |
function removeApp { | |
Param ([string]$appName) | |
Write-Output "Trying to remove $appName" | |
Get-AppxPackage $appName -AllUsers | Remove-AppxPackage | |
Get-AppXProvisionedPackage -Online | Where DisplayNam -like $appName | Remove-AppxProvisionedPackage -Online | |
} | |
$applicationList = @( | |
"Microsoft.BingFinance" | |
"Microsoft.3DBuilder" | |
"Microsoft.BingFinance" | |
"Microsoft.BingNews" | |
"Microsoft.BingSports" | |
"Microsoft.BingWeather" | |
"Microsoft.CommsPhone" | |
"Microsoft.Getstarted" | |
"Microsoft.WindowsMaps" | |
"*MarchofEmpires*" | |
"Microsoft.GetHelp" | |
"Microsoft.Messaging" | |
"*Minecraft*" | |
"Microsoft.MicrosoftOfficeHub" | |
"Microsoft.OneConnect" | |
"Microsoft.WindowsPhone" | |
"Microsoft.WindowsSoundRecorder" | |
"*Solitaire*" | |
"Microsoft.MicrosoftStickyNotes" | |
"Microsoft.Office.Sway" | |
"Microsoft.XboxApp" | |
"Microsoft.XboxIdentityProvider" | |
"Microsoft.ZuneMusic" | |
"Microsoft.ZuneVideo" | |
"Microsoft.NetworkSpeedTest" | |
"Microsoft.FreshPaint" | |
"Microsoft.Print3D" | |
"*Autodesk*" | |
"*BubbleWitch*" | |
"king.com*" | |
"G5*" | |
"*Dell*" | |
"*Facebook*" | |
"*Keeper*" | |
"*Netflix*" | |
"*Twitter*" | |
"*Plex*" | |
"*.Duolingo-LearnLanguagesforFree" | |
"*.EclipseManager" | |
"ActiproSoftwareLLC.562882FEEB491" # Code Writer | |
"*.AdobePhotoshopExpress" | |
); | |
foreach ($app in $applicationList) { | |
removeApp $app | |
} | |
choco install -y Microsoft-Hyper-V-All --source="'windowsFeatures'" | |
Enable-WindowsOptionalFeature -Online -FeatureName containers -All | |
RefreshEnv | |
choco install -y docker-desktop | |
choco install -y vscode-docker | |
choco install -y docker-kitematic | |
cinst IIS-WebServerRole -source windowsfeatures | |
cinst IIS-HttpCompressionDynamic -source windowsfeatures | |
cinst IIS-ManagementScriptingTools -source windowsfeatures | |
cinst IIS-WindowsAuthentication -source windowsfeatures | |
choco install -y Microsoft-Windows-Subsystem-Linux --source="'windowsfeatures'" | |
#--- Ubuntu --- | |
# TODO: Move this to choco install once --root is included in that package | |
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile ~/Ubuntu.appx -UseBasicParsing | |
Add-AppxPackage -Path ~/Ubuntu.appx | |
# run the distro once and have it install locally with root user, unset password | |
RefreshEnv | |
Ubuntu1804 install --root | |
Ubuntu1804 run apt update | |
Ubuntu1804 run apt upgrade -y | |
#Install-ChocolateyPinnedTaskBarItem "$($Boxstarter.programFiles86)\Google\Chrome\Application\chrome.exe" | |
#Install-ChocolateyPinnedTaskBarItem "$($Boxstarter.programFiles86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\devenv.exe" | |
# Update Windows and reboot if necessary | |
Enable-UAC | |
Enable-MicrosoftUpdate | |
Install-WindowsUpdate -AcceptEula -GetUpdatesFromMS | |
if (Test-PendingReboot) { Invoke-Reboot } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment