Modern Windows systems offer several ways to install applications—primarily via the graphical Microsoft Store or winget
, the Windows Package Manager CLI. For regular updates and one-off installations, these interfaces are typically sufficient.
But what about clean installs? Or setting up multiple machines with a consistent baseline of essential apps?
That’s exactly where Chocolatey comes in.
The following minimal PowerShell script isn’t a provisioning framework. Instead, it’s a practical helper for:
- Bootstrapping a fresh Windows installation quickly
- Maintaining consistency across multiple devices
- Avoiding “Did I forget anything?” moments
- Saving time on repetitive GUI-based installs
Use Case: Initial & Repeatable Setup
This script is best suited for:
- Fresh installations (e.g., after resetting Windows or replacing hardware)
- Re-deploying lab or test machines
- Helping tech-savvy friends or family with setup
- Developers moving to a new laptop or VM
Its purpose is speed and consistency—install 90% of your stack in minutes, not hours.
Note: This script is not a GUI replacement. It’s a helper to get you to that point faster.
Structure and Simplicity
The script relies on simple, readable Install-App
calls:
## Install choco .exe and add choco to PATH
[System.Net.ServicePointManager]::SecurityProtocol = 3072
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
choco feature enable -n allowGlobalConfirmation
# Chocolatey GUI
choco install chocolateygui -y
## Browsers
choco install brave -y
# choco install googlechrome -y
# choco install firefox -y
# choco install chromium -y
# choco install opera -y
## Dev tools
# choco install cygwin -y
choco install wireshark -y
choco install git.install -y
#choco install sourcetree -y
#choco install postman -y
#choco install docker-compose -y
choco install mqtt-explorer -y
choco install openssl -y
## Server tools
choco install putty.install -y
choco install winscp.install -y
choco install nmap -y
choco install heidisql -y
# choco install filezilla -y
## Environments
choco install jre8 -y
choco install powershell -y
choco install vcredist140 -y
#choco install dotnet3.5 -y
#choco install docker-desktop -y
#choco install slack -y
#choco install gitkraken -y
choco install postman -y
choco install powershell-core -y
#choco install terraform -y
#choco install awscli -y
#choco install kubernetes-cli -y
choco install azure-cli -y
## System management tools
choco install procmon -y
choco install opensslprocexp -y
choco install processhacker.install -y
#choco install sysinternals -y
# choco install bginfo -y
## VM
# choco install vmware-workstation-player -y
# choco install virtualbox -y
## Text editors and development tools
choco install notepadplusplus.install -y
choco install visualstudiocode -y
#choco install arduino -y
## Office
choco install libreoffice-fresh -y
choco install thunderbird -y
# choco install adobereader -y
choco install foxitreader -y
choco install pdfsam.install -y
# choco install kindle -y
choco install freemind -y
# choco install office365proplus -y
## Collaboration
choco install microsoft-teams.install -y
choco install webex-meetings -y
choco install gotomeeting -y
choco install zoom -y
# choco install dropbox -y
choco install nextcloud-client -y
choco install jabra-direct -y
choco install phonerlite -y
choco install teamviewer -y
## Media
choco install vlc -y
choco install deezer -y
# choco install spotify -y
# choco install gimp -y
choco install audacity -y
choco install obs-studio.install -y
choco install drawio -y
choco install shotcut.install -y
choco install eac -y
#choco install fsviewer -y
choco install imageresizerapp -y
## Messanger
choco install element-desktop -y
#choco install whatsapp -y
choco install telegram.install -y
## Virtual private network
choco install openvpn -y
choco install wireguard -y
## Productivity and utilities
#choco install freecommander-xe.install -y
choco install totalcommander -y
# choco install ccleaner -y
# choco install partitionwizard -y
choco install windirstat -y
choco install treesizefree -y
# choco install winrar -y
# choco install 7zip -y
choco install peazip -y
choco install rufus -y
choco install burnawarefree -y
choco install deepl -y
choco install dexpot -y
choco install greenshot -y
## Security
choco install keepass -y
choco install winauth -y
## Gaming
choco install steam -y
choco install ea-app -y
choco feature disable -n allowGlobalConfirmation
It can also install Microsoft Store apps and VS Code extensions if required. No need to learn a DSL, install third-party tooling, or debug YAML. It’s pure PowerShell and winget
.
$vsCodeExec = ($Env:PROGRAMFILES) + "\Microsoft VS Code\bin\code.cmd"
$extensions = @(
"ms-vscode.cpptools", # C/C++ Language Support
"ms-dotnettools.csharp", # C# Language Support
"dbankier.vscode-instant-markdown", # Markdown Language Support
"ms-vscode.powershell", # PowerShell Language Support
"huntertran.auto-markdown-toc", # Auto markdown toc
"jeff-hykin.better-cpp-syntax", # CPP syntax highlighter
"ms-vscode.cpptools-extension-pack", # CPP Extension Pack
"ms-vscode.cpptools-themes", # CPP Themes
"github.vscode-pull-request-github", # GitHub integration
"platformio.platformio-ide", # Arduino PlatformIO
"humao.rest-client" # Rest API
) | SORT
$extensions | ForEach-Object {
try {
Invoke-Expression "& '$vsCodeExec' --install-extension $_ --force"
Write-Host # New-Line
} catch {
$_
Exit(1)
}
}
You can comment, extend, or remove lines easily to customize your own install baseline.
Example: Bootstrap Flow After Reinstall
- Install Windows
- Enable PowerShell script execution (
Set-ExecutionPolicy
) - Clone your dotfiles or config repository
- Customize
install-windows-apps.ps1
as needed - Run the script
- Done — your system is ready to use
Keeping Everything Up-to-Date – with One Command
Once your apps are installed via Chocolatey, keeping your system up-to-date becomes effortless. Instead of manually checking each application for updates, you can either:
Use the Chocolatey GUI → A graphical interface to review, update, and manage installed software → Launch it via Start Menu: Chocolatey GUI
or use the Command Line to update everything in one go:
choco upgrade all -y
This single command checks for updates and installs the latest versions for all Chocolatey-managed applications — unattended and fast.
Final Thoughts
This script reflects a pragmatic mindset: tools should save time, not add complexity. If you frequently reinstall machines, help others with setup, or simply want to maintain a personal software standard, this lightweight approach can save hours of work.
It doesn’t try to automate everything. It just ensures you never forget the things that matter.