Create a WSUS HTML Dashboard with PowerShell and IIS

Create WSUS HTML – This guide explains how to create a WSUS HTML dashboard with PowerShell, automate report generation with Windows Task Scheduler, publish the dashboard through IIS, and troubleshoot common access or static content issues.

Script

Create WSUS HTML – This script generates a one-page WSUS HTML dashboard (groups, KB status & errors). Source: report.ps1 on GitHub.

Create WSUS HTML screenshot

Prepare Folders

Create WSUS HTML – Create the following directories: C:exploit and C:exploitreport. Then copy report.ps1 into C:exploit.

File directory structure

Run Manually (first test)

# 64-bit PowerShell recommended on the WSUS server
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:exploitreport.ps1

Create WSUS HTML – After the first run, verify the output file exists: C:exploitreportdefault.htm.

Schedule Task

Create WSUS HTML – Create a Scheduled Task to refresh the dashboard automatically (hourly in labs; daily or every few hours in production). Run as SYSTEM with highest privileges.

schtasks /Create /TN "WSUS HTML Report" ^
  /TR "C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:exploitreport.ps1" ^
  /SC HOURLY /RU "SYSTEM" /RL HIGHEST /F
Task scheduler configuration

Share the Dashboard (IIS)

Create WSUS HTML – In IIS on the WSUS server, create a virtual directory (e.g., report) pointing to C:exploitreport. Ensure Static Content is enabled.

IIS virtual directory setup

Create WSUS HTML – Optionally, create a second virtual directory (e.g., script) targeting C:exploitscript if you expose helper files.

IIS extra virtual directory

View the Report

Create WSUS HTML – Browse to http://localhost/report (or your server name). The dashboard should load instantly.

WSUS HTML dashboard

Notes & Troubleshooting

  • Run as Administrator on the WSUS server; use the 64-bit PowerShell path shown above.
  • Module requirement: Install-Module PSWriteHTML -Scope CurrentUser. If the server is offline, remove -Online in the script.
  • WSUS API must be available: either the UpdateServices module or %ProgramFiles%Update ServicesToolsMicrosoft.UpdateServices.Administration.dll.
  • If the page is blank via IIS, check NTFS permissions on C:exploitreport (read for IIS AppPool identity) and MIME types for .js/.css.