keepcalculator

06 Numbers and Powers

WSUS Server & Computer Reports: Step-by-Step

Card No. 06·63002 · Updated · Standard formula, shown below

This guide shows you how to generate reports from your Windows Server Update Services (WSUS) server and the managed computers in your environment. You’ll learn how to create built-in reports, export them, and use PowerShell to pull custom data for compliance and troubleshooting. Before you start, you’ll need administrative access to the WSUS server and, if you plan to use PowerShell, the WSUS console installed on the machine where you run the commands.

What You’ll Need

  • Administrator credentials on the WSUS server (or a machine with the WSUS console installed).
  • WSUS server role installed and configured.
  • For PowerShell reports: the WSUS console installed on the machine where you’ll run scripts (this installs the required .NET assemblies).
  • Network access from the reporting machine to the WSUS server (port 8530 for HTTP, 8531 for HTTPS by default).

Step-by-Step

Generate Reports Using the WSUS Console

  1. Open the WSUS Console: On the server, open Server Manager, then click Tools and select Windows Server Update Services. If you’re on a remote machine, open the WSUS console from the Start menu (search “Windows Server Update Services”).
  2. Connect to the server: If prompted, enter the name of your WSUS server and choose the connection method (HTTP or HTTPS). Click Connect.
  3. Navigate to Reports: In the left pane, expand your server node and click on Reports. You’ll see a list of built-in report types.
  4. Choose a report type: For a general overview, select Update Compliance or Computer Status. For a detailed per-computer view, pick Computer Status. For update-specific details, use Update Detailed Status.
  5. Set report parameters: Each report opens with a dialog. For Computer Status, select the computer group (e.g., “All Computers” or a custom group), choose a time period (e.g., “Last 30 days”), and decide whether to include computers that have never reported. For Update Compliance, choose the update classification and product.
  6. Run the report: Click OK. The report will generate in the console, showing a summary and a detailed table.
  7. Export the report: To save or share it, click the Save icon (floppy disk) in the toolbar, or right-click the report and choose Export. Select a format: PDF, Excel (CSV), or Word. Choose a location and click Save.

Generate Reports Using PowerShell

  1. Open PowerShell as Administrator: Right-click Start and choose Windows PowerShell (Admin).
  2. Load the WSUS assemblies: Run the following commands to load the required .NET classes:
    [void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
    $wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer("wsus-server-name", $false, 8530)

    Replace wsus-server-name with your server’s hostname. The $false means HTTP; use $true for HTTPS.

  3. Get computer status: To list all computers and their last reported status, run:
    $computers = $wsus.GetComputerTargets()
    $computers | Select-Object FullDomainName, LastReportedStatusTime, LastSyncTime, ClientVersion | Format-Table -AutoSize

    This shows when each computer last contacted the server and its WSUS client version.

  4. Get update compliance per computer: For a detailed report of which updates are installed or missing, run:
    $computers = $wsus.GetComputerTargets()
    $report = @()
    foreach ($c in $computers) {
        $summary = $c.GetUpdateInstallationSummary()
        $report += [PSCustomObject]@{
            Computer = $c.FullDomainName
            Installed = $summary.InstalledCount
            Failed = $summary.FailedCount
            NotInstalled = $summary.NotInstalledCount
            Unknown = $summary.UnknownCount
        }
    }
    $report | Format-Table -AutoSize
  5. Export to CSV: Pipe the output to Export-Csv to create a file:
    $report | Export-Csv -Path "C:\Reports\WSUS_Compliance.csv" -NoTypeInformation
  6. Generate a report for a specific computer group: If you have custom groups, you can filter by group name:
    $group = $wsus.GetComputerTargetGroups() | Where-Object {$_.Name -eq "Sales"}
    $computers = $group.GetComputerTargets()
    $computers | Select-Object FullDomainName, LastReportedStatusTime

Common Mistakes

  • Using the wrong port in PowerShell: If you use the default HTTP port 80 instead of 8530, the connection will fail. Always verify your WSUS configuration (in the console, go to Options > Update Source and Proxy Server).
  • Not loading the assemblies: Forgetting to run the LoadWithPartialName command will result in a “Type not found” error.
  • Filtering by group but using the wrong group name: Group names are case-sensitive in PowerShell. Use GetComputerTargetGroups() to list exact names.
  • Exporting to a non-existent folder: PowerShell’s Export-Csv will fail if the path doesn’t exist. Create the folder first or use a valid path.
  • Running the console report without selecting a time period: The default might be “Last 30 days”, but if you want all data, you need to select “All time” in the report parameters.

Tips

  • Schedule reports: Use PowerShell scripts with Task Scheduler to generate CSV reports automatically (e.g., weekly) and save them to a shared folder.
  • Use the WSUS API for custom reports: The PowerShell approach is highly flexible—you can pull any data available in the console, such as update approvals, download status, or per-update compliance.
  • Check the last reported time: A computer that hasn’t reported in over 7 days might be offline or have a broken client. Use the report to spot these.
  • Export to Excel-friendly CSV: Use -Encoding UTF8 in Export-Csv to avoid character issues in Excel.
  • Use the built-in email reports: WSUS can email reports directly if you configure SMTP in Options > E-Mail Notifications. This is a quick way to get regular updates.

Troubleshooting

  • Report is empty or shows no data: This usually means the WSUS server hasn’t received any data from clients. Check that clients are configured to contact the WSUS server (via Group Policy or registry) and that they can reach it. Also verify the time period in the report includes the dates when clients reported.
  • PowerShell connection fails: If you get an error like “Cannot connect to the remote server”, verify the server name, port, and protocol. Test with Test-NetConnection wsus-server -Port 8530. Also ensure the WSUS service is running on the server.
  • Export to PDF/Excel fails: The WSUS console uses built-in viewer controls. If export fails, try exporting to CSV (which is more reliable) and then open that in Excel. Or try a different format.
  • Group not found in PowerShell: If GetComputerTargetGroups() returns nothing, you might be connected to a replica server that doesn’t have groups. Groups are only on the upstream server.
  • ClientVersion is blank: This happens when the client has never successfully reported. Check client connectivity and the Windows Update service on the client.

Frequently Asked Questions

Can I generate reports for a specific computer group?

Yes, in the WSUS console, when you run a report, you can select a specific computer group in the parameters. In PowerShell, use the GetComputerTargetGroups() method to filter.

How often should I generate WSUS reports?

It depends on your needs. Daily reports are useful for troubleshooting, while weekly or monthly reports are good for compliance tracking. You can automate with Task Scheduler.

What does “Last Reported Status Time” mean?

This is the last time the client computer contacted the WSUS server to report its update status. If it’s older than a few days, the computer may be offline or have WSUS client issues.

Can I export WSUS reports to Excel?

Yes, you can export to CSV, which opens in Excel. In the console, choose “Excel” or “CSV” as the export format. In PowerShell, use Export-Csv.

Why don’t I see all computers in the report?

Computers only appear after they have contacted the WSUS server at least once. If a computer is missing, check its Windows Update settings and network connectivity to the WSUS server.

Is it possible to get a report of updates that failed to install?

Yes, the “Update Detailed Status” report shows failed updates. In PowerShell, you can filter by FailedCount in the installation summary.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.

More cards in this drawer

The whole Numbers and Powers drawer →