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:

  1. 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.
  2. 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.