A fully automated PowerShell toolkit to debloat, optimize, and harden Windows — from install to ready-to-use.
This suite is purpose-built for Autounattend.xml deployments and post-install automation.
All scripts are compatible with tools like schneegans.de for lightweight, one-time execution during OOBE or after first login.
Script | Purpose | Key Features |
---|---|---|
SystemSetup.ps1 |
Core system tweaks | • Disables telemetry tasks and services • Activates Ultimate Performance power plan • Optimizes network and RAM settings • Configures gaming priorities • Disables error reporting and ads • Clears Start menu tiles • Enables ICMP for network diagnostics |
UI_Tweaks.ps1 |
User interface optimization | • Removes Widgets and Meet Now • Configures File Explorer behavior • Disables News and Interests • Hardens privacy settings • Removes Edge desktop shortcut • Disables telemetry and feedback |
SysPrep_Debloater.ps1 |
App and feature removal | • Removes provisioned apps (PUWs) • Uninstalls optional features • Progress tracking for removals • Error handling for failed removals • Safe for Sysprep/FirstLogon |
Winget_Apps.ps1 |
Package management | • Auto-installs winget and dependencies • Installs curated app list • Handles shortcut cleanup • Validates installations • Progress tracking |
UserSetup.ps1 |
User personalization | • Configures keyboard layout • Sets wallpaper preferences • Removes startup apps • Creates network shortcuts • Downloads system tools • Activates Windows via TSForge |
WindowsOptimizer.ps1 |
System optimization | • Downloads and runs Optimizer • Applies dynamic config based on OS • Validates downloads • Implements execution timeout • Cleans up temporary files |
WindowsSpyBlocker.ps1 |
Privacy protection | • Downloads WindowsSpyBlocker • Applies telemetry blocklists • Configures firewall rules • Cleans up installation files |
CTT_Winutil.ps1 |
Additional tweaks | • Downloads patched WinUtil • Applies system tweaks only • Validates JSON config • Handles download errors • Cleans up after execution |
- ✅ Silent execution — no popups
- 🔁 Safe to re-run — idempotent logic
- 🧠 Detects Windows 10 vs 11 automatically
- 🧩 Modular — use only what you need
- 🌐 Pulls community tools: Optimizer, WinUtil, WindowsSpyBlocker
- 💾 Winget bootstrap + install support
- 🧱 Designed specifically for Autounattend.xml automation
- 📝 Detailed logging with progress tracking
- 🛡️ Error handling and validation throughout
- 🔄 Progress tracking for long operations
You can run scripts manually, chain them in SetupComplete/FirstLogon, or automate via OOBE using:
💡 schneegans.de
Use it to schedule one-time execution of PowerShell scripts during the first user login — no registry or Task Scheduler changes required.
Perfect forAutounattend.xml
deployments.
Suggested execution order:
SystemSetup.ps1 → SYSTEM-level baseline tweaks
UI_Tweaks.ps1 → UI, taskbar, privacy, and startup cleanup
SysPrep_Debloater.ps1 → Remove built-in apps and features
Winget_Apps.ps1 → Install app stack (auto-installs winget if needed)
UserSetup.ps1 → Per-user personalization
WindowsOptimizer.ps1 → Full Optimizer pass with embedded config
WindowsSpyBlocker.ps1 → Apply telemetry blocklists
CTT_Winutil.ps1 → Additional system tweaks
This project includes and supports a fully configured Autounattend.xml
for hands-free deployment.
You can use schneegans.de's Unattended Generator to modify or inspect the unattended configuration.
To apply this to your install media, simply place the provided Autounattend.xml
at the root of a bootable Windows ISO or USB
You can find a copy of the example Autounattend.xml
in this repository.
More info in the Wiki/Autounattend-Integration.
- 💻 Windows 10 or 11 (22H2+ recommended)
- 🌐 Internet required for Optimizer, WinUtil, SpyBlocker, and winget
- 🛠 PowerShell 5.1+
- 🔓 If running from a PowerShell window, use:
powershell.exe -ExecutionPolicy Bypass -File .\ScriptName.ps1
- Always test this suite in a virtual machine (VM) or disposable environment before deploying it to production or real hardware.
⚠️ : UserSetup.ps1 includes Windows activation via TSForge - review and remove if not suitable for your environment.- These scripts apply deep system-level changes and may behave differently depending on your Windows version, edition, or configuration. Make sure to create backups before attempting any changes.
- Internet connectivity is required for several features. However, you can definitely adapt them to make them run offline.
- Most inline comments in the scripts and this wiki were generated using ChatGPT and may be incomplete or slightly inaccurate.
Feedback and forks welcome — this is an evolving deployment suite.