The problem are changed paths on the server and how they affect the determination of superseded updates. For example, the URLs for the November 2019 cumulative updates are:
The last step in the determination of superseded updates is the connection of File Ids and URLs. This is done with the file UpdateCabExeIdsAndLocations.txt. It is created with the XSLT transformation file extract-update-cab-exe-ids-and-locations.xsl, which is based on the similar ExtractUpdateCabExeIdsAndLocations.xsl.
Both files use a series of tests, including:
- Code: Select all
contains(@Url, '/update/software/secu/')
This is the usual path for security updates on Microsoft servers, but it is not used for Windows 10 updates anymore. This means, that the URLs are missing in the file UpdateCabExeIdsAndLocations.txt and, as a consequence, in the ExcludeList-superseded.txt.
But the tests in the file extract-update-cab-exe-ids-and-locations.xsl are not really needed, and we can use a much simplified version instead:
- Code: Select all
<?xml version="1.0"?>
<!--
Author: H. Buhrmester, 2020
Filename: extract-file-ids-and-locations.xsl
This file extracts the following fields:
Field 1: File Id
Field 2: File Url (Location)
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:__="http://schemas.microsoft.com/msus/2004/02/OfflineSync" version="1.0">
<xsl:output omit-xml-declaration="yes" indent="no" method="text" />
<xsl:template match="/">
<xsl:for-each select="__:OfflineSyncPackage/__:FileLocations/__:FileLocation">
<xsl:value-of select="@Id" />
<xsl:text>,</xsl:text>
<xsl:value-of select="@Url" />
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Save this file as extract-file-ids-and-locations.xsl in the directory wsusoffline/xslt. It replaces the file extract-update-cab-exe-ids-and-locations.xsl for the calculation of superseded updates.
For the unmodified DownloadUpdates.cmd 11.8.3, replace:
- Code: Select all
rem *** Third step ***
echo Extracting file 6...
%CSCRIPT_PATH% //Nologo //B //E:vbs ..\cmd\XSLT.vbs "%TEMP%\package.xml" ..\xslt\extract-update-cab-exe-ids-and-locations.xsl "%TEMP%\UpdateCabExeIdsAndLocations.txt"
with:
- Code: Select all
rem *** Third step ***
echo Extracting file 6...
%CSCRIPT_PATH% //Nologo //B //E:vbs ..\cmd\XSLT.vbs "%TEMP%\package.xml" ..\xslt\extract-file-ids-and-locations.xsl "%TEMP%\UpdateCabExeIdsAndLocations.txt"
Caveats: This will randomly delete files from all download directories, and about half of all Windows 10 downloads.
For the patched DownloadUpdates.cmd from
https://forums.wsusoffline.net/viewtopic.php?f=3&t=9954&start=10#p30560 the approach is the same, but the file UpdateCabExeIdsAndLocations.txt should
not be reused for the determination of Office updates, e.g. it should be deleted after calculating the superseded updates (as in the original script).