Skip to content

Pnwcomputers/DeployWorkstation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

111 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

๐Ÿš€ DeployWorkstation

A PowerShell-based, automated provisioning solution that transforms a Windows 10 or Windows 11 workstation deployment process into a single plug-and-play operation.

Automation Level Windows Support PowerShell Version Enterprise Ready GitHub issues Maintenance

Zero-Touch Windows Workstation Provisioning & Maintenance 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, cleaning up an existing PC, or running routine maintenance on already-deployed machines, DeployWorkstation handles bloatware removal, essential application installation, and in-place app upgrades.

๐Ÿ†• What's New in v5.11

  • ๐Ÿ”„ App Update Support โ€” detects and upgrades already-installed applications in-place; safe to re-run on existing machines
  • ๐Ÿ›ก๏ธ Winget Auto-Bootstrap โ€” automatically downloads and installs winget on OEM machines where it's missing or outdated
  • ๐Ÿ” Network Retry Logic โ€” automatic retries with delay on transient network errors during installation
  • ๐Ÿ–ฅ๏ธ Windows Edition Awareness โ€” detects Home vs. Pro/Enterprise and warns when policy keys will have no effect
  • ๐Ÿ—‘๏ธ OEM OneDrive Removal โ€” three-path removal covering both Appx and embedded OEM binaries
  • ๐ŸŒ Multi-Language Support โ€” auto-detects locale via Get-Culture; ships with en-US and es-ES
  • โœ… Real-time Progress โ€” Write-Progress console bars throughout all major operations

โœจ Key Features

  • ๐Ÿ” Self-Elevating & Policy-Bypassing โ€” automatically relaunches under Windows PowerShell 5.1 with -ExecutionPolicy Bypass and UAC elevation
  • ๐Ÿ—‘๏ธ UWP "Bloatware" Purge โ€” comprehensive removal of built-in apps including Copilot, Teams, New Outlook, Clipchamp, OneDrive, Xbox, and more
  • โš™๏ธ Win32/MSI Removal & DISM Cleanup โ€” enterprise software removal via WinGet, DISM, and registry manipulation
  • ๐Ÿ“ฆ Standard App Installation & Upgrade โ€” automated install and in-place upgrade of essential third-party tools via WinGet
  • ๐Ÿ’พ Offline Fallback Support โ€” bundles proprietary installers for network-independent deployment
  • ๐Ÿ“‹ Centralized Logging โ€” detailed operation logs plus an HTML report with pause-for-review functionality

๐Ÿ›ก๏ธ Automated Removal Capabilities

UWP Applications Removed

  • ๐Ÿ“ง New Outlook & Mail
  • ๐Ÿค– Copilot Assistant
  • ๐Ÿ‘ฅ Microsoft Teams (Consumer)
  • ๐ŸŽฌ Clipchamp Video Editor
  • ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ Family Safety & Parental Controls
  • โ˜๏ธ OneDrive Sync Client (Appx + OEM binary)
  • ๐Ÿ’ผ LinkedIn Integration
  • ๐Ÿ“ž Skype for Windows
  • ๐ŸŽฎ Xbox Gaming Suite
  • ๐ŸŽต Groove Music
  • ๐Ÿ“ฐ News & Weather Apps
  • ๐Ÿ—บ๏ธ Maps Application

Legacy Features Disabled

  • ๐Ÿ†˜ Quick Assist Remote Support
  • ๐Ÿ–ฅ๏ธ Remote Desktop Services
  • ๐Ÿฅฝ Mixed Reality Platform
  • ๐ŸŽฎ Game Bar & Gaming Features
  • ๐Ÿ“บ Windows Media Player Legacy
  • ๐Ÿ” Windows Search Indexing (Optional)

Enterprise Software Removal

  • ๐Ÿ›ก๏ธ McAfee Security Suite
  • ๐Ÿ”’ Norton Antivirus
  • ๐Ÿ“บ Bloatware Media Applications
  • ๐ŸŽฏ Manufacturer-Specific Utilities
  • ๐Ÿ“Š Trial Software & Demos

๐Ÿ“ฅ Essential Applications Installed

Security & Maintenance

  • ๐Ÿฆ  Malwarebytes โ€” premium malware protection
  • ๐Ÿงน BleachBit โ€” system cleanup and privacy tool
  • ๐Ÿ”’ Windows Defender โ€” enhanced configuration

Productivity Suite

  • ๐ŸŒ Google Chrome โ€” modern web browser
  • ๐Ÿ—œ๏ธ 7-Zip โ€” universal archive manager
  • ๐Ÿ“„ Adobe Acrobat Reader DC โ€” PDF viewer
  • ๐Ÿ“น VLC Media Player โ€” universal media player
  • ๐Ÿ“ Notepad++ โ€” advanced text editor

Development Runtimes

  • โš™๏ธ .NET Framework 4.8 โ€” legacy app compatibility
  • โš™๏ธ .NET Desktop Runtime 6 / 7 / 8 โ€” modern app support
  • ๐Ÿ”ง Visual C++ 2015โ€“2022 Redistributables (x64 & x86)

๐Ÿš€ Installation & Usage

Prerequisites

  • ๐Ÿ’ป Windows 10/11 (Any Edition)
  • ๐ŸŒ Internet Connection (for WinGet packages โ€” winget auto-installs if missing)
  • ๐Ÿ‘ค Administrator Access
  • ๐Ÿ’พ USB Drive or Network Share (Optional)

Quick Start

  1. ๐Ÿ“ฅ Download the Repository

    git clone https://github.com/Pnwcomputers/DeployWorkstation.git
    cd DeployWorkstation
  2. ๐Ÿ’พ Prepare Deployment Media

    copy DeployWorkstation.ps1 E:\
    copy DeployWorkstation.bat E:\
  3. โ–ถ๏ธ Execute Deployment

    # Method 1: Double-click the .bat launcher (recommended)
    DeployWorkstation.bat
    
    # Method 2: Direct PowerShell execution
    powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\DeployWorkstation.ps1
  4. โณ Select Deployment Mode The launcher presents four options:

    Option Description
    1 โ€” Full Deployment Bloatware removal + app install + system config
    2 โ€” Bloatware Removal Only Skips app installation
    3 โ€” App Installation Only Skips bloatware removal
    4 โ€” System Config Only Registry/policy hardening only
  5. โœ… Review & Reboot

    • Script pauses for final review on completion
    • HTML report generated: DeployWorkstation.html
    • Detailed log available: DeployWorkstation.log
    • System reboot recommended for a clean finish

Re-Running on Existing Machines

v5.11 is safe to run on already-deployed workstations. The upgrade logic updates any managed apps with newer versions available via winget.

# Re-run for app updates only (skip bloatware removal on a previously cleaned machine)
.\DeployWorkstation.ps1 -SkipBloatwareRemoval
 
# Dry-run to preview what would change without making any modifications
.\DeployWorkstation.ps1 -DryRun

๐Ÿ”ง Advanced Configuration

Command-Line Parameters

Parameter Description
-SkipAppInstall Skip all application installation
-SkipBloatwareRemoval Skip bloatware and UWP removal
-SkipDefaultUserConfig Skip default user profile configuration
-SkipSystemConfig Skip registry/policy hardening
-SkipJavaRuntimes Skip Java runtime installation
-ExportWingetApps Export currently installed winget apps to apps.json
-ImportWingetApps Import and install apps from apps.json
-DryRun Simulate all actions without making changes
-LogPath <path> Custom path for the log file

Custom Application Lists

# Core Applications (Always Installed)
$CoreApps = @(
    "Google.Chrome",
    "7zip.7zip",
    "VideoLAN.VLC",
    "Malwarebytes.Malwarebytes"
)
 
# Optional Applications (User Selectable)
$OptionalApps = @(
    "Microsoft.VisualStudioCode",
    "Git.Git",
    "Docker.DockerDesktop"
)

Offline Package Management

$OfflinePackages = @{
    "CustomApp1" = "\\NetworkShare\Software\App1.msi"
    "CustomApp2" = "E:\Installers\App2.exe /S"
}

Logging Configuration

$LogLevel = "Detailed"   # Options: Basic, Detailed, Verbose
$LogRetention = 30       # Days to keep logs

๐ŸŽช Configuration Profiles

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

๐Ÿ“Š Feature Comparison

Feature Manual Deployment Other Tools DeployWorkstation
Automation Level โŒ Manual (8+ hours) โš ๏ธ Partial (2-4 hours) โœ… Full Automation (30 minutes)
Bloatware Removal โŒ Manual deletion โš ๏ธ Basic removal โœ… Comprehensive purge
Enterprise Software โŒ Manual uninstall โŒ Often skipped โœ… Registry-based removal
App Updates โŒ Manual per-app โš ๏ธ Separate tool needed โœ… In-place upgrade on re-run
Offline Support โœ… Media required โŒ Internet dependent โœ… Hybrid approach
Error Handling โŒ Manual intervention โš ๏ธ Basic logging โœ… Retry logic + HTML report
Customization โœ… Full control โš ๏ธ Limited options โœ… Highly configurable

๐Ÿ“ˆ Performance Metrics

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

๐ŸŽฏ Use Cases

๐Ÿข Enterprise Deployment

  • New employee workstation setup
  • Hardware refresh projects
  • Standardized corporate imaging
  • Remote office provisioning

๐Ÿ”ง IT Service Providers

  • Client workstation deployment and routine maintenance
  • Malware cleanup and rebuild
  • Hardware upgrade services
  • Maintenance contract fulfillment โ€” re-run to keep apps current

๐Ÿซ Educational Institutions

  • Lab computer preparation
  • Student workstation imaging
  • Faculty equipment setup
  • Semester refresh operations

๐Ÿ  Home & Small Business

  • Personal computer setup
  • Family PC maintenance
  • Small office standardization

๐Ÿ” Troubleshooting

Common Issues

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
  • The script will attempt to auto-install/repair winget on OEM machines
  • Verify internet connectivity if bootstrap also fails
  • 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

Log Analysis

# Check for errors and warnings in the deployment log
Get-Content .\DeployWorkstation.log | Select-String "ERROR|WARNING"
 
# Verify WinGet package status
winget list --source winget

The HTML report (DeployWorkstation.html) provides the same information in a readable format โ€” open it in any browser after the run completes.

๐Ÿ› ๏ธ Project Structure

DeployWorkstation/
โ”œโ”€โ”€ DeployWorkstation.ps1      # Main PowerShell script
โ”œโ”€โ”€ DeployWorkstation.bat      # Self-elevating launcher with menu
โ”œโ”€โ”€ Installers/                # Offline installer directory
โ”‚   โ”œโ”€โ”€ CustomApp1.msi
โ”‚   โ””โ”€โ”€ CustomApp2.exe
โ”œโ”€โ”€ Logs/                      # Auto-created log directory
โ”‚   โ”œโ”€โ”€ DeployWorkstation.log
โ”‚   โ””โ”€โ”€ DeployWorkstation.html # Post-run HTML report
โ”œโ”€โ”€ Config/                    # Configuration files
โ”‚   โ”œโ”€โ”€ AppLists.json
โ”‚   โ””โ”€โ”€ Settings.xml
โ””โ”€โ”€ README.md

๐Ÿ”ฎ Roadmap

  • ๐Ÿ–ฅ๏ธ GUI Configuration Interface (pre-run checkbox dialog)
  • ๐ŸŒ Web-based Management Console
  • ๐Ÿš€ Domain Integration
  • ๐Ÿš€ Cloud Configuration Sync
  • ๐Ÿš€ Windows Server Hardening Mode (no app install)
  • ๐Ÿ“Š Analytics & Telemetry (CSV/JSON export for fleet tracking)

๐Ÿค Contributing

We welcome contributions! Here's how to get started:

  • ๐Ÿ“– Documentation โ€” improve README clarity, add configuration examples, create troubleshooting guides
  • ๐Ÿ› Bug Reports โ€” open issues with detailed descriptions, system info, and log excerpts
  • ๐Ÿ’ก Feature Requests โ€” open issues with [FEATURE] tag, describe use case and benefits
  • ๐Ÿ”’ Security Issues โ€” email support@pnwcomputers.com with proof of concept; allow reasonable disclosure time

๐Ÿ“„ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

๐Ÿ“ž Support & Contact

  • ๐Ÿ“– Documentation: Check this README and the project wiki
  • ๐Ÿ› Bug Reports: Open an issue on GitHub
  • ๐Ÿ’ก Feature Requests: Open an issue with [FEATURE] tag
  • ๐Ÿ’ฌ General Support: support@pnwcomputers.com

๐Ÿ“Š Statistics

GitHub stars GitHub forks GitHub issues GitHub license

๐ŸŽฏ Transform your Windows deployment process from hours to minutes โ€” and keep it current with every re-run.

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