Ich habe gerade überprüft, wie gut das automatische Upgrade von vorherigen Versionen auf die jeweils letzten Versionen mit den Linux-Skripten funktioniert.
- ESR-Version 11.9.7 auf 11.9.9 rerelease
- ESR-Version 11.9.8 auf 11.9.9 rerelease
- master-Version 12.4 auf 12.5.1 rerelease
- master-Version 12.5 auf 12.5.1 rerelease
Mit den master-Versionen habe ich keine Probleme beim Upgrade gefunden.
Mit den ESR-Versionen habe ich inkonsistente Ergebnisse bekommen:
Beim ersten Aufruf des Skripts update-generator.bash wurden die beiden Dateien SelfUpdateVersion-this.txt und SelfUpdateVersion-recent.txt gelesen, um die Versionsnummer und den Typ der Installation genau vergleichen zu können. Beides war unterschiedlich, und die neue Version wurde erfolgreich installiert:
- Code: Select all
Info: Searching for the installed version of WSUS Offline Update...
Info: Recomparing WSUS Offline Update versions:
Info: - Installed version: 11.9.9 rerelease
Info: - Available version: 11.9.9 rerelease
Info: The most recent version of WSUS Offline Update was installed successfully
Beim zweiten Aufruf des Skripts wurden die Dateien SelfUpdateVersion-this.txt und SelfUpdateVersion-recent.txt nicht in einzelne Variablen ausgelesen, weil eine Same-Day-Regel angewendet wurde.
Trotzdem wurden die beiden Dateien noch einmal mit diff verglichen, für einen "Schnelltest" vor dem Update der Konfigurationsdateien (SDD). Dabei wurde ein Unterschied festgestellt:
- Code: Select all
Info: Skipped searching for new versions of WSUS Offline Update, because it has already
been done less than one day ago
Warning: The update of configuration files was skipped, because the installed version
of WSUS Offline Update is not the latest available release.
Der Unterschied liegt offenbar in inkonsistenten Zeilenenden in den Dateien SelfUpdateVersion-this.txt und SelfUpdateVersion-recent.txt:
- Code: Select all
SelfUpdateVersion-this.txt 17 Byte, Linux-Zeilenenden (LF)
SelfUpdateVersion-recent.txt 18 Byte, Windows-Zeilenenden (CRLF)
Unter Windows habe ich das Upgrade noch nicht verglichen. Jedoch hat auch das Skript CheckOUVersion.cmd einen vergleichbaren "Schnelltest" mit comp.exe:
- Code: Select all
:justCheckForUpdates
if "%QUIET_MODE%"=="1" (
%WGET_PATH% -q -N -P ..\static https://gitlab.com/wsusoffline/wsusoffline-sdd/-/raw/master/SelfUpdateVersion-recent.txt
) else (
%WGET_PATH% -N -P ..\static https://gitlab.com/wsusoffline/wsusoffline-sdd/-/raw/master/SelfUpdateVersion-recent.txt
)
if errorlevel 1 goto DownloadError
if exist ..\static\SelfUpdateVersion-recent.txt (
echo n | %SystemRoot%\System32\comp.exe ..\static\SelfUpdateVersion-this.txt ..\static\SelfUpdateVersion-recent.txt /A /L /N=1 /C >nul 2>&1
if not errorlevel 1 goto Result_OK
) else (
goto DownloadError
)
comp.exe macht laut Beschreibung einen byteweisen Vergleich. Das wird fehlschlagen, wenn schon die Länge der Dateien unterschiedlich ist.
Viele Grüße,
hbuhrmester