A fully automated, script-based system configuration for Windows, written in PowerShell + Batch. Designed to quickly install tools, configure settings, and prepare a developer environment in minutes.
Each script is separated by responsibility:
setup.bat
— main entry point with elevation check and ordered executionprogram_groups/
— install specific apps or groupssystem_settings/
— configure system-level settings like taskbar or PowerToyssetup_finishers/
— post-install configuration like WSL update or Git identitycommon/
— shared utilities like logging and URL launchingconfig.ps1
— central configuration file for easy customization
Ensures the script always runs as administrator — silently relaunches itself if needed.
Detects whether Chocolatey is installed. If not, installs it and asks the user to rerun the script.
Installs essential development software using Chocolatey (configured in config.ps1
):
- VS Code
- Git
- NVM + Node LTS
- Docker Desktop
- PowerToys
- 7-Zip
- FiraCode
- Google Chrome
- VLC, Zoom, Telegram, and more...
Includes built-in functions to:
- Download and run
.exe
or.zip
installers silently - Add apps to startup if needed
- Open URLs post-installation for activation or info
Supports optional tools like:
- HMA VPN – installs silently and opens Gmail link for code retrieval
- StrokesPlus.net – downloads portable version, adds to startup
- Punto Switcher – installs from a packed archive
System tweaks like:
- Configuring the taskbar layout
- Setting up PowerToys
- Setting system defaults
Includes post-install configuration:
WSL --update
for Docker support- Setting up Git global config
- Installing Node.js LTS with NVM
Everything is driven by a central config file:
$GitUserName = "Dmitry Galaktionov"
$GitUserEmail = "galionix2@gmail.com"
$InstallHmaVpn = $true
$InstallStrokesPlusNet = $true
$ConfigureWindows = $true
$FinishGit = $true
$FinishDocker = $true
$Tools = @("notepadplusplus", "git", "vscode", "telegram", "7zip", "docker-desktop", ...)
## Pick your tools here https://community.chocolatey.org/packages
You can toggle what to install and extend tool lists with just a few variables.
You can easily add new apps to the setup by using these helper functions:
Install-AndLaunch
: For downloading and silently installing.exe
files.Install-ZipExecutableWithUrl
: For downloading, extracting, and running
Downloads an .exe
installer, runs it silently, and optionally opens a web page after installation.
Downloads a ZIP archive, extracts it, launches the specified .exe
inside, and optionally adds it to startup.
- Clone this repository to your new Windows machine.
- Run
setup.bat
as administrator. - Follow the logs and prompts.
- Profit.
⚠️ This setup is tailored to the author's personal needs. You are encouraged to fork and customize it to fit your own workflow.