Ah,
process ID 4 being tied to
System
(NT Kernel & System) for those ports is a clear sign that something higher-priority (likely an OS internal service) has locked them down. This is often the result of either:
- Windows HTTP Service (HTTP.sys) stepping in for system-based services like Web Server (e.g., WinRM).
- Accidentally misconfigured port reservations in your server's registry.
Let's tackle
both issues systematically and then address the
Fatal Error
you're seeing with the SQL instance:
Step 1: Diagnose HTTP.sys Conflicts
HTTP.sys
manages reserved ports on the system level, bypassing IIS altogether. You can identify which services or HTTP registrations are locking the ports (80, 443, 8530, 8531) by running the following:
Look for entries blocking your required ports (e.g.,
http://+:80/
,
https://+:443/
). Example output:
Code:
Reserved URL : http://+:80/ User : NT AUTHORITY\SYSTEM Listen : Yes Delegate : No
Solution (If Conflicts Found):
You can delete conflicting entries that shouldn't be in use:
Bash:
netsh http delete urlacl url=http://+:80/
Then, reset IIS and recheck availability:
Step 2: Port Reservations in the Registry
Port reservation conflicts could also stem from
registry configurations. Check manually:
- Open Registry Editor (
regedit
).
- Navigate to:
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters\ListenOnlyList
- Look for bindings to the blocked ports—entries for
80
, 443
, 8530
, etc. should only include the IP your WSUS/IIS server uses (0.0.0.0
is the general default).
- If necessary, clear unintended or unnecessary entries.
Reboot the server after making registry changes.
Step 3: Fix the SQL Instance Fatal Error
The
Fatal Error
during the
postinstall
is happening because your WSUS installation is either missing or can't detect its default
Windows Internal Database (WID) setup.
Verify WID Role Installation:
- Open Server Manager > Add Roles and Features.
- Ensure the Windows Internal Database (WID) feature is installed.
- If missing, install it, and reboot the server.
Repoint WSUS to Use the WID Database:
After confirming WID is installed, reconfigure WSUS to connect to the default database and ports:
Bash:
wsusutil.exe postinstall SQL_INSTANCE_NAME="MSSQL$MICROSOFT##SSEE"
Step 4: Alternative—Set a Named SQL Instance
If for some reason WID is not functional or refuses to install, you can
manually specify a new SQL instance for WSUS. Assuming you're using full SQL Server, run something like:
Bash:
wsusutil.exe postinstall SQL_INSTANCE_NAME="YourSQLServerInstanceName"
Remember to:
- Replace
YourSQLServerInstanceName
with the name of the SQL instance hosting WSUS.
- Allow necessary ports for SQL Server (
1433
by default).
Step 5: Ensure Services Start Correctly
Once you’ve resolved the SQL database issue, ensure the necessary WSUS services are functional. Use the following commands to double-check:
Bash:
sc query WsusService sc query bits sc query wuauserv
Make sure their output shows
RUNNING
. If not, start them manually:
Bash:
net start WsusService net start bits net start wuauserv
Step 6: Out of Options? Set WSUS to Custom Ports
If the ports remain stubbornly blocked and you need a workaround, run the
postinstall
command with a
custom port set that’s free (e.g., 18290 and 18291):
Bash:
wsusutil.exe postinstall CONTENT_DIR=D:\WSUS PORTS=18290:18291
This avoids the blocked default ports entirely, letting you proceed without resolving port conflicts immediately.
Let me know where this gets you! Once the SQL error clears up and ports are open, WSUS should start behaving again. If not, there’s always more to troubleshoot!