Open-source Windows 11 deployment automation toolkit built with PowerShell 7
Zero-touch Windows deployment with automatic driver updates, application installation, bloatware removal, and system configuration. Deploy via USB, network, RMM agents, or AutoUnattend.xml.
Prerequisites: Windows 11 Pro 24H2+, PowerShell 7, internet connection
# 1. Create bootable Windows 11 USB
# 2. Copy autounattend.xml to USB root
# 3. (Optional) Copy RMM agent as Agent.exe to USB root
# 4. Boot from USB with network connected
# 5. Wait - everything happens automatically# Run as Administrator in PowerShell 7
iex "& { $(irm 'https://raw.githubusercontent.com/Stensel8/WinDeploy/main/Scripts/Start.ps1') }"WinDeploy/
├── Scripts/
│ ├── Start.ps1 # Main entry point with auto-elevation
│ ├── Deploy-Device.ps1 # Full deployment orchestrator
│ ├── Install-Drivers.ps1 # Dell/HP driver automation
│ ├── Install-Applications.ps1 # WinGet app installer
│ ├── Install-WindowsUpdates.ps1 # Windows Update automation
│ ├── Remove-Bloat.ps1 # Bloatware removal
│ ├── Get-IntuneHash.ps1 # Autopilot hash generator
│ ├── Set-Theme.ps1 # Desktop theme configuration
│ └── Utilities/ # Shared modules
│ ├── Logging.psm1 # Logging framework
│ ├── WinGet.psm1 # WinGet wrapper functions
│ ├── System.psm1 # System utilities
│ └── Download.psm1 # Download helpers
├── Docs/
│ ├── SupportedDellDevices.json # Dell device compatibility list
│ └── SupportedHPDevices.json # HP device compatibility list
├── Config/ # (Future) Configuration files
└── README.md
graph TD
A[Start.ps1] --> B{Admin Rights?}
B -->|No| C[Auto-Elevate]
C --> D{PowerShell 7?}
B -->|Yes| D
D -->|No| E[Install PS7 + WinGet]
E --> F[Relaunch in PS7]
D -->|Yes| G[Deploy-Device.ps1]
F --> G
G --> H[Install RMM Agent]
H --> I[Update Drivers]
I --> J[Install Applications]
J --> K[Remove Bloatware]
K --> L[Generate Intune Hash]
L --> M[Apply Theme]
M --> N[Install Windows Updates]
N --> O[Complete]
Edit Scripts/Install-Applications.ps1 (lines 80-100):
$applications = @(
@{ Id = "Microsoft.VisualStudioCode"; Name = "VS Code" },
@{ Id = "Google.Chrome"; Name = "Chrome" },
# Add your apps here
)Edit Scripts/Remove-Bloat.ps1 (lines 50-75):
$bloatwareList = @(
"Microsoft.BingNews",
"Microsoft.GamingApp",
# Add packages to remove
)- Dell: Latitude, OptiPlex, Precision, XPS series
- HP: EliteBook, ProBook, EliteDesk, ProDesk, ZBook series
To view all models, check Supported Dell devices or Supported HP devices.
All operations are logged with timestamps:
- Main log:
C:\WinDeploy\Logs\Deploy-Device.log - Individual scripts:
C:\WinDeploy\Logs\Install-*.log - Bootstrap log:
C:\WinDeploy\Logs\Start-Bootstrap.log
View logs in real-time:
Get-Content "C:\WinDeploy\Logs\Deploy-Device.log" -Wait -Tail 20- WinGet: v1.11.510 or later (auto-installed if missing)
- PSWindowsUpdate: 2.2.1.5 or later (auto-installed for Windows Updates)
- Dell Command Update: 5.5.0 or later (auto-installed for Dell devices)
- HP Image Assistant: 5.3.2 or later (auto-installed for HP devices)
Script won't run - execution policy error
Set-ExecutionPolicy Bypass # This will allow the script to run for this sessionWinGet not found
# Run Install-Winget.ps1 first
.\Scripts\Install-Winget.ps1Drivers not installing
- Check device compatibility in Docs/SupportedDellDevices.json or Docs/SupportedHPDevices.json
- Verify internet connection
- Check logs:
C:\WinDeploy\Logs\Install-Drivers.log
Applications failing to install
- Verify WinGet is functional:
winget --version - Check app IDs:
winget search <app-name> - Review logs:
C:\WinDeploy\Logs\Install-Applications.log
- PowerShell - Microsoft's task automation framework
- WinGet - Windows Package Manager
- PSWindowsUpdate - Windows Update automation module
- Dell Command Update - Dell driver management
- HP Image Assistant - HP driver management
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Pull Requests: Always welcome!
We welcome contributions! See CONTRIBUTING.md for guidelines.
This software is provided "as is" without warranty of any kind. Always test deployments in a safe environment before production use. The authors are not responsible for any damage or data loss.
