22
Automating Windows Setup via Chocolatey
When you're a software professional, 1 thing you must've dreaded is setting up a new Windows machine (as in a development environment). This might be as the setup either needs downloading multiple .MSI / .EXE files of the required applications or using the Microsoft App Store to install (personally I believe it's a little off the mark compared to the Linux/MacOS).
It's also compounded by the fact Windows systems are regarded relatively volatile so we never re-touch/re-configure applications once installed. You also must've surely wondered why Windows trails Linux/Mac OS when it comes to Command Line. Agreed, PowerShell changes most of that but learning a new syntax can be a little harrowing.
What if I told you this could be solved permanently via CLI? Enter Chocolatey to the rescue.
Chocolatey is a package manager specifically designed to solve these very problems for Windows OS. Consider it equivalent to apt
, dnf
or brew
that'll ease work considerably, so much that you might never go back to tedious manual methods again.
- Understanding how Powershell policies work such as
Set-ExecutionPolicy
, here is an excellent page to get you started. - From the Chocolatey official page
- Windows 7+ / Windows Server 2003+
- PowerShell v2+ (Not PowerShell Core, minimum is v3)
- .NET Framework 4+ (installation attempts to install .NET 4.0 if absent, minimum is v4.5 due to TLS v1.2)
- Excitement to learn something new and preferably a cup of tea/coffee.
- Once the install completes, you should be able to execute
choco --version
.
And that's all when you prefer the vanilla install but if you like to dive deeper, you'll quickly realize a few concerns.
- How can we install specific versions of software as needed?
- What if we wanted to install multiple applications in 1 go, uninterrupted?
- Can we rollout to multiple machines? (Note: some features for this point may need Chocolatey enterprise, please read the documentation as per your use-cases)
Lets answer the 1st two questions.
Number 1 is pretty simple, you just execute choco install vlc={version}
and relax. Number 2 can be a little bit tricky but a handy way is to use the Packages.config which is an XML file containing the list of applications we want to install.
Now the command becomes choco install {path-to-file.config} --yes
On a fresh Windows 10 machine before this, it took me 2-3 hours to download & install the exes with atleast 70+ clicks (mostly clicking Next on GUI installers😛)
Now it took me ~35 minutes, which could be even lesser once we've the .config
files ready as mentioned above.
Hope this guide helps you save time/effort similarly.
What are the ways you use to setup Windows environments?
22