A new XSLT file to extract Office updates by Product Ids

Re: A new XSLT file to extract Office updates by Product Ids

Postby aker » 11.03.2020, 11:32

Wer Rechtschreibfehler findet, darf sie behalten oder an den Meistbietenden versteigern. / Everybody finding a misspelling is allowed to keep or sell it.
aker

WSUS Offline Update „Community Edition“
https://gitlab.com/wsusoffline/wsusoffline/-/releases
aker
 
Posts: 3999
Joined: 02.03.2011, 15:32

Re: A new XSLT file to extract Office updates by Product Ids

Postby hbuhrmester » 11.03.2020, 12:26

Danke, dann funktioniert der Download ja gut!

Es bleiben nur zwei Punkte über:

  • Die Datei vviewer-x-none_d78f3d1bc020ff923b6126dd297480c3c0b06050.cab fehlt noch, weil sie in der ExcludeList-ofc-glb.txt ausgeschlossen wird.

  • Das Installationsskript sollte beide Dateien UpdateTable-ofc-deu.csv und UpdateTable-ofc-glb.csv durchsuchen (entsprechend für andere Sprachen), weil ein Update aus mehreren Dateien mit derselben Update-Id bestehen kann.

    Zum Beispiel für Office 2010 x86:

    Code: Select all
    UpdateTable-ofc-deu.csv
    588fef17-5dd2-4764-9307-6853ed165362,outlookintl-de-de_a5175c7096b9ec71aeded059cede85264131120d.cab

    UpdateTable-ofc-enu.csv
    588fef17-5dd2-4764-9307-6853ed165362,outlookintl-en-us_61d79a3735a48575981337ea1d17a9c1f7db81b7.cab

    UpdateTable-ofc-glb.csv
    588fef17-5dd2-4764-9307-6853ed165362,outlook-x-none_0e8ab5fbd9a812fa0611d5531c06e257f4d9a24e.cab



    Diese Suche steckt im Skript ListUpdatesToInstall.cmd:

    Code: Select all
    for %%k in (%OFC_LANG% %OS_LANG% glb) do (
      if exist ..\ofc\UpdateTable-ofc-%%k.csv (
        if not exist "%TEMP%\Update.txt" (
          for /F "tokens=1,2 delims=," %%l in (..\ofc\UpdateTable-ofc-%%k.csv) do (
            if "%%l"=="%%j" (
              if exist "%TEMP%\Update.txt" del "%TEMP%\Update.txt"
              call ListUpdateFile.cmd %%m ..\ofc\%%k /searchleftmost
            )
          )
        )
      )
    )


    Hier fällt auf, das erst getestet wird, ob die Datei "%TEMP%\Update.txt" nicht existiert, und dann wieder, ob sie existiert. Das ergibt auf den ersten Blick keinen großen Sinn.

    Tatsächlich erstellt das Skript ListUpdateFile.cmd eine Datei "%TEMP%\Update.txt", wenn ein passendes Update gefunden wurde. Die Datei %TEMP%\Update.txt" wird anschließend nicht gelöscht. Diese Datei scheint aber zu verhindern, dass das Skript ListUpdatesToInstall.cmd im nächsten Durchlauf der äußeren Schleife nach weiteren Treffern sucht. Das Ergebnis ist, dass nur die erste, lokalisierte Datei gefunden wird, eine dazugehörige globale Datei aber nicht.

    Wenn man die Abfrage

    Code: Select all
        if not exist "%TEMP%\Update.txt" (


    heraus nimmt, würde es vielleicht funktionieren.

    Oder man setzt diese Bedingung ganz nach außen, sodass sie nur einmal abgefragt wird, so ähnlich wie für die Office Updates o2k10, o2k13 und o2k16:

    Code: Select all
    if not exist "%TEMP%\Update.txt" (
      for %%k in (%OFC_LANG% %OS_LANG% glb) do (
        if exist ..\ofc\UpdateTable-ofc-%%k.csv (
          for /F "tokens=1,2 delims=," %%l in (..\ofc\UpdateTable-ofc-%%k.csv) do (
            if "%%l"=="%%j" (
              if exist "%TEMP%\Update.txt" del "%TEMP%\Update.txt"
              call ListUpdateFile.cmd %%m ..\ofc\%%k /searchleftmost
            )
          )
        )
      )
    )


    Allerdings kann der anschließende Test in ListUpdatesToInstall.cmd immer nur eine Datei "%TEMP%\Update.txt" berücksichtigen:

    Code: Select all
    if exist "%TEMP%\Update.txt" (
      del "%TEMP%\Update.txt"
    ) else (
      if "%%j"=="" (
        echo Warning: Update kb%%i not found.
        echo %DATE% %TIME% - Warning: Update kb%%i not found>>%UPDATE_LOGFILE%
      ) else (
        echo Warning: Update kb%%i ^(id: %%j^) not found.
        echo %DATE% %TIME% - Warning: Update kb%%i ^(id: %%j^) not found>>%UPDATE_LOGFILE%
      )
    )


    Das könnte zu falschen Meldungen führen, wenn zum Beispiel die erste Datei fehlt, aber die zweite vorhanden ist, oder umgekehrt. Vielleicht muss man die Warnungen "Update kb ... (id ...) not found" eher in das Skript ListUpdateFile.cmd verschieben, da dieses Skript nach den einzelnen Dateien sucht.

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

Re: A new XSLT file to extract Office updates by Product Ids

Postby WSUSUpdateAdmin » 11.03.2020, 17:20

:D
Klasse, alles drin.
WSUSUpdateAdmin
Administrator
 
Posts: 2245
Joined: 07.07.2009, 14:38

Re: A new XSLT file to extract Office updates by Product Ids

Postby hbuhrmester » 13.03.2020, 15:08

WSUSUpdateAdmin wrote::D
Klasse, alles drin.


Soweit ich erkennen kann, fehlt die Datei vviewer-x-none_d78f3d1bc020ff923b6126dd297480c3c0b06050.cab für Office 2010 x86 auch in WSUS Offline Update 12.0.

Der Name ist ähnlich wie die entsprechende Datei für Office 2010 x64, aber da diese Dateien mit dem ganzen Dateinamen (mit SHA-1-Hash, aber ohne Dateierweiterung) ausgeschlossen werden, müssen die Filter auch einzeln wieder gelöscht werden.

Office 2010 x86
  • (missing) Update kb2999465 (id: 6fafb1ac-8403-4884-afd2-18268a5d5dd7)
    Datei: vviewer-x-none_d78f3d1bc020ff923b6126dd297480c3c0b06050.cab

    ausgeschlossen mit vviewer-x-none_d78f3d1bc020ff923b6126dd297480c3c0b06050 in ExcludeList-ofc-glb.txt

Office 2010 x64
  • (okay) Update kb2999465 (id: fd2d829e-efaf-4b83-b3eb-8cf1b0152b90)
    Datei: vviewer-x-none_93a5add336b4989b66e85a39900f0cbe43755381.cab
  • (okay) Update kb4461631 (id: ffa69ae0-31bf-4eda-916d-172ae0899659)
    Datei: project-x-none_71118fd42ae74a27400659ee2e4b6b91c59737cc.cab

Office 2013 x86
  • (okay) Update kb4464548 (id: ed1b8d60-8e1d-435e-a457-d4a54cfeb2ce)
    Datei: project-x-none_409381d2fafcddd2f675dd1154cf9728136dc1e9.cab

Office 2013 x64
  • (okay) Update kb4464548 (id: 126dd73d-7a6c-4b28-8048-4e136070e8dd)
    Datei: project-x-none_99cb5b8c603ddec64e73a6f421be40941baf126f.cab



Außerdem hatte aker gefunden, dass einzelne Dateien immer wieder in einer Schleife installiert werden, wenn ein Update aus mehreren Dateien mit derselben Update-Id besteht, aber nur die lokalisierte Datei installiert wird:
https://forums.wsusoffline.net/viewtopic.php?f=5&t=10159#p30740

Man kann dies in der ersten Logdatei aus https://forums.wsusoffline.net/viewtopic.php?f=5&t=10159#p30739 für Office 2010 x86 erkennen:

Code: Select all
10.03.2020  1:37:47,39 - Info: Installed ..\ofc\deu\outlookintl-de-de_a5175c7096b9ec71aeded059cede85264131120d.cab

10.03.2020  1:49:31,44 - Info: Installed ..\ofc\deu\outlookintl-de-de_a5175c7096b9ec71aeded059cede85264131120d.cab


Für Office 2010 x64 war es genauso:

Code: Select all
10.03.2020  0:48:33,43 - Info: Installed ..\ofc\deu\outlookintl-de-de_aaee28b56a356fcce91becaf501398c5a19430ab.cab

10.03.2020  0:57:58,32 - Info: Installed ..\ofc\deu\outlookintl-de-de_aaee28b56a356fcce91becaf501398c5a19430ab.cab


Das Problem war offenbar, dass dazu auch eine globale Datei mit derselben Update-Id gehört.

Für Office 2010 x86 waren dies die drei Dateien mit der Update-Id 588fef17-5dd2-4764-9307-6853ed165362. Nur die erste wird installiert:

Code: Select all
UpdateTable-ofc-deu.csv
588fef17-5dd2-4764-9307-6853ed165362,outlookintl-de-de_a5175c7096b9ec71aeded059cede85264131120d.cab

UpdateTable-ofc-enu.csv
588fef17-5dd2-4764-9307-6853ed165362,outlookintl-en-us_61d79a3735a48575981337ea1d17a9c1f7db81b7.cab

UpdateTable-ofc-glb.csv
588fef17-5dd2-4764-9307-6853ed165362,outlook-x-none_0e8ab5fbd9a812fa0611d5531c06e257f4d9a24e.cab


Für Office 2010 x64 waren es drei Dateien mit der Update-Id b7af78ba-e720-4225-b200-b65354811e27:

Code: Select all
UpdateTable-ofc-deu.csv
b7af78ba-e720-4225-b200-b65354811e27,outlookintl-de-de_aaee28b56a356fcce91becaf501398c5a19430ab.cab

UpdateTable-ofc-enu.csv
b7af78ba-e720-4225-b200-b65354811e27,outlookintl-en-us_e8e2a861514ce821912ace4eefb478fb1da46f3e.cab

UpdateTable-ofc-glb.csv
b7af78ba-e720-4225-b200-b65354811e27,outlook-x-none_9eb7c6e57791b82653d69da70b88959ecbeed7b1.cab


Der Fehler scheint im Skript ListUpdatesToInstall.cmd zu liegen.

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

Re: A new XSLT file to extract Office updates by Product Ids

Postby WSUSUpdateAdmin » 13.03.2020, 15:52

Moin!

Jo, die Einschränkung auf eine Datei hat historische Gründe, die wahrscheinlich mittlerweile gar nicht mehr relevant sind.
Ich sehe mir das nochmal in Ruhe an.

Danke & Gruß
Torsten
WSUSUpdateAdmin
Administrator
 
Posts: 2245
Joined: 07.07.2009, 14:38

Re: A new XSLT file to extract Office updates by Product Ids

Postby aker » 19.07.2020, 22:11

Die "vviewer-x-none_d78f3d1bc020ff923b6126dd297480c3c0b06050.cab" habe ich mal von der Blacklist entfernt und werde das Update dazu freigeben, wenn ich alle Office-Versionen fertig getestet habe.

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

WSUS Offline Update „Community Edition“
https://gitlab.com/wsusoffline/wsusoffline/-/releases
aker
 
Posts: 3999
Joined: 02.03.2011, 15:32

Previous

Return to Anregungen / Suggestions

Who is online

Users browsing this forum: No registered users and 46 guests