Roots-Update schlägt fehl (w2k8r2)

Roots-Update schlägt fehl (w2k8r2)

Postby aker » 06.03.2020, 23:38

Hallo zusammen,

beim Versuch eine custom-Liste für Windows Home Server 2011 zu erstellen (im Prinzip ein w2k8r2 mit vorinstalliertem C++ 2010 und .NET 4.0), fiel mir auf, dass die Installation von C++ 2010 und .NET 4.8 fehlschlagen, da die Dateien nicht verifiziert werden konnten. Scheinbar funktioniert das "certuil"-Kommando nicht so wie vorgesehen. Eine Installation von rootsupd.exe (Version 41) & rvkroots.exe (Versionen 5 und 8) haben die Probleme mit .NET 4.8 und C++ 2010 behoben. Eine genaue Fehlermeldung liefere ich noch nach, da diese nicht im Log auftaucht.

Ich möchte folgende zwei Punkte anbringen:
1) Das Roots-Update sollte vor der C++-Aktualisierung stehen. [Patch in nächsten Post]
2) Behebung der Probleme mit dem Roots-Update (genauere Fehlermeldung folgt noch). (hat sich erledigt)
3) Ein Pfad mit Leerzeichen wie "C:\Users\Administrator\Desktop\Neuer Ordner" lässt die Zeile, die den aktuellen Pfad in das Log schreibt rumbuggen. Der Anteil bis zum Leerzeichen sowie das hinter ">>" tauchen in der Konsole auf.
4) Der aktuelle Servicing Stack wird nicht installiert [Patch in nächsten Post]
5) wsusou findet keine Updates (Katalog 2020-01), die neuer sind als 2018-05. (scheint ein WHS2011-Bug zu sein; eine vanilla-Installation über Windows Update funktioniert auch nicht besser)

Ich werde jetzt erst die Listen zuende erstellen und mich dann an Punkt 2 setzen (da ich den ohne autoreboot machen muss).

Viele Grüße
Last edited by aker on 07.03.2020, 21:03, edited 5 times in total.
Reason: Punkt 2 gestrichen und einen Punkt 3 hinzugefügt; Punkte 4 und 5 hinzugefügt
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 07.03.2020, 00:20

Punkt 1:
DoUpdate.cmd: Den Block
Code: Select all
rem *** Install Trusted Root Certificates and Certificate revocation lists ***
if "%UPDATE_RCERTS%" NEQ "/updatercerts" goto SkipTRCertsInst
echo Installing Trusted Root Certificates...
for /F "tokens=*" %%i in ('dir /B ..\win\glb\*.crt') do (
  if exist %SystemRoot%\Sysnative\certutil.exe (
    %SystemRoot%\Sysnative\certutil.exe -f -addstore Root "..\win\glb\%%i"
  ) else (
    %SystemRoot%\System32\certutil.exe -f -addstore Root "..\win\glb\%%i"
  )
  call :Log "Info: Installed ..\win\glb\%%i"
)
echo Installing Certificate revocation lists...
for /F "tokens=*" %%i in ('dir /B ..\win\glb\*.crl') do (
  if exist %SystemRoot%\Sysnative\certutil.exe (
    %SystemRoot%\Sysnative\certutil.exe -f -addstore Root "..\win\glb\%%i"
  ) else (
    %SystemRoot%\System32\certutil.exe -f -addstore Root "..\win\glb\%%i"
  )
  call :Log "Info: Installed ..\win\glb\%%i"
)
:SkipTRCertsInst

vor den C++-Block schieben.

Punkt 2:
Inhalt der "MicRooCerAut2011_2011_03_22.crt"
Code: Select all
<html><head><title>Microsoft Corporation</title><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"></meta><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><meta name="SearchTitle" content="Microsoft.com" scheme=""></meta><meta name="Description" content="Get product information, support, and news from Microsoft." scheme=""></meta><meta name="Title" content="Microsoft.com Home Page" scheme=""></meta><meta name="Keywords" content="Microsoft, product, support, help, training, Office, Windows, software, download, trial, preview, demo,  business, security, update, free, computer, PC, server, search, download, install, news" scheme=""></meta><meta name="SearchDescription" content="Microsoft.com Homepage" scheme=""></meta></head><body><p>Your current User-Agent string appears to be from an automated process, if this is incorrect, please click this link:<a href="http://www.microsoft.com/en/us/default.aspx?redir=true">United States English Microsoft Homepage</a></p></body></html>

Also ein UserAgent-Problem.

Punkt 3:
ausstehend

Punkt 4:
SetTargetEnvVars.cmd
Code: Select all
:Windows6.0
[...]
+set SHA2_READY=0
goto Windows%OS_VER_MAJOR%.%OS_VER_MINOR%.%OS_SP_VER_MAJOR%

Code: Select all
:Windows6.0.2
set OS_SP_VER_TARGET_MAJOR=2
set OS_SP_TARGET_ID=948465
+set SHA2_PREREQ_ID=4474419
goto SetOfficeName

Code: Select all
:Windows6.1
[...]
+set SHA2_READY=0
+set SHA2_PREREQ_ID=4474419
goto SetOfficeName

Code: Select all
:Windows6.2
[...]
set SHA2_READY=1
goto SetOfficeName

Code: Select all
:Windows6.3
[...]
set SHA2_READY=1
goto SetOfficeName

Code: Select all
:Windows10.0
[...]
set SHA2_READY=1
goto SetOfficeName

DoUpdate.cmd
Code: Select all
:UpdateSystem
rem *** Determine and install missing Microsoft updates ***
if exist %SystemRoot%\Temp\WOUpdatesToInstall.txt (
  for %%i in ("%SystemRoot%\Temp\WOUpdatesToInstall.txt") do if %%~zi==0 del %%i
  if exist %SystemRoot%\Temp\WOUpdatesToInstall.txt (
    move /Y %SystemRoot%\Temp\WOUpdatesToInstall.txt "%TEMP%\UpdatesToInstall.txt" >nul 2>&1
  )
  goto InstallUpdates
)
if "%SKIP_DYNAMIC%"=="/skipdynamic" (
  echo Skipping determination of missing updates on demand...
  call :Log "Info: Skipped determination of missing updates on demand"
  goto ListInstalledIds
)
if exist %SystemRoot%\Temp\wou_wupre_tried.txt goto ListMissingIds
echo Checking Windows Update scan prerequisites...
%CSCRIPT_PATH% //Nologo //B //E:vbs ListInstalledUpdateIds.vbs
+if exist "%TEMP%\InstalledUpdateIds.txt" (
+  if not "%SHA2_PREREQ_ID%"=="" (
+    %SystemRoot%\System32\find.exe /I "%SHA2_PREREQ_ID%" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
+    if not errorlevel 1 set SHA2_READY=1
+  )
+)
+set SHA2_PREREQ_INSTALLING=0
if exist "%TEMP%\MissingUpdateIds.txt" del "%TEMP%\MissingUpdateIds.txt"
if exist ..\static\StaticUpdateIds-wupre-%OS_NAME%.txt (
  for /F "tokens=1* delims=kbKB,;" %%i in (..\static\StaticUpdateIds-wupre-%OS_NAME%.txt) do (
    if exist "%TEMP%\InstalledUpdateIds.txt" (
      %SystemRoot%\System32\find.exe /I "%%i" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
      if errorlevel 1 echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      if not "%SHA2_PREREQ_ID%"=="" (if "%%i"=="%SHA2_PREREQ_ID%" (set SHA2_PREREQ_INSTALLING=1))
    ) else (
      echo %%i>>"%TEMP%\MissingUpdateIds.txt"
    )
  )
)
+if "%SHA2_READY%"=="1" (
+  if exist ..\static\StaticUpdateIds-wupre-%OS_NAME%-sha2.txt (
+    for /F "tokens=1* delims=kbKB,;" %%i in (..\static\StaticUpdateIds-wupre-%OS_NAME%-sha2.txt) do (
+      if exist "%TEMP%\InstalledUpdateIds.txt" (
+        %SystemRoot%\System32\find.exe /I "%%i" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
+        if errorlevel 1 echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      ) else (
+        echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      )
+    )
+  )
+)
if exist ..\static\StaticUpdateIds-wupre-%OS_NAME%-%OS_VER_BUILD%.txt (
  for /F "tokens=1* delims=kbKB,;" %%i in (..\static\StaticUpdateIds-wupre-%OS_NAME%-%OS_VER_BUILD%.txt) do (
    if exist "%TEMP%\InstalledUpdateIds.txt" (
      %SystemRoot%\System32\find.exe /I "%%i" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
      if errorlevel 1 echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      if not "%SHA2_PREREQ_ID%"=="" (if "%%i"=="%SHA2_PREREQ_ID%" (set SHA2_PREREQ_INSTALLING=1))
    ) else (
      echo %%i>>"%TEMP%\MissingUpdateIds.txt"
    )
  )
)
+if "%SHA2_READY%"=="1" (
+  if exist ..\static\StaticUpdateIds-wupre-%OS_NAME%-%OS_VER_BUILD%-sha2.txt (
+    for /F "tokens=1* delims=kbKB,;" %%i in (..\static\StaticUpdateIds-wupre-%OS_NAME%-%OS_VER_BUILD%-sha2.txt) do (
+      if exist "%TEMP%\InstalledUpdateIds.txt" (
+        %SystemRoot%\System32\find.exe /I "%%i" "%TEMP%\InstalledUpdateIds.txt" >nul 2>&1
+        if errorlevel 1 echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      ) else (
+        echo %%i>>"%TEMP%\MissingUpdateIds.txt"
+      )
+    )
+  )
+)
call :Log "Info: Checked Windows Update scan prerequisites"
call ListUpdatesToInstall.cmd /excludestatics /ignoreblacklist
if errorlevel 1 goto ListError
if exist "%TEMP%\UpdatesToInstall.txt" (
  echo Adjusting service 'Windows Update'...
  call :EnableWUSvc
  call :AdjustWUSvc
  echo Installing Windows Update scan prerequisites...
  call InstallListedUpdates.cmd /selectoptions %VERIFY_MODE% %DISM_MODE% /ignoreerrors
  if not errorlevel 1 (
    if not exist %SystemRoot%\Temp\nul md %SystemRoot%\Temp
-    echo. >%SystemRoot%\Temp\wou_wupre_tried.txt
+    if "%SHA2_READY%"=="1" (echo. >%SystemRoot%\Temp\wou_wupre_tried.txt) else (if "%SHA2_PREREQ_INSTALLING%"=="0" (echo. >%SystemRoot%\Temp\wou_wupre_tried.txt))
    set RECALL_REQUIRED=1
  )
  call :Log "Info: Installed Windows Update scan prerequisites"
)
if "%RECALL_REQUIRED%"=="1" goto Installed

StaticUpdateIds-wupre-w61-sha2.txt
Code: Select all
kb4536952,January 2020 Servicing stack update for Windows 7 SP1 and Windows Server 2008 R2 SP1

Konsequenterweise sollten dann auch die SHA2 wupre Updates für Windows 8 und neuer verschoben werden.

Punkt 5:
Scheint ein Bug in WHS 2011 zu sein. Eine vanilla-Installation findet über Windows Update auch nichts neueres. Werde das jetzt mittels statischer Definition fixen.

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby Dalai » 07.03.2020, 00:52

:x Microsoft wird immer nervtötender... Dauert wahrscheinlich nicht mehr lange, bis auch download.microsoft.com UA-aware ist.

Grüße
Dalai
Dalai
 
Posts: 1021
Joined: 12.07.2016, 21:00

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 07.03.2020, 01:10

Das mit den Zertifikaten muss schon länger so sein.
Mein Archiv vom 14.02.2020 (für w2k8 und w61/w2k8r2) war ebenfalls betroffen.

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby Dalai » 07.03.2020, 01:31

Das kann gut sein. Ich war bisher der Annahme, dass es nur die Defender-Signaturen betrifft (viewtopic.php?f=5&t=10153) und selbige die ersten waren. Dein Archiv vom 14.02. spricht dagegen. Ändert aber nichts an der steigenden Nerverei durch MS.

Grüße
Dalai
Dalai
 
Posts: 1021
Joined: 12.07.2016, 21:00

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 07.03.2020, 02:27

Dalai wrote:Ändert aber nichts an der steigenden Nerverei durch MS.

Ist das was Neues?

@WSUSUpdateAdmin
Ein Fehlerhandling des certutil-Befehls wäre sinnvoll.
Errorlevel 0 = "Erfolgreich hinzugefügt" oder "Bereits enthalten"

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby hbuhrmester » 07.03.2020, 06:24

aker wrote:
3) Ein Pfad mit Leerzeichen wie "C:\Users\Administrator\Desktop\Neuer Ordner" lässt die Zeile, die den aktuellen Pfad in das Log schreibt rumbuggen. Der Anteil bis zum Leerzeichen sowie das hinter ">>" tauchen in der Konsole auf.


Etwas ähnliches hatte ich mit WSUS Offline Update 11.8.3 bemerkt und dort als "Bug in der Funktion :Log" beschrieben:

https://forums.wsusoffline.net/viewtopic.php?f=3&t=9954&start=10#p30560

Es sollte in der Version 11.9 behoben sein, indem die Zeilen:

Code: Select all
echo Warning: Deleted unsigned file %%i.
call :Log "Warning: Deleted unsigned file %%i"


geändert wurden in:

Code: Select all
echo Warning: Deleted unsigned file %%i.
call :Log "Warning: Deleted unsigned file '%%~i'"


Viele Grüße
hbuhrmester
 
Posts: 459
Joined: 11.10.2013, 20:59

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 07.03.2020, 10:52

@hbuhrmester
Danke, diese Änderung finde ich aber nicht in der DoUpdate.cmd eines wsusou 11.9. Das Problem scheinen hier eher die mehrfache Verwendung von Anführungszeichen zu sein, sodass das Leerzeichen im Pfad als neuer Parameter interpretiert wird (aktuelle Hypothese).

Ich werde diese Änderung mal im nächsten Anlauf übernehmen und rückmelden, ob es was gebracht hat.

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 07.03.2020, 12:25

Auch ist mir aufgefallen, dass die SHA2-erzwingenden Updates nicht über die wupre-Updates installiert werden können.
Einen Patch für DoUpdate.cmde und SetTargetEnvVars.cmd habe ich entwickelt und werden ihn nach Tests hier posten.
Inhalt ist ungefähr der, dass ich zwei Variablen eingeführt habe "SHA2_PREREQ_ID" und "SHA2_READY" (in SetTargetEnvVars.cmd gesetzt für Windows 8 / Server 2012 und neuer, für Windows Server 2008 & 7 / Server 2008 R2 in DoUpdate.cmd, sofern das Update "%SHA2_PREREQ_ID%" installiert ist). Sofern SHA2_READY gesetzt ist, wird die Datei "StaticUpdateIds-wupre-w61-x64-sha2.txt" ebenfalls für wupre-Updates verarbeitet.

[edit]In den zweiten Post hineineditiert[/edit]

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Re: Roots-Update schlägt fehl (w2k8r2)

Postby aker » 11.03.2020, 11:32

Einige Fixes sind schon integriert.

Punkt 1:
wsusou 11.9.x -> https://trac.wsusoffline.net/trac.fcgi/changeset/1120
wsusou 12.x -> ausstehend?

Punkt 2:
wsusou 11.9.x -> https://trac.wsusoffline.net/trac.fcgi/changeset/1121
wsusou 12.x -> ausstehend?

Viele Grüße
Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker
aker
 
Posts: 3659
Joined: 02.03.2011, 15:32

Next

Return to Installation / Updating

Who is online

Users browsing this forum: No registered users and 34 guests