Zero-Touch Windows Workstation Provisioning Toolkit
A PowerShell-based, automated provisioning solution that transforms Windows 10 & 11 workstation deployment from a 30-step manual process into a single "plug-and-play" operation. Whether you're imaging bare metal or cleaning up an existing PC, DeployWorkstation handles the heavy lifting of bloatware removal and essential application installation.
- 🔧 Improved App Removal & Installation
- 🚀 Advanced Reporting
- 🔄 Configuration Management Integration
- ✅ Multi-language Support
- ✅ Real-time Progress
- 🔐 Self-Elevating & Policy-Bypassing - Automatically relaunches under Windows PowerShell 5.1 with
-ExecutionPolicy Bypassand UAC elevation - 🗑️ UWP "Bloatware" Purge - Comprehensive removal of built-in apps like New Outlook, Clipchamp, OneDrive, Teams, Xbox, and more
- ⚙️ Win32/MSI Removal & DISM Cleanup - Enterprise software removal via WinGet, DISM, and registry manipulation
- 📦 Standard App Installation - Automated installation of essential third-party tools via WinGet
- 💾 Offline Fallback Support - Bundles proprietary installers for network-independent deployment
- 📋 Centralized Logging - Detailed operation logs with pause-for-review functionality
- 📧 New Outlook & Mail
- 🎬 Clipchamp Video Editor
- 👨👩👧👦 Family Safety & Parental Controls
- ☁️ OneDrive Sync Client
- 💼 LinkedIn Integration
- 🤖 Copilot Assistant
- 👥 Microsoft Teams (Consumer)
- 📞 Skype for Windows
- 🎮 Xbox Gaming Suite
- 🎵 Groove Music
- 📰 News & Weather Apps
- 🗺️ Maps Application
- 🆘 Quick Assist Remote Support
- 🖥️ Remote Desktop Services
- 🥽 Mixed Reality Platform
- 🎮 Game Bar & Gaming Features
- 📺 Windows Media Player Legacy
- 🔍 Windows Search Indexing (Optional)
- 🛡️ McAfee Security Suite
- 🔒 Norton Antivirus
- 📺 Bloatware Media Applications
- 🎯 Manufacturer-Specific Utilities
- 📊 Trial Software & Demos
- 🦠 Malwarebytes - Premium malware protection
- 🧹 BleachBit - System cleanup and privacy tool
- 🔒 Windows Defender - Enhanced configuration
- 🌐 Google Chrome - Modern web browser
- 🗜️ 7-Zip - Universal archive manager
- 📄 Adobe Acrobat Reader DC - PDF viewer
- 📹 VLC Media Player - Universal media player
- 📞 Zoom Client - Video conferencing
- 📝 Notepad++ - Advanced text editor
- ⚙️ .NET Framework (Latest LTS)
- ☕ Java Runtime Environment
- 🔧 Visual C++ Redistributables
- 🐍 Python Runtime (Optional)
- 💻 Windows 10/11 (Any Edition)
- 🌐 Internet Connection (for WinGet packages)
- 👤 Administrator Access
- 💾 USB Drive or Network Share (Optional)
- 🎯 Quick Start - One-click deployment wizard
- 📖 Installation Guide - Detailed setup instructions
- ⚙️ Configuration Guide - Customize your deployment
- 🔧 Troubleshooting - Solve common issues
- 🧪 Testing - Run validation tests
- 📋 Contributing - Help improve the project
| Profile | Use Case | Applications | Configuration |
|---|---|---|---|
| Corporate | Business workstations | Office tools, security software | Details |
| Developer | Programming workstations | IDEs, development tools | Details |
| Home User | Personal computers | Media, communication apps | Details |
-
📥 Download the Repository
git clone https://github.com/Pnwcomputers/DeployWorkstation.git cd DeployWorkstation -
💾 Prepare Deployment Media
# Copy files to USB drive copy DeployWorkstation.ps1 E:\ copy DeployWorkstation.cmd E:\
-
▶️ Execute Deployment# Method 1: Double-click the .cmd launcher DeployWorkstation.cmd # Method 2: Direct PowerShell execution powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\DeployWorkstation.ps1 -
⏳ Monitor Progress
- Script runs unattended with real-time logging
- Progress indicators for each major operation
- Automatic error handling and retry logic
-
✅ Review & Reboot
- Script pauses for final review
- Detailed log available:
DeployWorkstation.log - System reboot recommended for clean finish
Edit the script to modify installation packages:
# Core Applications (Always Installed)
$CoreApps = @(
"Google.Chrome",
"7zip.7zip",
"VideoLAN.VLC",
"Malwarebytes.Malwarebytes"
)
# Optional Applications (User Selectable)
$OptionalApps = @(
"Microsoft.VisualStudioCode",
"Git.Git",
"Docker.DockerDesktop"
)# Bundle offline installers
$OfflinePackages = @{
"CustomApp1" = "\\NetworkShare\Software\App1.msi"
"CustomApp2" = "E:\Installers\App2.exe /S"
}# Customize logging behavior
$LogLevel = "Detailed" # Options: Basic, Detailed, Verbose
$LogRetention = 30 # Days to keep logs
$EmailAlerts = $true # Send completion notifications| Feature | Manual Deployment | Other Tools | DeployWorkstation |
|---|---|---|---|
| Automation Level | ❌ Manual (8+ hours) | ✅ Full Automation (30 minutes) | |
| Bloatware Removal | ❌ Manual deletion | ✅ Comprehensive purge | |
| Enterprise Software | ❌ Manual uninstall | ❌ Often skipped | ✅ Registry-based removal |
| Offline Support | ✅ Media required | ❌ Internet dependent | ✅ Hybrid approach |
| Error Handling | ❌ Manual intervention | ✅ Comprehensive logging | |
| Customization | ✅ Full control | ✅ Highly configurable |
- New employee workstation setup
- Hardware refresh projects
- Standardized corporate imaging
- Remote office provisioning
- Client workstation deployment
- Malware cleanup and rebuild
- Hardware upgrade services
- Maintenance contract fulfillment
- Lab computer preparation
- Student workstation imaging
- Faculty equipment setup
- Semester refresh operations
- Personal computer setup
- Family PC maintenance
- Small office standardization
- Tech enthusiast automation
DeployWorkstation/
├── DeployWorkstation.ps1 # Main PowerShell script
├── DeployWorkstation.cmd # Self-elevating launcher
├── Installers/ # Offline installer directory
│ ├── CustomApp1.msi
│ └── CustomApp2.exe
├── Logs/ # Auto-created log directory
│ └── DeployWorkstation.log
├── Config/ # Configuration files
│ ├── AppLists.json
│ └── Settings.xml
└── README.md # This documentation
Script won't execute
- Ensure PowerShell execution policy allows scripts
- Verify UAC elevation is working
- Check Windows PowerShell 5.1 is available
WinGet installation failures
- Verify internet connectivity
- Check Windows Store app is installed
- Update Windows to latest version
Bloatware returns after reboot
- Run script as Administrator
- Ensure all user profiles are processed
- Check Group Policy restrictions
Offline installers not found
- Verify installer paths in script
- Check file permissions on USB drive
- Ensure installers support silent installation
# Check recent deployment logs
Get-Content .\DeployWorkstation.log | Select-String "ERROR|WARNING"
# Verify WinGet package status
winget list --source winget| Metric | Traditional Method | DeployWorkstation |
|---|---|---|
| Total Time | 4-8 hours | 30-45 minutes |
| Manual Steps | 30+ operations | 1 double-click |
| Error Rate | ~15% (human error) | <2% (automated) |
| Consistency | Variable | 100% standardized |
| Scalability | Linear time increase | Parallel deployment |
- 📊 Analytics and Telemetry
- 🤖 AI-Powered Optimization
- 🌐 Web-based Management Console
- 🚀 Windows Server Support
- 🚀 Domain Integration
- 🚀 Cloud Configuration Sync
- ✅ GUI Configuration Interface
- ✅ Network Deployment Server
We welcome contributions! Here's how to get started:
- Improve README clarity
- Add configuration examples
- Create troubleshooting guides
- Open issues with detailed descriptions
- Include system information
- Provide log excerpts
- Open issues with [FEATURE] tag
- Describe use case and benefits
- Consider implementation complexity
- Email support@pnwcomputers.com
- Include proof of concept (if safe)
- Allow reasonable disclosure time
This project is licensed under the MIT License - see the LICENSE file for details.
- 📖 Documentation: Check this README and project wiki
- 🐛 Bug Reports: Open an issue on GitHub
- 💡 Feature Requests: Open an issue with [FEATURE] tag
- 💬 General Support: Email support@pnwcomputers.com
🎯 Transform your Windows deployment process from hours to minutes!
Built with ❤️ for efficiency, reliability, and zero-touch automation.
⭐ Star this repo if it saved you time and effort!
Tested on Windows 10 (1909+) and Windows 11 - Enterprise, Pro, and Home editions