But, if the format was changed a few months ago, why did this problem NOT occur until today? I run updategenerator.exe every week.
The last official patch day, which is the second Tuesday each month, was just 5 days ago. If there are major changes, I would expect them after one of these days.
And why for W10-x64, but NOT for W10-x32?
No idea.
Secondly, why are these two, apparently critical, files not updated whenever they change, rather than only if they don't exist?
I didn't write this script.
Also, hashes-w1-x64-glb.txt was deleted!
The hashes file is deleted, if the download directory is empty. You can see that in your download log: First the script downloaded/validated 1 statically defined and 34 dynamically determined updates. Then it immediately deleted all 35 updates again. Then the empty directory and the hashes file will also be deleted, but this is not shown in the logfile.
And now we are getting "Server ignored If-Modified-Since header for file..." on almost every update
This is a misconfiguration of some Microsoft servers, which don't honor the conditional header If-Modified-Since, which is used for timestamping by both wget and aria2. wget recognizes this condition and reports it as a warning. aria2 will be lead to download existing files again.
The problem with the Windows 10 downloads is not the verification of digital file signatures, as I first suspected, but the
Cleanup of client directories. Your download.log shows, that all files were deleted between these two entries:
- Code: Select all
06/16/2019 0:03:55.59 - Info: Adjusted UpdateInstaller.ini file
(...)
06/16/2019 0:03:57.12 - Info: Cleaned up client directory for w100-x64 glb
Then the error must be in this code block in DownloadUpdates.cmd, lines 1600 - 1625:
- Code: Select all
call :Log "Info: Adjusted UpdateInstaller.ini file"
:CleanupDownload
rem *** Clean up client directory for %1 %2 ***
if not exist ..\client\%1\%2\nul goto RemoveHashes
if "%CLEANUP_DL%"=="0" goto VerifyDownload
echo Cleaning up client directory for %1 %2...
if exist "%TEMP%\ValidLinks-%1-%2.txt" del "%TEMP%\ValidLinks-%1-%2.txt"
if exist "%TEMP%\ValidStaticLinks-%1-%2.txt" (
type "%TEMP%\ValidStaticLinks-%1-%2.txt" >>"%TEMP%\ValidLinks-%1-%2.txt"
)
if exist "%TEMP%\ValidDynamicLinks-%1-%2.txt" (
type "%TEMP%\ValidDynamicLinks-%1-%2.txt" >>"%TEMP%\ValidLinks-%1-%2.txt"
)
for /F %%i in ('dir ..\client\%1\%2 /A:-D /B') do (
if exist "%TEMP%\ValidLinks-%1-%2.txt" (
%SystemRoot%\System32\find.exe /I "%%i" "%TEMP%\ValidLinks-%1-%2.txt" >nul 2>&1
if errorlevel 1 (
del ..\client\%1\%2\%%i
call :Log "Info: Deleted ..\client\%1\%2\%%i"
)
) else (
del ..\client\%1\%2\%%i
call :Log "Info: Deleted ..\client\%1\%2\%%i"
)
)
if exist "%TEMP%\ValidLinks-%1-%2.txt" del "%TEMP%\ValidLinks-%1-%2.txt"
dir ..\client\%1\%2 /A:-D >nul 2>&1
if errorlevel 1 rd ..\client\%1\%2
call :Log "Info: Cleaned up client directory for %1 %2"
But this code didn't change in recent versions of WSUS Offline Update. The only recent change was the addition of the wget option "--trust-server-names", which is necessary for the download of the virus definition files. But this could only make a difference, if there is some redirection during download, and if this redirection causes the filename to be changed. But there is no indication for such a redirection.
But these are just random observations. I don't have any explanation at this point.
You could disable the
Cleanup of client directories in the settings file UpdateGenerator.ini. Add the following line to the section
Options:
- Code: Select all
cleanupdownloads=Disabled
Then check the contents of the download directory client\w100-x64\glb for anything unusual.
Regards,
hbuhrmester