A WSUS installation comes down to five decisions: install the Windows Server Update Services role, select one supported database backend, assign a secure content location, complete post-installation tasks, and run the configuration wizard with a narrow initial product and language scope. The installation is complete only after the WSUS console opens, the service and WsusPool are healthy, and the first synchronization succeeds.
This guide stops at that point. Group Policy, computer groups, approval rings, automatic approval rules, recurring maintenance, and synchronization troubleshooting belong to the related RackNotes WSUS guides linked throughout.
This article covers WSUS installation, database backend selection, content storage, Server Manager and PowerShell installation, TLS, the configuration wizard, and first-sync verification on Windows Server 2016 through 2025. Client targeting, computer groups, and approval rules are covered in WSUS Configuration. Recurring synchronization failures are covered in WSUS Sync Failed. Ongoing WsusPool tuning and SUSDB maintenance are covered in WSUS Maintenance. For architecture and deprecation status, see WSUS on Windows Server.
WSUS is deprecated and no longer receives new features, but Microsoft continues to support existing production capabilities according to the Windows Server lifecycle. Evaluate new deployments against modern update-management options, then follow this guide when WSUS remains the deliberate on-premises choice.
WSUS Installation Prerequisites and Sizing
- Windows Server installed and domain-joined (workgroup acceptable for isolated deployments); this procedure assumes a clean WSUS installation with no existing configuration or SUSDB to preserve
- Local administrator access; current cumulative updates installed and no pending reboot
- 1.4 GHz x64 CPU minimum (2 GHz+ recommended), 2 GB RAM beyond the OS and other roles, 40 GB+ disk recommended, 100 Mbps network (1 Gbps recommended)
- Outbound 80/443 to Microsoft Update for a top-level server, or the upstream’s configured WSUS ports (typically 8530/8531) for a downstream server
- A dedicated non-C: NTFS volume recommended for WSUS content storage, with free space confirmed
- Decided in advance: WID, local SQL, or remote SQL; local content storage or Microsoft-hosted payloads
Microsoft’s documented minimums are 20 GB to store updates, 40 GB recommended. For Windows releases serviced through on-premises Unified Update Platform content, plan for roughly 10 GB of additional storage per Windows version and processor architecture – confirm which managed releases currently use UUP before applying that estimate to your full scope. As a field estimate, a narrowly scoped and regularly maintained content store stays significantly smaller than a broadly configured or neglected one; monitor actual volume rather than treating one size estimate as a design limit.
Check the current state before installing anything:
Get-ComputerInfo |
Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
Get-Volume |
Select-Object DriveLetter, FileSystem, SizeRemaining, Size
Get-WindowsFeature -Name UpdateServices*Confirm the OS build reflects a current cumulative update (for correct UUP content handling), the content volume is NTFS with adequate free space, and no reboot is already pending before you begin.
Choose the Architecture Before Installing
WID or SQL Server
Microsoft supports WID, and supported editions of SQL Server Standard, Enterprise, or Express as the WSUS database. WID (Windows Internal Database) is the default and the right choice for most single-server deployments on Windows Server 2016 through 2022 – built in, no additional licensing, installs automatically with the role. WID is local-access only; you can still connect with SSMS or sqlcmd via the named pipe \\.\pipe\Microsoft##WID\tsql\query. There’s no enforced per-database size cap in WID – that limit belongs to SQL Server Express, not WID. The one operational limitation that matters: WID cannot be used for network load-balanced WSUS configurations.
SQL Server Express is supported and free, but enforces a hard 10 GB per-database limit (error 1827 when exceeded), and Microsoft notes it offers no appreciable single-server performance benefit over WID. Don’t select Express merely because WID is deprecated – it adds a separately serviced SQL instance without removing the database-size risk. Use it only when normal SQL tooling or an existing SQL operational model is a concrete requirement and SUSDB size is demonstrably bounded. TCP/IP network access is disabled by default on a new Express install; enable it, restart the SQL Server service, and configure the required port and firewall rules before using it as a remote WSUS database.
SQL Server Standard or Enterprise is required for NLB/high-availability WSUS, when SUSDB may exceed the SQL Express 10 GB limit, or when the organization already operates a managed SQL platform. NLB/HA WSUS requires a full SQL Server deployment rather than WID – all front ends share the same SUSDB and content location, run the same Windows Server and cumulative-update level, and complete post-installation serially.
Windows Server 2025: WID remains available with WSUS on Server 2025, but WID is itself deprecated and Microsoft says it will be removed from Windows in a future release. For a new Server 2025 deployment, document why WID remains acceptable for the planned server lifetime and record a migration path.
Migrating an existing deployment from WID to SQL is a documented, supported manual process – stop IIS and WSUS, detach SUSDB from WID, attach it to SQL Server, update permissions, and change the WSUS database registry settings. Microsoft doesn’t provide an equivalent supported reverse-migration workflow in current documentation – don’t design a deployment around an assumed SQL-to-WID rollback.
| Scenario | Recommended direction |
|---|---|
| Single WSUS server, no existing SQL requirement | WID |
| Branch/downstream servers | Usually WID |
| Existing managed SQL platform | Supported SQL Server |
| Need NLB/shared SUSDB | Full SQL Server, not WID |
| Clearly bounded small database with required SQL tooling | SQL Express can be considered |
| Server 2025 using WID | Supported today; document deprecation and migration plan |
Content storage: local store or Microsoft-hosted payloads
Use a dedicated local NTFS volume where practical and avoid NTFS compression – WSUS can use a path on C:, but separating the content store simplifies capacity management, backup, migration, and recovery. Let WSUS create and configure the content structure where possible; if the directory is created, moved, or restored manually, verify the documented WSUS service-account permissions rather than applying broad ACLs to the whole volume.
| Model | Server stores payloads | Client downloads from |
|---|---|---|
| Local WSUS storage | Yes | WSUS |
| Metadata-only / Microsoft-hosted content | No | Microsoft Update, after approval |
The second model still requires the WSUS database and metadata synchronization – it only changes where payloads come from. Clients must be allowed to reach Microsoft Update directly for this model to work. This choice is made after installation, under Options -> Update Files and Languages -> Update Files – not during role installation. If content download issues appear later regardless of model, see WSUS Not Downloading Updates.
Microsoft Update or an upstream WSUS server
A top-level server synchronizes directly from Microsoft Update. A downstream server synchronizes from an existing upstream WSUS server instead, over that upstream’s configured ports (typically 8530/8531) – this choice is made in the configuration wizard, covered below.
WSUS Installation via Server Manager
- Open Server Manager -> Manage -> Add Roles and Features
- Role-based installation on the local server
- Select Windows Server Update Services and accept the additional IIS features when prompted
- In role services, keep WSUS Services checked. For the database: keep WID Connectivity for WID, or uncheck it and check SQL Server Connectivity for SQL
- Provide a valid content directory – enter the path to your dedicated volume, e.g.
D:\WSUS - Install. When it completes, click Launch Post-Installation Tasks in the results pane and wait for “Configuration successfully completed”
Restart the server only if Server Manager reports a restart is required. The local-versus-Microsoft-hosted payload decision isn’t made here – it’s a separate step under Update Files and Languages, covered above.
WSUS Installation via PowerShell
Use Microsoft’s documented parent-role command rather than listing individual child features – it’s shorter, less version-sensitive, and the official supported path for a normal WID installation:
$result = Install-WindowsFeature `
-Name UpdateServices `
-IncludeManagementTools
$result | Select-Object Success, RestartNeeded, FeatureResultIf RestartNeeded is Yes, restart the server before running WsusUtil.exe postinstall – running post-install against a server that still needs a reboot is a common source of confusing partial failures. Alternatively, use Microsoft’s combined command and let it handle the restart:
Install-WindowsFeature -Name UpdateServices -IncludeManagementTools -RestartFor a SQL backend, install the role services (validate this command on your target Windows Server version first):
Install-WindowsFeature `
-Name UpdateServices-Services, UpdateServices-DB `
-IncludeManagementToolsAfter any pending restart is handled, run post-install. WID:
& "$env:ProgramFiles\Update Services\Tools\WsusUtil.exe" `
postinstall `
CONTENT_DIR=D:\WSUSSQL (local instance):
& "$env:ProgramFiles\Update Services\Tools\WsusUtil.exe" `
postinstall `
SQL_INSTANCE_NAME="SERVERNAME\INSTANCENAME" `
CONTENT_DIR=D:\WSUSRun this elevated, quote values containing spaces, and capture the output. Don’t rerun it repeatedly against an unknown partial state – if it fails, check SoftwareDistribution.log, Event Viewer, installed role services, IIS, and database connectivity before retrying.
Remote SQL instance – prerequisites and security note. Create and validate the supported SQL Server instance before running post-installation. Checklist: the database server must not be a domain controller; the WSUS server must not run Remote Desktop Services; both systems must be in the same or trusted AD domains with synchronized time; the setup account needs sufficient SQL permissions to create and configure SUSDB (Microsoft’s remote SQL procedure uses sysadmin, or the combination of dbcreator and diskadmin); the remote instance must allow the WSUS server’s computer account (DOMAIN\WSUSSERVER$) access, since WSUS supports Windows authentication only; TCP/IP must be enabled with a static port or SQL Browser configured, and the required firewall path open. Microsoft documents the WSUS-to-remote-SQL connection as not protected by TLS – keep this traffic on a trusted, controlled network segment, or an isolated segment with IPsec.
Verify the installation:
Get-WindowsFeature -Name UpdateServices* | Where-Object Installed
Get-Service WsusServiceConfigure Ports and TLS
By default, the WSUS Administration website uses port 8530 for HTTP and 8531 for HTTPS – custom ports are possible, so use the ports actually configured for your deployment. On a non-TLS deployment, 8530 carries all WSUS service traffic and payloads. On a TLS deployment, WSUS uses 8531 for protected metadata/service traffic and keeps 8530 for update payloads and the specific virtual roots that must remain HTTP. SSL in WSUS encrypts metadata only – update payloads always transfer over HTTP and are protected by signed hash verification, not transport encryption.
| Component | Direction | Ports |
|---|---|---|
| Clients to WSUS server | Outbound from client | 8530 (always), 8531 (if TLS) |
| Downstream WSUS to upstream WSUS | Outbound from downstream | Upstream’s configured WSUS ports |
| Upstream WSUS to Microsoft Update | Outbound from WSUS server | 80 and 443 (no inbound needed) |
Refer to Microsoft’s current documentation for the required Microsoft Update FQDNs rather than maintaining a static list.
Certificate requirements: use one canonical WSUS DNS name in Group Policy and wsusutil configuressl. The certificate SAN must include that name, plus any additional hostname intentionally supported for WSUS access. The issuing CA must be trusted in the Local Computer certificate store on clients and downstream servers – not the user certificate store.
- Obtain and install the certificate in IIS (bind to the WSUS Administration site on port 8531)
- Keep the HTTP binding on 8530 – removing it breaks payload downloads
- In IIS, set Require SSL on these five virtual directories only:
ApiRemoting30,ClientWebService,DSSAuthWebService,ServerSyncWebService,SimpleAuthWebService - Require SSL must not be enabled on
Content,Inventory,ReportingWebService, orSelfUpdate– enabling it on these breaks payload delivery and client self-update - Run the following, passing the WSUS DNS name clients use in Group Policy – not a certificate thumbprint or display name:
& "$env:ProgramFiles\Update Services\Tools\WsusUtil.exe" configuressl wsus.contoso.com - Update client Group Policy to point to
https://wsus.contoso.com:8531
Verify afterward:
Get-WebBinding -Name 'WSUS Administration'
Get-WsusServer -Name wsus.contoso.com -PortNumber 8531 -UseSslThen confirm the certificate name, chain, expiry, and Local Computer trust with certlm.msc. Common failure: the issuing CA is trusted only in the administrator’s Current User store – the administrator sees it as trusted while the computer account, IIS, clients, or downstream servers do not.
Run the Configuration Wizard
Open the WSUS console via Server Manager -> Tools -> Windows Server Update Services. The Post-Deployment Configuration Wizard launches on first open. This section covers a minimum working initial scope – final product strategy, approval rules, and deployment rings belong in the WSUS Configuration guide linked in the scope note above.
Upstream server: “Synchronize from Microsoft Update” for a standalone or top-level server, or “Synchronize from another Windows Server Update Services server” for a downstream – enter the upstream FQDN and port, and check “This is a replica of the upstream server” only for intentional Replica mode.
Proxy: configure this page only if the WSUS server must use a proxy to reach Microsoft Update, supplying credentials only when that proxy requires authentication. Start Connecting retrieves the list of available products, classifications, and languages – this takes a few minutes.
Languages: select only what your environment requires, always including English, since updates are built on English base packages. Products: add only the operating systems you actually manage – don’t select the top-level Windows product family unless you intend to synchronize every product below it. Product labels in the console can differ from the public release name; select the entry that explicitly applies to the managed release. For a current SMB environment this may mean Windows 11 and Windows Server 2019, 2022, and 2025. Windows 10 version 22H2 reached end of support on October 14, 2025 – select Windows 10 products only for supported LTSC editions, enrolled ESU devices, or a documented legacy requirement.
Every enabled product increases the metadata WSUS stores and processes. Update payloads download separately according to local-storage and approval settings, so selecting a product doesn’t immediately queue every update file.
Recommended starting classifications: Critical Updates, Security Updates, Updates. Add Definition Updates if WSUS distributes Microsoft Defender intelligence. Leave Drivers disabled during initial deployment – driver synchronization remains available (Microsoft reversed its planned April 2025 removal), but Drivers adds substantial metadata volume; enable it only with a tested driver-management process. Add Upgrades only when Windows feature upgrades through WSUS are intentional. These are a practical starting point, not a technical minimum for synchronization to succeed – keep initial scope narrow and expand deliberately using the long-term strategy in WSUS Configuration.
Sync schedule: configure automatic synchronization for an off-peak time, such as daily at 3:00 AM. On the final wizard page, select Begin initial synchronization to start immediately, or start it later from the console. Let the initial synchronization complete without restarting IIS, the WSUS service, or the server unless troubleshooting requires it – an interruption is recoverable but delays validation. You can close the console; synchronization continues on the server.
Verify the First Synchronization
Check role and service health first:
Get-WindowsFeature -Name UpdateServices* | Where-Object Installed
Get-Service WsusServiceThen IIS:
Import-Module WebAdministration
Get-WebAppPoolState -Name WsusPool
Get-Website -Name 'WSUS Administration'
Get-WebBinding -Name 'WSUS Administration'Then the API – a successful connection confirms the administration service responds, but it doesn’t by itself confirm synchronization, content download, approvals, or client reporting:
Import-Module UpdateServices
Get-WsusServer -Name localhost -PortNumber 8530
# For TLS:
Get-WsusServer -Name wsus.contoso.com -PortNumber 8531 -UseSslThen capture the effective configuration – confirm the exact property names on your target release before relying on this:
$server = Get-WsusServer
$config = $server.GetConfiguration()
$config | Select-Object SyncFromMicrosoftUpdate,
UpstreamWsusServerName,
UpstreamWsusServerPortNumber,
UpstreamWsusServerUseSsl,
LocalContentCachePath,
HostBinariesOnMicrosoftUpdateFinally, check the Synchronizations view in the console – the most recent entry should show “Succeeded” with a count of updates found, start/end timestamps advanced, and Updates -> All Updates populated with metadata. For sync failures: open the failed entry in the console, read %ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log, and check Event Viewer -> Application -> source Windows Server Update Services. The WindowsUpdateClient/Operational log is client-side and isn’t the primary log for server-side sync failures – see Windows Server Event Log Troubleshooting for general log-reading technique. If the first sync itself keeps failing, the detailed endpoint/TLS/proxy/firewall diagnostic lives in the WSUS Sync Failed guide linked in the scope note.
As an optional network preflight only – not proof of a working client – Test-NetConnection confirms TCP reachability alone; it doesn’t prove a correct HTTP response, TLS trust, WSUS API operation, client GPO, scan success, or reporting. Full client validation happens after Group Policy is configured, covered in WSUS Configuration.
Before onboarding clients, record the WsusPool state and review Microsoft’s current WSUS best-practices baseline. Large metadata sets and scan storms can require a higher queue length and disabled IIS recycling/memory limits, but setting memory to unlimited can allow very high RAM consumption – apply the complete baseline deliberately on a dedicated server and monitor it. The WSUS Console Slow or Crashing guide owns the full tuning and recovery workflow:
Import-Module WebAdministration
Get-WebAppPoolState -Name WsusPoolCommon WSUS Installation Failures
“The operation cannot be completed because the server requires a restart.” Reboot and retry. If it persists after a confirmed clean reboot, check event logs and servicing state before assuming a user-rights cause.
For WID, confirm UpdateServices-WidDB is installed. For SQL, verify the exact server and instance name, SQL service state, enabled network protocol, SQL Browser or static port configuration, DNS resolution, firewall access, and the installed UpdateServices-DB role service. Then rerun WsusUtil.exe postinstall with the correct backend parameters.
Don’t stop PID 4 – that’s the System process hosting HTTP.sys, and netstat alone doesn’t identify which IIS binding or HTTP.sys URL reservation actually owns the port:
netstat -ano | findstr :8530to see what’s listeningnetsh http show servicestateandnetsh http show urlaclto identify the owning registrationGet-WebBindingandGet-Website(WebAdministration module) to check IIS site bindings- Correct the conflicting binding or URL reservation through the owning application – don’t stop the System process
Confirm WsusService is running, WsusPool is started, and the console is connecting to the correct hostname and port – a freshly installed server’s console defaults to localhost.
For a post-install 0x80070003 IIS COMException, or a .NET Framework 3.5/Features on Demand error while installing prerequisites: capture the full post-install log and Event Viewer message, verify installed WSUS/IIS role services, and identify the missing path rather than recreating components from the HRESULT alone. A servicing-source error on the WSUS server itself while adding roles doesn’t by itself prove WSUS is misconfigured – resolve the server’s servicing source before continuing installation.
Next Steps
A healthy WSUS server can open the console and complete a successful synchronization – that’s where this guide stops. Client targeting, deployment rings, and approval automation are covered in WSUS Configuration. Ongoing SUSDB and disk maintenance are covered in WSUS Maintenance (both linked in the scope note above). If content later shows as not downloading, see the WSUS Not Downloading Updates guide linked earlier in this article.
FAQ
Is WSUS installation still supported on Windows Server 2025?
WSUS is deprecated and no longer receives new features, but it remains available and supported for production use according to the Windows Server lifecycle.
Should I use WID or SQL Server?
Use WID for a straightforward single-server deployment without an existing SQL or NLB requirement. Use SQL when the organization already operates it, needs NLB/shared SUSDB, or has a clear database-management requirement. Don’t choose SQL Express merely as a supposed performance upgrade from WID.
Can WSUS clients download update files from Microsoft instead of the WSUS server?
Yes. WSUS can store metadata locally while clients download approved payloads directly from Microsoft Update. Clients then need internet access to the required Microsoft endpoints.
How long does the first WSUS synchronization take?
Microsoft states initial synchronization can take more than an hour; real duration depends on products, classifications, languages, proxy, hierarchy, and connectivity to Microsoft Update.
Does enabling TLS remove the need for port 8530?
No. A standard TLS deployment uses 8531 for protected metadata/service traffic and keeps 8530 for update payloads and the WSUS virtual roots that must remain HTTP.
Official Microsoft Sources
- Install the WSUS server role
- Configure WSUS
- Plan your WSUS deployment
- Migrate WSUS database from WID to SQL
- WSUS best practices and WsusPool settings
- WSUS overview and deprecation status
- Deprecated Windows Server features, including WID
- Microsoft reversal of planned WSUS driver synchronization deprecation
WSUS on Windows Server
Installation & Configuration · Maintenance · Sync Failures · Content Download · Client Reporting · Console Recovery