Windows config automation with BoxStarter
Boxstarter is built largely on top of Chocolatey and PowerShell.
One of the most useful Boxstarter commands is Install-BoxstarterPackage, which calls Chocolatey packages directly, similar to the choco install command for the Chocolatey package manager. The difference between these commands is Boxstarter's ability to reboot the machine midprocess if necessary and install packages remotely.
Microsoft Dev box scripts
Located on GitHub at: https://github.com/microsoft/windows-dev-box-setup-scripts
Purpose: to provide a central place to share ideas for streamlining dev box setup and provide sample scripts for common dev scenarios
Boxstarter is a wrapper for Chocolatey and includes features like managing reboots for you. We're using the Boxstarter web launcher to start the installation process:
https://boxstarter.org/Learn/WebLauncher
Project structure
The script code is organized in a hierarchy
Recipes A recipe is the script you run. It calls multiple helper scripts. These currently live in the root of the project (dev_app.ps1, dev_webnodejs.ps1, etc.)
Helper Scripts: A helper script performs setup routines that may be useful by many recipes. Recipes call helper scripts (you don't run helper scripts directly). The helper scripts live in the scripts folder
How to run the scripts
Before you begin, please read the Legal section.
To run a recipe script, click a link in the table below from your target machine. This will download the Boxstarter one-click application, and prompt you for Boxstarter to run with Administrator privileges (which it needs to do its job). Clicking yes in this dialog will cause the recipe to begin. You can then leave the job unattended and come back when it's finished.
Click link to run | Description |
---|---|
Full Desktop App | Windows Desktop App Development (Visual Studio, Windows SDK, C++, UWP, .NET (WPF and Winforms)) |
UWP Desktop App | Windows Desktop App Development (Visual Studio, Windows SDK, UWP) |
.NET Desktop App | Windows Desktop App Development (Visual Studio, Windows SDK, .NET (WPF and Winforms)) |
C++ Desktop App | Windows Desktop App Development (Visual Studio, Windows SDK, C++) |
Web | Web (VS Code, WSL, Multiple Browsers) |
Web NodeJS | Web Dev with NodeJS (Web + NodeJS LTS)¹ |
Machine Learning Windows | Machine Learning with only Windows native tools |
Machine Learning Linux | Machine Learning with Linux tools running on WSL |
DevOps Azure | Client setup for DevOps with Azure |
Xamarin (Visual Studio, Xamarin, Android SDK) | |
Containers (Docker, Kubernetes, etc...) | |
Submit a PR with a recommended configuration! |
Notes:
- If you are using WSL there's a followup step we recommend after running the setup script. When the script finishes you will only have a root user with a blank password. You should manually create a non-root user via
$ sudo adduser [USERNAME] sudo
with a non-blank password. Use this user going forward. For more info on WSL please refer to the documentation. - If you're a Node.js contributor working on Node.js core, please see the Node.js Bootstrapping Guide or click here to run.
Known issues
- The Boxstarter ClickOnce installer does not work when using Chrome. This issue is being tracked here. Please use Edge to run the ClickOnce installer.
- Reboot is not always logging you back in to resume the script. This is being tracked here. The workaround is to login manually and the script will continue running.