- Thread Author
- #1
Upgraded broken WSUS 2022 server to 2025 from previous case not resolved Upon trying to install WSUS now it is failing with The System cannot find the path specified. The installation log is providing this error.
2025-01-09 09:08:41 Marking PostInstall done for UpdateServices-Database in the registry...
2025-01-09 09:08:41 Starting service W3SVC
2025-01-09 09:08:41 Configuring IIS...
2025-01-09 09:08:41 Start: ConfigureWebsite
2025-01-09 09:08:41 System.Runtime.InteropServices.COMException (0x80070003): The system cannot find the path specified.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
at Microsoft.UpdateServices.Administration.UseCustomWebSite..ctor()
at Microsoft.UpdateServices.Administration.PostInstall.ConfigureWebsite(Int32 portNumber)
at Microsoft.UpdateServices.Administration.PostInstall.Run()
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
2025-01-09 09:08:41 Marking PostInstall done for UpdateServices-Database in the registry...
2025-01-09 09:08:41 Starting service W3SVC
2025-01-09 09:08:41 Configuring IIS...
2025-01-09 09:08:41 Start: ConfigureWebsite
2025-01-09 09:08:41 System.Runtime.InteropServices.COMException (0x80070003): The system cannot find the path specified.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
at Microsoft.UpdateServices.Administration.UseCustomWebSite..ctor()
at Microsoft.UpdateServices.Administration.PostInstall.ConfigureWebsite(Int32 portNumber)
at Microsoft.UpdateServices.Administration.PostInstall.Run()
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
- Joined
- Mar 14, 2023
- Messages
- 43,822
The recurring "The system cannot find the path specified" (error code
This is particularly common after:
0x80070003
) during WSUS installation and configuration clearly stems from an issue with IIS configuration—specifically, WSUS is attempting to configure its IIS website or virtual directories but is failing due to missing or inaccessible paths during the post-installation process.This is particularly common after:
- A faulty WSUS upgrade (from 2022).
- Corrupted IIS settings.
- Directory or permissions issues.
Root Cause Hypothesis
- Broken IIS Configuration:
- Missing or improperly deleted IIS virtual directories such as Content or SelfUpdate during the WSUS upgrade attempt.
- WSUS may be trying to create or reconfigure these, but the path does not exist or permissions are misaligned.
- Leftover Registry Entries:
- Previous faulty configurations from WSUS 2022 are conflicting with the new paths in WSUS 2025.
- .NET or Component Services Issues:
- WSUS relies heavily on IIS and .NET Framework. If .NET components or application pools are missing or broken, WSUS will fail during HTTP configurations.
Resolution Plan
Step 1: Repair IIS Configuration
- Inspect IIS Settings:
- Open IIS Manager and check for:
- The WSUS Administration site.
- Existing virtual directories such as:
Content
(points to WSUS content folder).SelfUpdate
(points toC:\Program Files\Update Services\SelfUpdate
).
- Open IIS Manager and check for:
- Manually Create Directories (If Missing):
If these directories do not exist:- Create a folder for WSUS Content:
Code:plaintext D:\WSUS\WSUSCONTENT
- Create a folder for SelfUpdate:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
- Create a folder for WSUS Content:
- Ensure proper permissions:
- Grant NETWORK SERVICE and IIS_IUSRS full control on:
D:\WSUS\WSUSCONTENT
C:\Program Files\Update Services\SelfUpdate
.
- Grant NETWORK SERVICE and IIS_IUSRS full control on:
Step 2: Validate IIS Role and Dependencies
- Confirm IIS configuration by running:
Code:powershell Get-WindowsFeature -Name Web-Server, Web-Mgmt-Tools, Web-WebServer
- If IIS is missing or broken, reinstall it:
Code:powershell Install-WindowsFeature Web-Server, Web-WebServer, Web-Mgmt-Tools, Web-Net-Ext45, Web-Windows-Auth
- If IIS is missing or broken, reinstall it:
- Check and reset IIS:
Code:bash iisreset
- Reboot the system to ensure IIS changes take effect.
Step 3: Ensure Required .NET Framework
- Verify .NET Features:
Run:
Code:powershell Get-WindowsFeature -Name NET-Framework-Core, NET-Framework-45-Core, NET-Framework-45-Features
- If missing, reinstall:
Code:powershell Install-WindowsFeature NET-Framework-45-Features
- If missing, reinstall:
- Repair .NET Framework:
If .NET appears intact but may be broken:
Code:bash dism /online /cleanup-image /restorehealth sfc /scannow
Step 4: Clean Up Old WSUS Installations
The upgrade failure may have left conflicting artifacts in WSUS’s configuration.- Remove WSUS:
- Uninstall all WSUS components if still partially installed:
Code:powershell Remove-WindowsFeature -Name UpdateServices, UpdateServices-Services, UpdateServices-DB
- Uninstall all WSUS components if still partially installed:
- Delete WSUS Folders:
- Remove all remnants of WSUS to reset the installation:
- Delete:
Code:C:\Program Files\Update Services D:\WSUS\WSUSCONTENT
- Delete:
- Remove all remnants of WSUS to reset the installation:
- Clean WSUS Registry:
- Open Registry Editor (
regedit
) and navigate to:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
- Export a backup and delete the entire key.
- Open Registry Editor (
Step 5: Retry WSUS Installation
After cleaning the system, reinstall WSUS:- Install WSUS via Server Manager or PowerShell:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
- After installation, run WSUS postinstall:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
Replace SQL_INSTANCE_NAME with your SQL Server instance (or use WID if applicable).
Advanced Debugging If Failure Persists
Step 6: Check WSUS Setup Logs for Details
The WSUS setup log will pinpoint missing paths or specific failures in IIS or file creation.- Navigate to:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
- Look for:
- Specific paths that cannot be found.
- Directory or virtual directory creation errors.
Step 7: Recreate IIS Virtual Directories
- If the log indicates missing IIS virtual directories, manually add them:
- Open IIS Manager and right-click on WSUS Administration site.
- Add virtual directories:
- Alias:
Content
-> Physical Path:D:\WSUS\WSUSCONTENT
- Alias:
SelfUpdate
-> Physical Path:C:\Program Files\Update Services\SelfUpdate
- Alias:
- Restart the IIS service:
Code:plaintext C:\Program Files\Update Services\SelfUpdate
Key Checklist
- Verify IIS directory paths (
C:\inetpub\wwwroot
and WSUS folders). - Ensure permissions for
NETWORK SERVICE
andIIS_IUSRS
. - Remove stale registry entries for WSUS or IIS during cleanup.
- Check WSUSSetup.log for specific failure points.
Let Me Know
If the installation works after these steps, great! If the error persists, share the relevant lines from the WSUSSetup.log, and we’ll pinpoint the exact failure cause together.- Thread Author
- #3
- Joined
- Mar 14, 2023
- Messages
- 43,822
The command to run the WSUS post-installation is as follows:
Let me know how it goes! If you encounter errors or new issues during the post-install, feel free to share the log output, and I’ll help troubleshoot further.
Bash:
wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="YourSQLInstanceName"
Command Breakdown
wsusutil.exe
: The tool used to configure and manage WSUS operations.postinstall
: This is the specific action to complete WSUS configuration after the main role and features have been installed.CONTENT_DIR="D:\WSUS\WSUSCONTENT"
:- Specifies the directory where WSUS will store update files.
- Replace
D:\WSUS\WSUSCONTENT
with your desired path. Ensure this path exists beforehand and proper permissions are set (e.g., forNETWORK SERVICE
andIIS_IUSRS
).
SQL_INSTANCE_NAME="YourSQLInstanceName"
:- Replace
YourSQLInstanceName
with the correct SQL instance hosting theSUSDB
database. - Examples:
MSSQLSERVER
for the default SQL Server instance.MICROSOFT##WID
for Windows Internal Database (WID).
- Replace
Example Scenarios
- If Using Default WID (Windows Internal Database):
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- If Using a Custom SQL Server Instance:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MY-SQL-SERVER\INSTANCE"
- If IIS Configuration Needs to Be Skipped (Optional):
If IIS is causing issues and you want to configure it manually later, append the-skipIISConfig
flag:
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Verify the Post-Install Status
Once the post-install command completes:- Check the WSUS console:
- Open Administrative Tools > Windows Server Update Services.
- Ensure it's functional and synchronizing updates.
- Monitor the WSUSSetup.log:
- Location:
Code:C:\Program Files\Update Services\LogFiles\WSUSSetup.log
- Look for any errors if the command fails.
- Location:
Let me know how it goes! If you encounter errors or new issues during the post-install, feel free to share the log output, and I’ll help troubleshoot further.
- Thread Author
- #5
- Joined
- Mar 14, 2023
- Messages
- 43,822
If the WSUS console won't launch, and you haven’t yet tried running the postinstall command from the command line, there’s a good chance that the configuration hasn't been fully completed. WSUS requires the postinstall step to properly configure its database, IIS site, and paths (e.g., the content directory). Without this step, the console won’t function correctly.
Let’s address this while verifying and resolving potential underlying issues.
Let’s address this while verifying and resolving potential underlying issues.
Step 1: Run the WSUS Post-Installation Command
As mentioned earlier, the most important next step is to ensure WSUS is fully configured.- Open Command Prompt as Administrator.
- Hit Win + S, search for cmd, and select Run as Administrator.
- Execute the Postinstall Command:
ReplaceD:\WSUS\WSUSCONTENT
andMICROSOFT##WID
with your corresponding paths and SQL instance configuration.
Example for a system using Windows Internal Database (WID):
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="YourServerName\CustomInstanceName"
Step 2: Verify Post-Install Success
If the postinstall command completes successfully:- Relaunch the WSUS console.
- Open the WSUS Console from Administrative Tools > Windows Server Update Services.
- Manually add WSUS services in IIS (if IIS skipped during postinstall):
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Step 3: Troubleshoot Postinstall Failures
If the postinstall command returns errors, review the output. Specific errors often highlight exact paths or services causing issues.- Check Log Files:
Open:
Code:C:\Program Files\Update Services\LogFiles\WSUSSetup.log
- Missing paths.
- SQL instance access (
SUSDB
issues). - IIS misconfigurations.
Step 4: Verify WSUS Configuration
- Check IIS Manager:
- Open IIS Manager (
inetmgr
). - Verify that the WSUS Administration site exists under Sites.
- Check that the following directories are configured correctly:
- Content should point to
D:\WSUS\WSUSCONTENT
. - SelfUpdate should point to
C:\Program Files\Update Services\SelfUpdate
.
- Content should point to
- Open IIS Manager (
- Check Database Connection:
- Ensure the SQL instance hosting
SUSDB
is running. - If using WID:
Code:bash net start w3svc net start MSSQL$MICROSOFT##WID
- If using a custom SQL Server instance:
- Open SQL Server Management Studio (SSMS) and confirm the
SUSDB
database exists.
- Open SQL Server Management Studio (SSMS) and confirm the
- Ensure the SQL instance hosting
Step 5: Manually Create IIS Virtual Directories
If the WSUS Administration site or its virtual directories are missing, recreate them manually.- Open IIS Manager and create these Virtual Directories:
- Content -> Path:
D:\WSUS\WSUSCONTENT
. - SelfUpdate -> Path:
C:\Program Files\Update Services\SelfUpdate
.
- Content -> Path:
- Restart IIS:
Code:bash iisreset
Summary
- Running the postinstall command correctly is key to launching the WSUS console successfully.
- If issues persist during or after the post-install step, check
WSUSSetup.log
for details and adjust IIS or SQL configurations as necessary.
- Thread Author
- #7
- Joined
- Mar 14, 2023
- Messages
- 43,822
Thanks for clarifying that the WSUSSetup.log is being generated in
Here’s what we’ll do to address the "IIS is the issue" scenario:
4. If
We’ll get this WSUS setup resolved!
AppData\Local\Temp\2
. Also, since the logs seem to indicate an IIS-related issue, we’ll focus on troubleshooting IIS configurations more deeply, as they are critical for WSUS functionality.Here’s what we’ll do to address the "IIS is the issue" scenario:
Steps to Resolve IIS-Related WSUS Post-Install Errors
Step 1: Check WSUS Post-Install Logs
- Navigate to the log file:
Code:C:\Users\<YourUsername>\AppData\Local\Temp\2\WSUS_PostInstall_<timestamp>.log
- Look for IIS-specific errors:
- Does it mention specific paths or virtual directories that cannot be found?
- Common issues include:
- Missing
Content
orSelfUpdate
virtual directories. - Problems registering the WSUS Administration site or binding.
- Missing
Step 2: Verify IIS Configuration
The most common issue at this stage is a broken IIS configuration preventing WSUS from completing installation.1. Open IIS Manager
- Run
inetmgr
to open IIS Manager.
2. Inspect IIS Sites
- Look for the following:
- WSUS Administration: This site should exist under the Sites node.
- Default bindings:
- Port 8530 (HTTP) for the WSUS Administration site.
- (Optional) Port 8531 (HTTPS) if SSL is configured.
3. Check Virtual Directories (if the site exists)
- Expand the WSUS Administration site and ensure the following virtual directories are configured:
- Content -> Physical Path:
D:\WSUS\WSUSCONTENT
(or the path specified in theCONTENT_DIR
parameter of the postinstall command). - SelfUpdate -> Physical Path:
C:\Program Files\Update Services\SelfUpdate
.
- Content -> Physical Path:
- If these are missing, manually create them.
4. If WSUS Administration
Site is Missing:
- Attempt to recreate it:
- Right-click Sites > Add Website.
- Site Name: WSUS Administration
- Physical Path: If unknown, use
C:\Program Files\Update Services
. - Binding:
- Type: HTTP
- Port: 8530.
Step 3: Check Application Pool Configuration
- Check the WSUS-related Application Pool:
- In IIS Manager, go to Application Pools.
- Look for an application pool named WsusPool.
- If Missing:
- Recreate it:
- Right-click in the Application Pools pane > Add Application Pool.
- Name:
WsusPool
- .NET Framework Version:
.NET CLR Version v4.0
- Managed Pipeline Mode: Integrated.
- Recreate it:
- Ensure the Application Pool is Running:
- Right-click
WsusPool
> Start.
- Right-click
Step 4: Reset IIS
Once the IIS configuration has been checked or repaired:- Restart the IIS service:
Code:bash iisreset
- Re-run the WSUS postinstall command:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Step 5: Clean Up and Manually Configure IIS Directories
If the postinstall error persists:- Delete and Recreate Virtual Directories:
- If old misconfigured directories exist, remove them first.
- Manually Add Virtual Directories:
- For example:
- Alias:
Content
-> Path:D:\WSUS\WSUSCONTENT
- Alias:
SelfUpdate
-> Path:C:\Program Files\Update Services\SelfUpdate
- Alias:
- For example:
- Restart IIS and WSUS services:
Code:bash net stop WsusService net start WsusService
Step 6: Review Secondary Logs
If the issue persists even after fixing IIS, check the following logs:- WSUS Post-Install Detailed Logs (already mentioned):
C:\Users\<YourUsername>\AppData\Local\Temp\2
.
- IIS Logs:
- Located in:
Code:C:\inetpub\logs\LogFiles
- Look for WSUS-related entries with error codes like
404
or401
.
- Located in:
- Event Viewer:
- Navigate to Applications and Services Logs > Windows Server Update Services.
Let Me Know
Share any additional details or specific log snippets if the error persists, and I can provide further tailored guidance.We’ll get this WSUS setup resolved!
- Thread Author
- #9
- Joined
- Mar 14, 2023
- Messages
- 43,822
Thanks for confirming that IIS and everything else looks fine apart from the WSUS install log with the "System cannot find the path specified" error. Since the infrastructure appears to be in good shape, we can narrow our focus on addressing what specifically causes the post-installation failure.
The runtime error during the PostInstall.ConfigureWebsite step strongly suggests an issue with WSUS's internal configuration that ties it to IIS. Below is a refined approach based on what you've shared:
The runtime error during the PostInstall.ConfigureWebsite step strongly suggests an issue with WSUS's internal configuration that ties it to IIS. Below is a refined approach based on what you've shared:
Resolution Steps for Postinstallation Failure
Step 1: Reattempt the WSUS Postinstall Command
Since IIS seems healthy and configured correctly, retry the postinstall command but verify paths explicitly:- Open Command Prompt as Administrator.
- Run:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
-skipIISConfig
flag to bypass IIS setup (useful if WSUS thinks IIS is incorrectly configured):
Code:
bash
wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Monitor the WSUS Post-Install Log in:
Code:C:\Users\<YourUsername>\AppData\Local\Temp\2\WSUS_PostInstall_<timestamp>.log
- Look for any specific missing file or path causing the "system cannot find the path specified" error during the ConfigureWebsite() step.
Step 2: Inspect the WSUS Configuration Registry
Check for residual or corrupted WSUS registry keys that could be pointing to invalid paths.- Open Registry Editor (
regedit
). - Navigate to:
Code:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup
- Verify the following registry values:
ContentDir
:- Should point to
D:\WSUS\WSUSCONTENT
(or your desired content directory).
- Should point to
ContentDirectoryTier2
(if present):- This can sometimes reference incorrect paths; clear it.
IISWebSite
:- Value
1
: Custom WSUS website (port 8530). - Value
0
: Default IIS website (port 80).
- Value
- Adjust entries as needed, then rerun the
wsusutil.exe postinstall
command.
Step 3: Rebuild WSUS-Related IIS Virtual Directories
The error might indicate failure while registering or accessing WSUS’s specific directories.- Manually Remove the Current WSUS Configuration:
- Delete the WSUS Administration site in IIS Manager.
- Clear related registry keys (as mentioned above).
- Create the WSUS Administration Site and Directories Manually:
- Open IIS Manager, add a new site:
- Site Name: WSUS Administration
- Physical Path:
C:\Program Files\Update Services\WebServices
- Bind it to port 8530 (HTTP).
- Add Virtual Directories under this site:
- Virtual Directory:
Content
-> Path:D:\WSUS\WSUSCONTENT
- Virtual Directory:
SelfUpdate
-> Path:C:\Program Files\Update Services\SelfUpdate
- Virtual Directory:
- Open IIS Manager, add a new site:
- Once IIS is properly configured, retry the postinstallation command:
Code:bash wsusutil.exe postinstall SQL_INSTANCE_NAME="MICROSOFT##WID" CONTENT_DIR="D:\WSUS\WSUSCONTENT"
Step 4: Validate SQL Access and Schema
If the postinstall fails, ensure WSUS can properly talk to the database during the configuration process.- Open SQL Server Management Studio (SSMS).
- Connect to the WID instance:
Code:np:\\.\pipe\MICROSOFT##WID\tsql\query
- Query the SUSDB database:
Code:sql USE SUSDB; SELECT * FROM tbSchemaVersion;
- If the
tbSchemaVersion
table doesn’t exist or returns errors, the SUSDB database may be corrupted. In this case:- Drop the database (or remove it if necessary).
- Allow WSUS to recreate the database during postinstall.
- If the
Step 5: Advanced Debugging
If the error persists and logs still indicate "System cannot find the path specified", capture more details:- Enable Verbose Logging for Postinstall:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID" /logfile:C:\Temp\PostInstallVerboseLog.txt
- Look for:
- References to missing folders, files, or IIS bindings.
- Errors in initializing databases or directory services.
Step 6: Reinstall WSUS Components
If all else fails, consider starting over to ensure WSUS isn’t entangled with remnants of the previous server installation:- Uninstall WSUS completely:
Code:powershell Remove-WindowsFeature UpdateServices, UpdateServices-Services, UpdateServices-DB
- Delete WSUS files and registry:
- Remove folders:
Code:C:\Program Files\Update Services D:\WSUS\WSUSCONTENT
- Clear related settings in:
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Remove folders:
- Reinstall WSUS and IIS dependencies:
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Re-run the postinstall command.
Let Me Know
Try re-running the postinstall command with the steps above and investigate any updates in the PostInstall Log or registry. Share relevant log snippets or findings, and we’ll keep isolating the root cause. We’ll get this resolved!- Thread Author
- #11
wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="SQL_INSTANCE_NAME" still yields
2025-01-09 12:49:08 Starting service W3SVC
2025-01-09 12:49:08 Configuring IIS...
2025-01-09 12:49:08 Start: ConfigureWebsite
2025-01-09 12:49:08 System.Runtime.InteropServices.COMException (0x80070003): The system cannot find the path specified.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
at Microsoft.UpdateServices.Administration.UseCustomWebSite..ctor()
at Microsoft.UpdateServices.Administration.PostInstall.ConfigureWebsite(Int32 portNumber)
at Microsoft.UpdateServices.Administration.PostInstall.Run()
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
2025-01-09 12:49:08 Starting service W3SVC
2025-01-09 12:49:08 Configuring IIS...
2025-01-09 12:49:08 Start: ConfigureWebsite
2025-01-09 12:49:08 System.Runtime.InteropServices.COMException (0x80070003): The system cannot find the path specified.
at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind()
at System.DirectoryServices.DirectoryEntry.get_AdsObject()
at System.DirectoryServices.PropertyValueCollection.PopulateList()
at System.DirectoryServices.PropertyValueCollection..ctor(DirectoryEntry entry, String propertyName)
at System.DirectoryServices.PropertyCollection.get_Item(String propertyName)
at Microsoft.UpdateServices.Administration.UseCustomWebSite..ctor()
at Microsoft.UpdateServices.Administration.PostInstall.ConfigureWebsite(Int32 portNumber)
at Microsoft.UpdateServices.Administration.PostInstall.Run()
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
- Joined
- Mar 14, 2023
- Messages
- 43,822
The fact that the
We'll focus specifically on resolving these IIS-related failures by isolating the root cause based on the remaining errors.
-skipIISConfig
flag on the wsusutil.exe postinstall
command still triggers IIS-related configuration errors clearly indicates that the WSUS postinstall process is somehow still attempting to interact with IIS settings despite the -skipIISConfig
directive. This is unusual since -skipIISConfig
normally avoids any IIS actions unless there are residual or misconfigured registry entries forcing this behavior.We'll focus specifically on resolving these IIS-related failures by isolating the root cause based on the remaining errors.
What to Do When the IIS Configuration Still Fails
Step 1: Double-Check the IISWebSite Registry Entry
Even with-skipIISConfig
, WSUS may still check for existing IIS configurations in the registry.- Open the Registry Editor:
- Navigate to:
Code:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup
- Navigate to:
- Check/Modify These Keys:
IISWebSite
:- 1: Custom WSUS Administration site on port 8530 (default for WSUS).
- 0: Default IIS site on port 80.
- If this key looks misconfigured or references invalid IIS configurations, change the value to
1
(indicating a custom WSUS site).
ContentDir
:- Confirm this points to the correct directory for WSUS, e.g.:
Code:D:\WSUS\WSUSCONTENT
- Confirm this points to the correct directory for WSUS, e.g.:
- Restart IIS and Rerun Postinstall:
Code:bash iisreset wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="SQL_INSTANCE_NAME"
Step 2: Manually Add WSUS Directories in IIS
If the issue persists, manually validate and create IIS virtual directories for WSUS.- Open IIS Manager (
inetmgr
). - Expand the Sites node and look for WSUS Administration (or its absence).
- If WSUS Administration does not exist:
- Add it manually:
- Right-click Sites > Add Website:
- Site Name: WSUS Administration
- Physical Path:
C:\Program Files\Update Services\WebServices
- Binding: HTTP, Port 8530.
- Add it manually:
- Confirm/add the critical virtual directories under this site:
- Virtual Directory: Content
- Physical Path:
D:\WSUS\WSUSCONTENT
- Physical Path:
- Virtual Directory: SelfUpdate
- Physical Path:
C:\Program Files\Update Services\SelfUpdate
- Physical Path:
- Virtual Directory: Content
- Restart IIS:
Code:bash iisreset /noforce
Step 3: Investigate Missing or Broken Paths
The error indicates WSUS is attempting to interact with a missing file or directory. Recheck any paths referenced in logs or configurations.- Recheck Permissions:
Ensure the directories expected by WSUS and IIS have proper access:- Content Directory (
D:\WSUS\WSUSCONTENT
):- Add
NETWORK SERVICE
andIIS_IUSRS
with full control.
- Add
- SelfUpdate (
C:\Program Files\Update Services\SelfUpdate
):- Ensure the directory exists and has the same permissions.
- Content Directory (
- Create Missing Directories:
If either directory is not present, create it manually. - Confirm paths in:
- IIS physical paths for virtual directories (use IIS Manager).
- Registry entry
ContentDir
underHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup
.
- Retry the Postinstall Command:
Code:bash wsusutil.exe postinstall SQL_INSTANCE_NAME="SQL_INSTANCE_NAME" CONTENT_DIR="D:\WSUS\WSUSCONTENT"
Step 4: Temporarily Disable Directory Interaction
If the postinstall continues to fail, avoid WSUS processing directories by temporarily creating mock paths.- Create Dummy Values:
- Create a dummy path:
Code:C:\Temp\WSUSFAKE
- Create a dummy path:
- Point WSUS to These Paths:
- Modify the
ContentDir
registry value to:
Code:C:\Temp\WSUSFAKE
- Modify the
- Rerun Postinstall Command Again with Dummy Path:
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="C:\Temp\WSUSFAKE" SQL_INSTANCE_NAME="SQL_INSTANCE_NAME"
- Revert paths afterward if succeeded.
Step 5: Review Application Pool and Service Settings
Check if IIS Application Pools or services are interfering with WSUS's ability to operate.- Check for Application Pool Issues:
- Open IIS Manager.
- Ensure the WsusPool application pool exists and is running.
- Repair the application pool:
Code:bash appcmd delete apppool /apppool.name:"WsusPool" appcmd add apppool /name:"WsusPool" /managedRuntimeVersion:v4.0 /managedPipelineMode:Integrated
- Restart IIS services:
Code:bash iisreset
Step 6: Perform a Fresh IIS and WSUS Cleanup
If all else fails, clean out WSUS and IIS completely before reinstalling:- Uninstall WSUS:
Code:D:\WSUS\WSUSCONTENT
- Reset IIS Settings:
Reset IIS to default:
Code:D:\WSUS\WSUSCONTENT
Clear IIS settings:
Code:D:\WSUS\WSUSCONTENT
- Reinstall IIS Roles:
Code:D:\WSUS\WSUSCONTENT
- Retry the WSUS install fresh.
Need More Debugging?
Check logs for further details:- WSUS Post-Install Logs:
- Location:
Code:D:\WSUS\WSUSCONTENT
- Look for specific missing paths or services.
- Location:
- IIS Logs:
Code:D:\WSUS\WSUSCONTENT
- Thread Author
- #13
- Joined
- Mar 14, 2023
- Messages
- 43,822
Yes, the
Adding the Missing
Here’s how to add the key in the registry:
Key Notes on
IISWebsite
key is critical for WSUS to properly configure its IIS website, and its absence is likely contributing to the "The system cannot find the path specified" error during the post-install process. The key should indeed be a DWORD (32-bit Value) and tells WSUS which IIS site to bind its services to.Adding the Missing IISWebsite
Key
Here’s how to add the key in the registry:- Open Registry Editor:
- Press Win + R, type
regedit
, and press Enter.
- Press Win + R, type
- Navigate to the Following Registry Path:
Code:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup
- Add the
IISWebsite
Key (if missing):- Right-click in the right pane.
- Select New > DWORD (32-bit) Value.
- Name the key:
Code:IISWebsite
- Set the value:
- 1: Custom website (default for WSUS; typically bound to port 8530).
- 0: Default IIS website (bound to port 80).
- Close Registry Editor:
- Once the key has been added and configured, close the Registry Editor.
- Restart IIS and Retry Postinstall:
- Restart IIS:
Code:bash iisreset
- Re-run the WSUS post-install command:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Restart IIS:
Key Notes on IISWebsite
Values
- A value of
1
is recommended unless your WSUS instance is deliberately configured to bind to the default IIS website. This points WSUS to create and use a separate custom IIS website (on port 8530). - Ensure the custom WSUS website exists in IIS. If missing, manually add it:
- Refer to IIS Configuration under previous steps.
What Next If Issues Persist?
- If adding the registry key resolves the issue, great! Otherwise:
- Share any error output from the new postinstall log output or any IIS-related logs for deeper analysis.
- Verify other keys under
Setup
in the WSUS registry, such asContentDir
.
IISWebsite
key impacts the current setup! - Thread Author
- #15
- Joined
- Mar 14, 2023
- Messages
- 43,822
Okay, since adding the
Let’s focus on:
We’ll get WSUS up and operational—keep me posted!
IISWebsite
key didn’t resolve the issue and the postinstall command failed without even creating the verbose log file, it strongly indicates that the WSUS post-installation process is failing very early, likely during the initial IIS configuration step.Let’s focus on:
- Debugging why the verbose log is not created.
- Further resolving IIS setup discrepancies.
- Forcing WSUS to move past this stage through more direct interaction.
Updated Troubleshooting Steps
Step 1: Confirm Command Execution Environment
- Run Command Prompt with Full Administrative Rights:
- Open Command Prompt as Administrator (very important for creating disk-level logs like
/logfile
).
- Open Command Prompt as Administrator (very important for creating disk-level logs like
- Use Explicitly Correct Escaping for Log File Paths:
- Double-check that the command is written correctly, as misquotes or issues with escape characters can cause the log file to fail.
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID" /logfile:C:\Temp\PostInstallVerboseLog.log
- Double-check that the command is written correctly, as misquotes or issues with escape characters can cause the log file to fail.
- Ensure the Target Log Directory Exists:
- Create the folder
C:\Temp
in case it does not exist (logs can fail to generate without a valid directory):
Code:bash mkdir C:\Temp
- Create the folder
- Retry the Command:
Run it again:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID" /logfile:C:\Temp\PostInstallVerboseLog.txt
- If the Log Still Fails to Generate:
- The post-installation could be aborting before the logging system initializes. In this case, fallback to IIS and WSUS registry inspection (steps below).
Step 2: Manually Review WSUS-related Paths and IIS Settings
Since "The system cannot find the path specified" still indicates missing resources expected by IIS, let’s manually validate configurations.1. Recheck Physical Paths
Ensure these required directories exist:- Content Directory:
Code:D:\WSUS\WSUSCONTENT
- SelfUpdate Directory:
Code:C:\Program Files\Update Services\SelfUpdate
- Add full control for
NETWORK SERVICE
andIIS_IUSRS
.
2. Recheck Virtual Directories
- Open IIS Manager (
inetmgr
). - Under WSUS Administration, verify the virtual directories:
Content
-> Path:D:\WSUS\WSUSCONTENT
SelfUpdate
-> Path:C:\Program Files\Update Services\SelfUpdate
- Fix or add them manually if absent.
Step 3: Load and Validate IIS Application Pool
TheSystem.Runtime.InteropServices.COMException
you posted earlier suggests it might also be tied to IIS’s application pool functionality.- Open IIS Manager and Navigate to Application Pools.
- Confirm the WsusPool application pool exists:
- If the pool is missing or stopped:
- Delete Any Broken Pools.
- Recreate the pool:
Code:bash appcmd add apppool /name:"WsusPool" /managedRuntimeVersion:v4.0 /managedPipelineMode:Integrated
- If the pool is missing or stopped:
- Restart IIS:
Code:bash iisreset /noforce
- Re-run the postinstall:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Step 4: Switch to Skip-IISConfig Temporary Workaround
If WSUS continues to fail even with manual IIS configurations, force it to entirely bypass IIS’s involvement:- Retry postinstall with
-skipIISConfig
:
Code:bash wsusutil.exe postinstall -skipIISConfig CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID" /logfile:C:\Temp\PostInstallVerboseLog.log
- Manually Add IIS Site and Directories Afterward:
If the command works and skips IIS configuration, manually create and configure the IIS website (see earlier IIS steps).
Step 5: If All Else Fails – Enable Advanced Logging
If the above steps still fail, you can enable detailed event tracing for WSUS to capture the failure reason:- Run Command Prompt as Administrator.
- Launch the WSUS installer with tracing enabled:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID" /trace
- The
/trace
flag will generate an expanded diagnostic log, which may provide more insight into the root cause. - Check the logs under:
Code:bash mkdir C:\Temp
If None of These Fix the Issue
If the error persists, there are deeper underlying issues, likely tied to:- Registry Corruption (e.g., invalid WSUS references).
- System-level IIS or WSUS misconfigurations.
WSUS[I]PostInstall[/I]*.log
, will shed more light on the core failure. If you have logs or specifics to share, I’ll assist in further narrowing down the issue.We’ll get WSUS up and operational—keep me posted!
- Thread Author
- #17
- Joined
- Mar 14, 2023
- Messages
- 43,822
Thanks for clarifying, and it’s useful to know that no additional log files are being generated, even with the
Let’s refine the approach based on this behavior:
/trace
flag, and that the postinstall logs still contain the same information. This confirms the postinstall process is failing at an early stage before logging mechanisms can thoroughly initialize. The persistent "System cannot find the path specified" error remains linked to IIS configuration or residual WSUS/IIS misalignments.Let’s refine the approach based on this behavior:
Steps to Isolate and Resolve Early IIS Configuration Failures
Step 1: Pinpoint Missing Configuration or Paths
Since the "System cannot find the path" error still points to missing elements, let’s validate all IIS and WSUS dependencies to ensure no fundamental paths or directories are missing.- Inspect IIS Site Bindings:
- Open IIS Manager (
inetmgr
). - Under Sites, locate the WSUS Administration site.
- Confirm the following:
- Port:
- HTTP: 8530 (defaults for WSUS).
- HTTPS: 8531 (if HTTPS is enabled).
- Physical Path:
- WSUS default files should exist under:
Code:C:\Program Files\Update Services
- Open IIS Manager (
- Test IIS Accessibility:
- In a browser, navigate to:
Code:http://localhost:8530
- If this fails with a 404 or 500-level error, IIS is not properly configured for WSUS.
- In a browser, navigate to:
- Confirm WSUS Content and Virtual Directories:
- Double-check the Content Directory (e.g.,
D:\WSUS\WSUSCONTENT
) is present and accessible. - Ensure the
SelfUpdate
directory exists at:
Code:C:\Program Files\Update Services\SelfUpdate
- Double-check the Content Directory (e.g.,
Step 2: Temporarily Resolve Missing Directory Dependencies
To ensure paths aren’t being referenced incorrectly:- Override WSUS Paths in the Registry:
- Open Registry Editor:
Code:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup
- Modify or add the following keys:
- ContentDir:
Code:D:\WSUS\WSUSCONTENT
- IISWebSite:
Code:DWORD: 1
- ContentDir:
- Open Registry Editor:
- Restart IIS:
Code:bash iisreset
- Re-run the postinstall:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
Step 3: Force IIS Directory Initialization
If IIS is simply unable to initialize WSUS components, forcing the entire WSUS IIS Administration setup may help push past the failure:- Remove any corrupted or inconsistent IIS configurations:
- Open IIS Manager, delete the
WSUS Administration
site (if it exists). - Stop IIS:
Code:bash iisreset /stop
- Open IIS Manager, delete the
- Rebuild IIS Settings for WSUS:
- Manually recreate the WSUS Administration Site in IIS:
- Site Name: WSUS Administration
- Physical Path:
C:\Program Files\Update Services\WebServices
- Bindings:
- Type: HTTP
- Port: 8530
- Add Virtual Directories:
- Content -> Path:
D:\WSUS\WSUSCONTENT
- SelfUpdate -> Path:
C:\Program Files\Update Services\SelfUpdate
- Content -> Path:
- Manually recreate the WSUS Administration Site in IIS:
Step 4: Fully Clean and Recreate Application Pools
WSUS might be tied to a missing or broken application pool, which could trigger configuration errors in IIS.- Delete and Recreate WSUS Application Pool:
- Open IIS Manager, go to Application Pools.
- Delete the WsusPool if present.
- Create a new application pool:
Code:bash appcmd add apppool /name:"WsusPool" /managedRuntimeVersion:v4.0 /managedPipelineMode:Integrated
- Restart IIS:
Code:http://localhost:8530
- Retry the postinstall:
Code:http://localhost:8530
Step 5: Attempt a Minimal Reinstall
If everything above fails, the WSUS installation may still have corrupted remnants causing IIS-related misconfigurations.- Fully Uninstall WSUS:
Code:http://localhost:8530
- Purge WSUS Files and Registry Keys:
- Delete:
Code:http://localhost:8530
- Clean registry:
Code:http://localhost:8530
- Delete:
- Reinstall WSUS:
Code:http://localhost:8530
- Retry the postinstall.
Fallback: Review Event Viewer and Logs
If all steps fail, gathering more system-level details is critical.- Check Event Viewer for Errors:
- Focus on Applications and Services Logs > Windows Server Update Services.
- Inspect IIS Logs for Failures:
Code:http://localhost:8530
- Look for Common Errors:
- Missing application pool bindings.
- Incorrect registry values detected during runtime.
Let Me Know
Let me know what you find after retrying these steps or inspecting the mentioned logs. If the error persists without additional clues, we may need to escalate to reinstall both IIS and WSUS entirely in a clean environment. You’re doing great—let’s get it resolved!- Thread Author
- #19
- Joined
- Mar 14, 2023
- Messages
- 43,822
Thank you for pointing out the possibility of SCCM (System Center Configuration Manager) affecting your WSUS installation! When SCCM integrates with WSUS as a Software Update Point (SUP), it can cause conflicts, especially during a WSUS installation, post-installation, or configuration due to overlapping roles and dependencies managed by SCCM.
Since everything else appears normal but the WSUS post-installation still fails, investigating SCCM's involvement is a logical next step.
Since everything else appears normal but the WSUS post-installation still fails, investigating SCCM's involvement is a logical next step.
How SCCM Can Interfere with WSUS
- Software Update Point (SUP) Role:
- If SCCM is already managing the WSUS instance as an SUP, certain configurations (e.g., IIS site bindings, database lock) may conflict with the standalone WSUS installation process.
- SCCM Permissions:
- SCCM may hold exclusive permissions or configurations for WSUS, preventing changes to IIS or SQL without SCCM’s coordination.
- Shared Database or Components:
- If SCCM is already using
SUSDB
or managing IIS for software updates, attempting to run the WSUS postinstall might fail because SCCM locks configurations WSUS assumes are standalone.
- If SCCM is already using
- Synchronization Lock-in:
- SCCM tightly integrates WSUS and overrides settings such as content locations and virtual directories. This can lead to an "already configured" or inaccessible environment during manual postinstallation.
Steps to Identify SCCM’s Role and Resolve Conflicts
Step 1: Determine SCCM’s Relationship with WSUS
- Check if SCCM is Configured with SUP Role:
- Open the Configuration Manager Console.
- Navigate to:
Code:Administration > Site Configuration > Servers and Site System Roles
- Look for the Software Update Point role on this server.
- If the SUP Role Exists:
- Note that SCCM will manage:
- WSUS configuration via the Configuration Manager console.
- IIS settings such as virtual directories and application bindings.
- Permissions or schema changes on
SUSDB
(WSUS database).
- Note that SCCM will manage:
- Logs to Inspect in SCCM:
- Check Software Update Point logs related to WSUS:
- WsyncMgr.log: Synchronization issues with WSUS.
- SUPSetup.log: Details on SUP installation/configuration.
- These logs are located in:
Code:<SCCMInstallDirectory>\Logs
- Check Software Update Point logs related to WSUS:
Step 2: Disable SUP Role (Temporarily)
Temporarily disable the SUP role to allow WSUS to complete its installation and configuration freely.- Go to the Configuration Manager Console:
- Navigate to:
Code:Administration > Site Configuration > Servers and Site System Roles
- Select the Software Update Point role and remove or disable it temporarily.
- Navigate to:
- Restart IIS and Perform WSUS Postinstall:
- Restart IIS to clear any locks:
Code:bash iisreset
- Retry the postinstall:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Restart IIS to clear any locks:
- Re-enable SUP Role After Completing WSUS Configuration:
- Once WSUS is working, go back to the SCCM console and reinstall or enable the SUP role.
Step 3: Verify Database and IIS Configurations
If SCCM’s use of WSUS prevents thepostinstall
from working correctly, additional checks in the database and IIS may be required.- Database Lock or Ownership:
- Open SQL Server Management Studio (SSMS).
- Connect to:
Code:np:\\.\pipe\MICROSOFT##WID\tsql\query
SUSDB
. - Check the
SUSDB
database for SCCM ownership or schema locks:
Code:sql SELECT * FROM tbSchemaVersion;
- Existing Multipurpose IIS Configuration:
- Confirm that IIS bindings and virtual directories aren’t being overridden or concurrently configured by SCCM.
Step 4: Manually Force a WSUS-SUP Reset
If all else fails and SCCM has corrupted WSUS setup or created unrecoverable conflicts, reset both WSUS and SCCM SUP settings:- Remove SUP Role and WSUS Components:
Code:bash Remove-WindowsFeature -Name UpdateServices, UpdateServices-Services, UpdateServices-DB -IncludeManagementTools
- Reinstall WSUS for Standalone Setup:
- Install WSUS again and complete its postinstall before reintroducing SCCM to manage it:
Code:bash wsusutil.exe postinstall CONTENT_DIR="D:\WSUS\WSUSCONTENT" SQL_INSTANCE_NAME="MICROSOFT##WID"
- Install WSUS again and complete its postinstall before reintroducing SCCM to manage it:
- Reintegrate SUP in SCCM:
- Add the Software Update Point role back in the SCCM console.
Step 5: Verify the SCCM Integration
Ensure SCCM is properly managing WSUS after resolving the conflicts:- Open the Configuration Manager Console.
- Test synchronization of updates:
- Force a manual sync in SCCM.
- Check if WSUS and SCCM are working together:
- WSUS: Content directory matches SCCM's expectations.
- SCCM: SUP role is green and operational.
- Monitor logs:
- Recheck WsyncMgr.log and SUPSetup.log for new errors.
What’s Next?
- If temporarily disabling the SCCM Software Update Point allows WSUS to complete its postinstall successfully, SCCM was indeed interfering.
- Once working, we can re-enable SCCM's SUP configuration.