Skip to content

saigkill/WindowsBootstrapper

🚀 Windows Bootstrap

Logo

windows-bootstrap is a lightweight but powerful PowerShell framework designed to automate the complete setup of a new Windows machine. It installs applications, applies system tweaks, manages package sources, downloads external tools, and even updates itself automatically.

Perfect for developers, power users, sysadmins, and anyone who regularly provisions Windows systems.

W W
Code https://dev.azure.com/saigkill/WindowsBootstrapper
Language Lang
OS Windows
License License
Status Status
Maintained Maintained
Continuous Integration Dev Build status
Continuous Integration Prod Build status
Deployment Github Github Release
Deployment Winget Winget Release
Bugreports GitHub issues
Downloads all GitHub Downloads (all assets, all releases)
Blog Blog

File a bug report on Github.

✨ Features

  • Modular architecture
    Clean separation between core utilities, installers, system tweaks, and auto‑update logic.

  • JSON‑based configuration
    All apps and settings are defined in external config files.

  • Environment support
    Automatically loads config.Development.json if present, otherwise falls back to config.json.

  • Multiple package sources supported

    • Winget
    • Microsoft Store
    • Chocolatey
    • Scoop
    • External ZIP installers
    • External EXE installers
    • System tweaks
    • Explorer optimizations
    • Registry adjustments
    • Context menu enhancements
    • Dark mode
    • ShellBag cleanup
    • And more
  • Self‑updating The bootstrapper checks GitHub Releases and updates itself automatically.

  • Unified logging Consistent, structured logging across all modules.

📁 Project Structure

windows-bootstrap/
│
├── bootstrap.ps1               # Main entry point
├── version.json                # Version for auto-update
│
├── config/
│   └── config.json             # Default configuration
│
├── modules/
│   ├── core.psm1               # Logging, config loading, utilities
│   ├── installers.psm1         # Winget, Store, Choco, Scoop, ZIP, EXE
│   ├── tweaks.psm1             # Windows tweaks and registry changes
│   └── update.psm1             # Auto-update logic
│
└── README.md

🚀 Getting Started

  1. Download and extract the latest release on https://github.com/saigkill/WindowsBootstrapper/releases/
  2. Modify the /config/config.json. As Exsample:
   {
    "WingetApps": [
       { "Id": "Google.Chrome", "Source": "winget" },
       { "Id": "Microsoft.PowerToys", "Source": "winget" }
    ],
    "StoreApps": [
       { "Id": "9WZDNCRFJ3PT", "Source": "msstore" }
    ]
  }
  1. Run in Powershell ./bootstrap.ps1

🔄 Auto‑Update

The bootstrapper automatically:

  • Checks GitHub Releases
  • Compares versions
  • Downloads the latest bootstrapper
  • Replaces itself
  • Restarts automatically

🧩 Modules Overview

core.psm1

  • Logging
  • Config loader
  • Utility functions

installers.psm1

  • Winget installer
  • Microsoft Store installer
  • Chocolatey installer
  • Scoop installer
  • ZIP installer
  • EXE installer

tweaks.psm1

  • Explorer tweaks
  • Registry optimizations
  • Context menu additions
  • Dark mode
  • ShellBag cleanup

update.psm1

  • Version detection
  • GitHub API integration
  • Self‑update logic

🛠 Requirements

  • Windows 10 or Windows 11
  • PowerShell 7+
  • Administrator privileges
  • Internet connection

About

A modular PowerShell framework for automating the setup of a fresh Windows system

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors