Release date: 2020-07-12
Intended compatibility: WSUS Offline Update, Community Edition 12.0
This is a port of the Linux download scripts, version 2.0 to WSUS Offline Update, Community Edition 12.0.
New features
Support for the Community Edition of WSUS Offline Updates
The Linux download scripts now support the Community Edition of WSUS Offline Updates:
The initial version 2.0-CE was tested with WSUS Offline Update, Community Edition 12.0:
Updates for the configuration files and for the self update of WSUS Offline Update are now pulled from the directory "Static Definition Updates" on GitLab:
Querying the Etag instead of timestamping for GitLab
Unfortunately, GitLab does not return the Last-modified header. This could be a problem with GitLab itself or with the Cloudflare content delivery network.
- https://gitlab.com/gitlab-org/gitlab/-/issues/18642
- https://gitlab.com/gitlab-org/gitlab/-/issues/23823
Therefore, the usual timestamping with wget or aria2 does not work. It only results in the same files being downloaded every time.
The Etag as a unique identifier can be queried instead. Download utilities like wget can send a single GET request with the conditional header "If-None-Match: <Etag>" to check for changed files. The server can then respond with "200 OK", if the file has been modified, or with "304 Not Modified", if the file is the same.
This is the the same approach, which is used for timestamping: Both use a single GET request with a conditional header and rely on the server to return the correct result.
There are four conditional headers, which can be used this way (but only one per request):
- Code: Select all
If-Unmodified-Since: <date> Check for unchanged files
If-Modified-Since: <date> Check for modified files
If-Match: <Etag> Check for unchanged files
If-None-Match: <Etag> Check for modified files
The approach for the script is:
- On the first download, the complete server response is saved to disk.
- On the next download run, the Etag is extracted and a new custom header "If-None-Match: <Etag>" is constructed and sent to the server.
- So far, this was only tested with wget, not with aria2 or other download utilities.
Support for Windows 10, version 2004
Support for Windows 10, version 2004, was added to the Window 10 selection dialog. This only makes a difference, if the corresponding exclude list file is added, e.g.:
Then you can deselect this version. Without configuration, the default will be to include all Windows 10 versions.
Notes
Since this is a new development branch, the self-update of the Linux scripts, if enabled, will not work for this version.
Downloads
The download links for this version are:
- http://downloads.hartmut-buhrmester.de/sh-2.0-ce.tgz
- http://downloads.hartmut-buhrmester.de/sh-2.0-ce_hashes.txt
- http://downloads.hartmut-buhrmester.de/sh-2.0-ce_virusreport.pdf
- http://downloads.hartmut-buhrmester.de/sh-2.0-ce_virusreport-fullpage.png
Link for the online check at VirusTotal. Note, that the URL includes the SHA-256 hash of the archive:
The hashes for the archive sh-2.0-ce.tgz are:
- Code: Select all
MD5: 5d4ee894060f387eb9274c6b67161f4e
SHA-256: 622aad7846d684e9da93c6c32c2136b13ecef7cfac93cc258aabcfbf3b378925
Further Reading
The first three posts in the original topic A complete rewrite of the Linux scripts are still being updated, to point to the latest version: