Windows workstation setup, software profiles, bloatware cleanup, and deployment reporting.
SetupHub is a lightweight Windows workstation setup tool built around WinGet, Microsoft Store packages, software profiles, bloatware cleanup, and deployment reporting.
It was created for a practical IT scenario: a fresh or recently reinstalled Windows machine, a list of applications to install, a few unwanted preinstalled apps to remove, and the need to leave behind a clear report of what was done.
SetupHub provides both a modern graphical interface (WPF) and a headless command-line interface (CLI) for preparing Windows 10 and Windows 11 workstations.
It helps you:
- install commonly used applications through WinGet and Microsoft Store sources;
- automatically bootstrap WinGet along with modern Windows App Runtime 1.8+ dependencies;
- apply predefined or custom software profiles;
- filter software and bloatware in real time with built-in search and category filters;
- remove selected Windows preinstalled apps;
- create an optional Windows System Restore Point before making system changes;
- detect pending Windows reboots;
- validate the software catalog before installation;
- collect hardware and software inventory from the machine;
- generate a final deployment report in multiple formats (HTML, CSV, JSON, TXT);
- run interactively with GUI or unattended via CLI parameters for remote/automated deployment (Intune, MDM, SCCM).
SetupHub does not bundle third-party installers. Package resolution and installation are handled by the package sources configured on the target machine. This keeps the repository small, easier to review, and more transparent from an operational point of view.
-
Windows 10 and Windows 11 support
Designed for modern Windows workstations with PowerShell 5.1+ and WinGet available. -
Parallel High-Speed Validation (v1.2.0)
Validates software packages concurrently with a multi-threadedRunspacePool(up to 10 workers), cutting validation time by ~80% (from ~50s down to ~5-8s). -
Asynchronous Background Inventory
Collects hardware, software, and security posture in background threads concurrently with catalog checks, eliminating wait time during report generation. -
Resilient WinGet Bootstrap & Multi-Tier Invoker
Includes automatic download ofDesktopAppInstaller_Dependencies.zip(officialMicrosoft.VCLibs.140.00andMicrosoft.UI.Xaml.2.8) andMicrosoft.WindowsAppRuntime.1.8, preventing0x80073CF3and UAC access denied errors. -
GUI and Headless CLI modes
Run interactively with the WPF GUI or pass-NoGuifor completely unattended scriptable installations. -
Real-time Search Bar and Category Filtering
Filter the software catalog instantly by typing package names, IDs, or categories in the prominent search bar, with a dedicated search bar for bloatware. -
Complete Bilingual Interface (English / Italiano)
Instant runtime language switching in the GUI (English and Italian) and CLI support via-Language <en|it>. All logs, dialogs, and reports reflect the selected language. -
Curated software catalog
Applications are grouped by category, including browsers, office tools, developer tools, cybersecurity utilities, remote support tools, multimedia applications, virtualization tools, and system utilities. -
Live package validation
Before starting the deployment, SetupHub checks whether each supported package can actually be resolved from the configured WinGet or Microsoft Store source. -
Predefined profiles
Ready-to-use profiles are available for common workstation scenarios:Essential,Business,Developer,Cybersecurity,Multimedia,Gaming,Home,Clean, andComplete. -
Custom profiles
New profiles can be created directly from the GUI and saved as JSON inprofiles/for later use. -
System Restore Point & Pending Reboot Detection
Optionally creates a Windows Restore Point before installing/debloating and warns about pending Windows updates. -
Bloatware cleanup
SetupHub removes selected Windows Appx and provisioned packages when present. If a package is already absent, it is recorded as skipped rather than treated as an error. -
Hardware and software inventory
The final report includes information about the operating system, CPU, memory, disks, volumes, GPU, network adapters, TPM, Secure Boot, Microsoft Defender status, PowerShell, WinGet, and installed software. -
Deployment reporting
Each run produces HTML, CSV, JSON, and text logs underreports/.
The screenshots below show the main workflow: selecting a software profile, validating the catalog, running the deployment, and reviewing the generated report and inventory.
SetupHub is designed for:
- Windows 10 build 18363 or newer;
- Windows 11;
- PowerShell 5.1 or newer;
- administrator privileges;
- WinGet / Windows Package Manager (bootstrapped automatically if missing);
- Microsoft Store source, when Store-based packages are selected;
- internet access for package validation and download.
Clone or download the repository, then start SetupHub from an elevated shell:
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\SetupHub_Setup.ps1You can also use the launcher:
Start_SetupHub.cmdFor automated deployments (e.g. Intune, MDM, provisioning USB keys):
# Deploy the Developer profile unattended with restore point
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\SetupHub_Setup.ps1 -Profile Developer -NoGui -CreateRestorePoint
# Deploy the Business profile in English without GUI
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\SetupHub_Setup.ps1 -Profile Business -NoGui -Language en
# Deploy custom specific packages without GUI
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\SetupHub_Setup.ps1 -NoGui -InstallIds "Google.Chrome","7zip.7zip","Git.Git"| Parameter | Type | Description |
|---|---|---|
-Profile <name> |
String | Profile to apply (Essential, Business, Developer, Cybersecurity, Multimedia, Gaming, Home, Clean, Complete, or custom profile name). |
-NoGui |
Switch | Run directly in console without launching the WPF interface. |
-CreateRestorePoint |
Switch | Creates a Windows System Restore Point prior to operations. |
-Language <it|en> |
String | Sets UI/console language (it or en). |
-SkipValidation |
Switch | Skips Phase 0 catalog validation. |
-NoInventory |
Switch | Skips hardware and software inventory collection. |
-NoReport |
Switch | Skips generating report files in reports/. |
-InstallIds <id1,id2> |
Array | Specific list of WinGet package IDs to install. |
-BloatIds <id1,id2> |
Array | Specific list of AppX package IDs to remove. |
Each run creates a timestamped report set under the reports folder:
SetupHub_Report_<timestamp>.html
SetupHub_Report_<timestamp>.csv
SetupHub_Report_<timestamp>.json
SetupHub_Log_<timestamp>.txt
SetupHub_SystemInventory_<timestamp>.json
SetupHub_InstalledSoftware_<timestamp>.csv
SetupHub_CatalogAudit_<timestamp>.json
SetupHub_CatalogAudit_<timestamp>.csv
SetupHub_ManualUnsupported_<timestamp>.json
SetupHub_ManualUnsupported_<timestamp>.csv
The report includes:
- installation results and command lines;
- package validation status and exit codes;
- bloatware cleanup results;
- WinGet logs for each package;
- hardware inventory and system information;
- disks, volumes, and network adapters;
- TPM, Secure Boot, and Microsoft Defender status;
- installed desktop software inventory.
SetupHub does not host third-party installers in this repository.
It asks WinGet or Microsoft Store to resolve and install packages from the target machine. This design has two practical consequences:
- the repository remains small and reviewable;
- package availability depends on the target machine, configured sources, vendor manifests, and network conditions.
SetupHub is released under the GNU General Public License v3.0 only.
SPDX identifier:
GPL-3.0-only
See LICENSE for the full license text.
Created and maintained by Pietro Melillo.
- Email:
melillopietro@gmail.com - Website:
https://melillopietro.github.io/ - LinkedIn:
https://it.linkedin.com/in/melillopietro





