PATCH MY PC DOCS

Knowledge Base

We’re here to help if needed

The Microsoft Software License Terms have not been completely downloaded and cannot be accepted

Microsoft Configuration Manager can throw the error in the title when the Software Update Point tries to synchronise new updates from WSUS and the update it is trying to supersede no longer has its End User Licensing Agreement (EULA) available on disk.

Topics covered in this article:

 

EULAs are stored in the WsusContent directory as .txt files for software updates which come with any. For example, the Windows Malicious Software Removal Tool for some older versions of Windows come with EULA .txt files saved in WsusContent.

Before you can deploy any updates which come with a EULA, the agreement must first be accepted. An example of this can be seen below in Configuration Manager:

A screenshot of accepting a EULA when deploying an example Microsoft update

It is also possible to automatically accept all EULAs without any manual acceptance when using Automatic Deployment Rules (ADR):

A screenshot of accepting a EULA when automatically deploying updates via an Automatic Deployment Rule (ADR)

Determine if you are affected

If affected, you will see the below log line in wsyncmgr.log:

Failed to sync update 8b1ca2c2-e002-4dc6-a5d6-0168006fb369. Error: The Microsoft Software License Terms have not been completely downloaded and~~cannot be accepted. Source: Microsoft.UpdateServices.Internal.BaseApi.LicenseAgreement.GetById

The GUID would be the WSUS update ID of the new update failing to synchronise into Configuration Manager.

A screenshot of wsyncmgr.log showing the aforementioned failed log line.

You may also see the error code 0x80131500 in the Configuration Manager console under \Monitoring\Overview\Software Update Point Synchronization Status:

A screenshot of the "Software Update Point Synchronization Status" node in-console showing the 0x80131500 error code

In SoftwareDistribution.log you may also see the reference to specific .txt files missing from your WsusContent directory:

AdminDataAccess.ExecuteSPGetEulaFileLicenseAgreement file does not exist: J:\WSUS\WsusContent\23\14D19C27B28CC3990260D7191F6E0FF6C7483623.txt
A screenshot of SoftwareDistribution.log recording the EULA .txt file is missing from WsusContent while trying to publish a new update

Finally, when trying to query WSUS for the update using PowerShell, it will return a similar error message as wsyncmgr.log:

A screenshot of calling Get-WsusUpdate PowerShell cmdlet, showing the error while trying to retrieve the current update in WSUS missing the EULA .txt file

Step 1: Validate the permissions on the WsusContent and UpdateServicesPackages shares

To verify the NTFS and SMB permissions are correct for your WsusContent and UpdateServicesPackages folders, review Step 2: Validate the Permissions on the WsusContent and UpdateServicesPackages Shares in the following article:


If any permission changes were made, perform a sync of your Software Update Point and validate if the issue still exists. If it does, move on to step 2.

Step 2: Restore missing EULA .txt files in the WsusContent share

If the NTFS and SMB permissions are correct for your WSUS content directories, it’s likely the EULA .txt files have been deleted from the WsusContent directory.

To restore the missing EULA .txt files back to the WsusContent directory, you need to perform a reset of WSUS by using the WsusUtil.exe utility.

More InformationNote: you may have multiple Software Update Points in your environment, and some of them may be throwing this error. You will need to run the same remediation steps below on each Software Update Point impacted. You can see which SUP fails to sync and its errors by reading wsyncmgr.log.

This is achieved by running the below command:
C:\Program Files\Update Services\Tools\WsusUtil.exe reset

Performing a “reset” is not as significant as it sounds.

As per the help command, the reset parameter “Checks that every metadata row in the database has corresponding content stored in the file system. If content is missing or corrupted, WSUS downloads the content again. This is useful after restoring a database.”

A screenshot of cmd.exe showing the help summary information for WsusUtil.exe reset command

Microsoft have documentation on this issue and also recommend the same action:


However, it does not go into enough detail about happens during the reset process or how to identify when the process has finished – this article intends to fill those gaps.

After running the WsusUtil.exe reset command, you can monitor its progress in SoftwareDistribution.log. At the beginning of the reset process, in the log you will see the below log lines printed:
SusEventDispatcher.DispatchManagerWorkerThreadProcDispatchManager Worker Thread Processing NotificationEvent: StateMachineReset
SusEventDispatcher.DispatchManagerWorkerThreadProcDispatchManager Worker Thread Processing NotificationEvent: ContentSyncAgent
EventLogEventReporter.ReportEventEventId=361,Type=Information,Category=Synchronization,Message=Content synchronization started


You can still publish new third-party updates to WSUS while it is experiencing a reset, and you can also still synchronise your Software Update Point, too – it is not necessary to disable the Patch My PC Publisher or Software Update Point scheduled sync.

A screenshot of SoftwareDistribution.log indicating the start of the reset process

During this process, you will see the activity of WSUS enumerating every update, validating its content. For any updates missing content, e.g. missing EULA’s, it will redownload them from the Internet.

More InformationImportant: make sure your proxy or firewall is not blocking access to Microsoft to redownload these EULA .txt files.

Below is an example snippet from SoftwareDistribution.log, shortly after the reset process starting, redownloading a EULA .txt file.

A screenshot of SoftwareDistribution.log showing the process of validating an update and redownloading the missing EULA .txt file from Microsoft CDN

Depending on how many updates you have in WSUS requiring content, especially third-party updates, the reset process can take a long time. WSUS will enumerate every update in serial to validate its content.

Once the reset process is complete, you will see the two log lines below in SoftwareDistribution.log:

ContentSyncAgent.WakeUpWorkerThreadProcContentSyncAgent found no more Jobs, thread exitting
ContentSyncAgent.WakeUpWorkerThreadProcServerHealth: Updating Server Health for Component: ContentSyncAgent, Marking as Not Running

A screenshot of SoftwareDistribution.log showing the reset process is complete

You can confirm an update has its EULAs restored by querying the same update as perform with PowerShell, and this time it shouldn’t throw an error:

A screenshot of a PowerShell window calling the Get-WsusUpdate on the previously problem update, now succeeding

At this point, all missing EULA .txt files should be redownloaded into the WsusContent directory. Try synchronizing your Software Update Point again to validate the issue is resolved.

Video

Published On July 05, 2024