Issue Context
Multiple workstations connected to a Server2016 WSUSv10 server. Workstations are able to check in with WSUS and receive a list of available updates, but when clicking ‘Install’, the Windows Update client would fail for all updates after a few seconds.
Checking Windows Update Log
C:\Windows\WindowsUpdate.log
2018-03-27 08:09:18:404 1184 6cf8 DnldMgr *********** DnldMgr: New download job [UpdateId = {BC3D29C9-3F1D-4600-B2FB-17FF55D8BEC2}.201] ***********
2018-03-27 08:09:18:426 1184 6cf8 DnldMgr * BITS job initialized, JobId = {7295E98D-14CF-4207-A7AD-8E08305BCE03}
2018-03-27 08:09:18:430 1184 6cf8 DnldMgr * Downloading from http://wsus-server.domain.com:8530/Content/49/EF5AB517E8E81E0C9FE4F8251C7C761722E45449.cab to C:\windows\SoftwareDistribution\Download\853e2e8b01969e74e5dbf4ea7a2d9e20\Windows6.1-KB4038779-x64.cab (full file).
2018-03-27 08:09:18:437 1184 6cf8 Agent *********
2018-03-27 08:09:18:437 1184 6cf8 Agent ** END ** Agent: Downloading updates [CallerId = AutomaticUpdatesWuApp]
2018-03-27 08:09:18:437 1184 6cf8 Agent *************
2018-03-27 08:09:18:437 1184 37b0 DnldMgr WARNING: BITS job {7295E98D-14CF-4207-A7AD-8E08305BCE03} failed, updateId = {BC3D29C9-3F1D-4600-B2FB-17FF55D8BEC2}.201, hr = 0x80190194, BG_ERROR_CONTEXT = 5
2018-03-27 08:09:18:438 1184 37b0 DnldMgr Progress failure bytes total = 43728287, bytes transferred = 0
2018-03-27 08:09:18:438 1184 37b0 DnldMgr Failed job file: URL = http://wsus-server.domain.com:8530/Content/49/EF5AB517E8E81E0C9FE4F8251C7C761722E45449.cab, local path = C:\windows\SoftwareDistribution\Download\853e2e8b01969e74e5dbf4ea7a2d9e20\Windows6.1-KB4038779-x64.cab
2018-03-27 08:09:18:442 1184 37b0 DnldMgr Error 0x80244019 occurred while downloading update; notifying dependent calls.
2018-03-27 08:09:18:445 1184 4704 AU >>## RESUMED ## AU: Download update [UpdateId = {3DE7A78A-5B97-4DF7-8BF6-36EBE20D3C75}]
2018-03-27 08:09:18:445 1184 4704 AU # WARNING: Download failed, error = 0x80244019
2018-03-27 08:09:18:445 1184 4704 AU Setting AU scheduled install time to 2018-03-28 07:00:00
2018-03-27 08:09:18:445 1184 4704 AU Successfully wrote event for AU health state:0
2018-03-27 08:09:18:446 1184 4704 AU Currently showing Progress UX client - so not launching any other client
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr *************
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr ** START ** DnldMgr: Downloading updates [CallerId = AutomaticUpdatesWuApp]
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr *********
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr * Call ID = {1521854B-8779-4C75-A2CC-4762E4932223}
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr * Priority = 3, Interactive = 1, Owner is system = 1, Explicit proxy = 0, Proxy session id = 1, ServiceId = {3DA21691-E39D-4DA6-8A4B-B43877BCB1B7}
2018-03-27 08:09:18:447 1184 6cf8 DnldMgr * Updates to download = 1
2018-03-27 08:09:18:447 1184 6cf8 Agent * Title = Security Update for Microsoft Silverlight (KB4023307)
2018-03-27 08:09:18:447 1184 6cf8 Agent * UpdateId = {96D2119C-C85D-4490-B58C-927D2EBE297C}.200
2018-03-27 08:09:18:447 1184 6cf8 Agent * Bundles 1 updates:
2018-03-27 08:09:18:447 1184 6cf8 Agent * {2A77AFE3-1E82-48DA-B817-2F69E2C8218C}.200
and…
2018-03-27 08:09:19:127 1184 6cf8 Report REPORT EVENT: {93D4A6F9-00BA-4D6F-B2A1-E7C3F369272D} 2018-03-27 08:09:15:496-0400 1 161 101 {F97B770A-4DB7-4633-8F2F-ECF75FE36C3F} 204 80244019 AutomaticUpdatesWuApp Failure Content Download Error: Download failed.
2018-03-27 08:09:19:127 1184 6cf8 Report REPORT EVENT: {E81A8073-E072-4D38-BAB0-ABB2C4994EDC} 2018-03-27 08:09:15:572-0400 1 161 101 {0958DD0C-92B0-45D3-8588-C4034E52ACAA} 201 80244019 AutomaticUpdatesWuApp Failure Content Download Error: Download failed.
2018-03-27 08:09:19:127 1184 6cf8 Report REPORT EVENT: {FC7582B6-0CCB-4128-93F4-B12B43DDD8E7} 2018-03-27 08:09:15:635-0400 1 161 101 {BD312012-799E-4B68-9AF2-F9EEE93E86AA} 205 80244019 AutomaticUpdatesWuApp Failure Content Download Error: Download failed.
Checking Windows Event Logs
Log Name: Application
Source: Windows Server Update Services
Date: 3/28/2018 4:21:31 PM
Event ID: 12072
Task Category: 9
Level: Error
Keywords: Classic
User: N/A
Computer: wsus-server.domain.com
Description:
The WSUS content directory is not accessible.
System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\WSUSContent\WsusContent\anonymousCheckFile.txt'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
at System.IO.FileInfo.Open(FileMode mode, FileAccess access, FileShare share)
at Microsoft.UpdateServices.Internal.HealthMonitoring.HmtWebServices.CheckContentDirWebAccess(EventLoggingType type, HealthEventLogger logger)
Issue Resolution
Because of these errors, I began checking for incorrect references or permissions to where the WSUSContent folder is located in the WSUS configuration.
Checking the Registry
Notice the ‘ContentDir’ value is D:
, which is technically an invalid path. A backslash is required.
I updated the value to D:\
Checking IIS
IIS → WSUS Administration → Content → Advanced Settings
Again, notice the value of ‘Physical Path’ is set to D:WsusContent\
, which is an invalid path.
I updated the value to D:\WsusContent\
.
Once these values were updated, my Windows Update Clients were able to download and install the pending updates.
The reason both of these locations included an incorrect path was because of how the WSUS server was installed. During the WSUS setup wizard, you are prompted for a path to store downloaded updates. If you enter a value like D:
, the value will be propagated to the above locations as-is. No backslash will be appended if missing.
Other Attempted Resolution
Below is another fix I tried, which ultimately did not resolve the issue. Including it here for reference.
Recommended to run wsusutil /reset
cd 'c:\Program Files\Update Services\Tools' wsusutil reset
This process takes place within the SQL server. Progress (or at least ‘is this still running?’) can be seen in Task Manager:
I am not 100% sure how long this process took, but after ~24 hours, the issue was still not resolved.