[gelöst] V6.7 - custom updates - Fehler

[gelöst] V6.7 - custom updates - Fehler

Postby wwsmith » 12.12.2010, 17:44

Hallo Torsten,
vielen Dank für Dein tolles Projekt!!
Hier ein kleines Problem der Version 6.7, auf dass ich gestoßen bin. Nach Analyse des Quelltextes habe ich den Grund gefunden und wollte Dich darauf aufmerksam machen.

Ausgangspunkt - Problem:
========================
Ich wollte einige Download Updates einbinden, die nicht in der MS-Downloadliste enthalten sind. Dazu habe ich unter

'..\static\custom'

die Dateien

StaticDownloadLinks-wxp-x86-deu.txt
StaticDownloadLinks-dotnet-x86-glb.txt

angelegt und mit den Download-Links gefüllt. Während dies für die WinXP x86 Updates klaglos funktionierte, ging bei .NET Updates gar nichts - die Files wurden nicht geladen! Die Analyse des Quelltextes ergab die Lösung im Programmfile '..\cmd\DownloadUpdates.cmd' in den Zeilen 517 - 540.

Alle in '..static\custom' liegenden Files 'StaticDownloadLinks-xxx.txt' werden nur dann der allgemeinen Downloadliste hinzugefügt, wenn im Verzeichnis '..static' ebenfalls eine Datei mit dem Namen 'StaticDownloadLinks-xxx.txt' vorhanden ist!!

Workaround:
===========
Im Fall von .NET war / ist dies nicht der Fall gewesen - einfach eine leere Datei 'StaticDownloadLinks-dotnet-x86-glb.txt' im Verzeichnis '..static' angelegt und schon wurden die Updates aus '..static\custom' geladen!!

Anregung:
=========
Im Quelltext könntest Du die inneren Programm Schleifen für die 'custom' Files vielleicht unabhängig von den 'static' Files machen => eigene Ausleseschleife der in '..static\custom' liegenden Files....

Ich hoffe einen kleinen Beitrag zu Deinem Projekt geleistet zu haben.
Gruss
wwsmith
wwsmith
 

Re: V6.7 - custom updates - Fehler

Postby WSUSUpdateAdmin » 13.12.2010, 11:26

Hallo und willkommen, wwsmith,

wwsmith wrote:vielen Dank für Dein tolles Projekt!!

:) Gern.

wwsmith wrote:Hier ein kleines Problem der Version 6.7, auf dass ich gestoßen bin. Nach Analyse des Quelltextes habe ich den Grund gefunden und wollte Dich darauf aufmerksam machen.[...]

Danke für die umfassende und zutreffende Analyse!
Auf diese Weise ist ein Problem auch schnell aus der Welt geschafft.

wwsmith wrote:Anregung: Im Quelltext könntest Du die inneren Programm Schleifen für die 'custom' Files vielleicht unabhängig von den 'static' Files machen => eigene Ausleseschleife der in '..static\custom' liegenden Files....

Super. Genau so machen wir das (siehe http://trac.wsusoffline.net/browser/trunk (r183), verfügbar heute nachmittag). Für den Installationsteil war das übrigens auch schon so...

wwsmith wrote:Ich hoffe einen kleinen Beitrag zu Deinem Projekt geleistet zu haben.

Das hast Du, danke! :)

Gruß
Torsten
Last edited by aker on 28.07.2013, 17:48, edited 1 time in total.
Reason: Trac URL aktualisiert
WSUSUpdateAdmin
Administrator
 
Posts: 2245
Joined: 07.07.2009, 14:38

Re: V6.7 - custom updates - Fehler

Postby wwsmith » 13.12.2010, 20:34

Hallo Torsten,
Danke für die schnelle Antwort! Heute habe ich dann versucht auf dem Client die 'custom .NET-Updates' zu aktivieren - leider ohne Erfolg. Also habe ich mich auf die Suche in den Client Quelltexten gemacht und folgendes gefunden:

Problem 2:
=========
Unter '..\client\static' liegt die Datei 'StaticUpdateIds-dotnet.txt', die NUR bei der Installation (oder der Aktualisierung auf SP1) von .NET benutzt wird - und zwar nur dann (Schalter /instdotnet35 gesetzt)!!
Unter '..\client\static\custom' habe ich die Datei 'StaticUpdateIds-dotnet.txt' angelegt, die meine .NET-KBs enthält (z.B.: 963707). Bei der Installation mit 'CALL DoUpdate.cmd instdotnet35' wird alles installiert - nur die 'custom .NET Updates' nicht.

Lösung 2:
========
Nach längerem Suchen in den Quelltexten ist mir aufgefallen, dass an keiner Stelle die 'custom .NET Updates' auftauchen. Wenn ich die Logik der Update Funktionen richtig verstanden habe, dann fehlt lediglich EINE Programmzeile in 'ListUpdatesToInstall.cmd':

Nach Zeile 040 wird eingefügt:
if exist ..\static\custom\StaticUpdateIds-dotnet.txt call :EvalStatics ..\static\custom\StaticUpdateIds-dotnet.txt

Ergebnis 2:
=========
Ich habe dies in einer VM getestet unter WinXP SP3 + NET3.5 - es läuft (so wie ich es mir vorstelle)!! Vielleicht kannst Du dies ja so übernehmen. Oder habe ich etwas übersehen??

Anmerkung:
==========
Das einzige NET-Update, dass jetzt noch aus der Reihe tanzt, ist das Sicherheitsupdate 'ndp1.1sp1-kb2416447', dass installiert wird und dann den Rechner schlagartig booten läßt - hast Du irgendeine Idee was dabei nicht ok ist??

Gruss
wwsmith
wwsmith
 

Re: V6.7 - custom updates - Fehler

Postby WSUSUpdateAdmin » 13.12.2010, 21:27

Hallo wwsmith,

bitte verwende 'StaticDownloadLinks-dotnet-x86-glb.txt' bzw 'StaticDownloadLinks-dotnet-x64-glb.txt', wie in Deinem ersten Posting angegeben.
Dadurch werden die Patches auch auf die richtigen Verzeichnisse verteilt; die StaticUpdateIds-dotnet.txt ist eben nur für die Installationspakete gedacht.

Das Theater mit dem spontanen Neustart bei einem ndp1.1-Patch habe ich schon mal gehört, aber nie auf einer VM nachvollziehen können. Tut mir Leid, ich denke, das ist eher ein Problem von Microsoft.

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

Re: V6.7 - custom updates - Fehler

Postby wwsmith » 14.12.2010, 08:31

Hallo Torsten,
damit wir nicht aneinander vorbei reden (oder ich es nicht verstehe...) - schau bitte noch einmal:

bitte verwende 'StaticDownloadLinks-dotnet-x86-glb.txt' bzw 'StaticDownloadLinks-dotnet-x64-glb.txt'


Mache ich - unter '..\static\custom' liegt 'StaticDownloadLinks-wxp-x86-deu.txt' und 'StaticDownloadLinks-dotnet-x86-glb.txt'. Dort sind die Custom-Download-Links für WinXP und .NET eingetragen - z.B.:
'http://..../WindowsXP-KB2345886-x86-DEU.exe' <-- in 'StaticDownloadLinks-wxp-x86-deu.txt'
'http://..../NDP35SP1-KB963707-x86.exe' <-- in 'StaticDownloadLinks-dotnet-x86-glb.txt'

Dadurch werden die Patches auch auf die richtigen Verzeichnisse verteilt

Stimmt - die Downloads landen in den Verzeichnissen '..\client\wxp\deu' bzw. '..\client\dotnet\x86-glb'

Zusätzlich müssen der Client Installation noch die zusätzlichen Updates bekannt gemacht werden - also werden unter '..\client\static\custom' die Dateien 'StaticUpdateIds-wxp-x86.txt' und 'StaticUpdateIds-dotnet.txt' angelegt. Dort werden dann die KB-Nummer eingetragen - also z.B.:
'2345886' <-- in 'StaticUpdateIds-wxp-x86.txt'
'963707' <-- in 'StaticUpdateIds-dotnet.txt'

So weit ist alles ok. Starte ich jetzt '..\client\cmd\DoUpdate.cmd', um auf einer Client Maschine ALLE Updates einzuspielen, passiert folgendes: neben den Sicherheitsupdates werden nur die in 'StaticUpdateIds-wxp-x86.txt'
vermerkten eigenen Updates eingespielt - jedoch nicht die eigenen Updates aus 'StaticUpdateIds-dotnet.txt'!!

Mit der in 'ListUpdatesToInstall.cmd' eingefügten Programmzeile ist es möglich, dieses Verhalten zu ändern und für alle 'custom-Updates' durchgängig zu gestalten (...ich brauche mich nur um meine Einträge in den 'custom'-Ordnern kümmern)!!

Nach Zeile 040 wird eingefügt:
if exist ..\static\custom\StaticUpdateIds-dotnet.txt call :EvalStatics ..\static\custom\StaticUpdateIds-dotnet.txt


Danke für Deine Geduld - Gruss
wwsmith
wwsmith
 

Re: V6.7 - custom updates - Fehler

Postby WSUSUpdateAdmin » 14.12.2010, 11:48

Hallo wwsmith,

richtig, jetzt geht's ja um den Installationsteil! :oops:
Entschuldige bitte meine Unaufmerksamkeit.

Ich schau' mir das heute noch mal an.

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

Re: V6.7 - custom updates - Fehler

Postby WSUSUpdateAdmin » 14.12.2010, 15:01

Hallo wwsmith,

wwsmith wrote:Nach Zeile 040 wird eingefügt:
if exist ..\static\custom\StaticUpdateIds-dotnet.txt call :EvalStatics ..\static\custom\StaticUpdateIds-dotnet.txt


Ich habe mich entschlossen, stattdessen lieber
Code: Select all
if exist ..\static\custom\StaticUpdateIds-dotnet.txt (
  for /F %%i in (..\static\custom\StaticUpdateIds-dotnet.txt) do echo %%i>>"%TEMP%\MissingUpdateIds.txt"
)

nach Zeile 550 in DoUpdate.cmd einzufügen (vgl. http://trac.wsusoffline.net/browser/trunk (r184)), da ansonsten die Datei ..\static\custom\StaticUpdateIds-dotnet.txt immer ausgewertet würde, z.B. auch bei Office, die Datei ..\static\StaticUpdateIds-dotnet.txt aber nicht.
Das fand ich nicht sinnvoll.

Gruß
Torsten Wittrock
Last edited by aker on 28.07.2013, 17:50, edited 1 time in total.
Reason: Trac Link aktualisiert
WSUSUpdateAdmin
Administrator
 
Posts: 2245
Joined: 07.07.2009, 14:38

Re: V6.7 - custom updates - Fehler

Postby wwsmith » 14.12.2010, 16:21

Hallo Torsten,

da ansonsten die Datei ..\static\custom\StaticUpdateIds-dotnet.txt immer ausgewertet würde, z.B. auch bei Office, die Datei ..\static\StaticUpdateIds-dotnet.txt aber nicht. Das fand ich nicht sinnvoll.


Stimmt - hatte ich für meinen Workaround so nicht bemerkt. An der Stelle, wo Du die Einfügung gemacht hast, hatte ich zuerst auch nachgesehen. Das Problem liegt dort m.E. an der Versionsabfrage - die 'custom-Updates' werden nicht installiert, wenn auf dem Zielsystem eine 'aktuelle' .NET Version liegt! Daher mein Vorschlag die 'custom-Updates' als eigenständige Teilinstallation zu sehen und folgendes nach Zeile 580 einzufügen:

Code: Select all
...
:SkipDotNet4Inst

rem *** Install .NET Framework - Custom ***
if "%INSTALL_DOTNET35%" EQU "/instdotnet35" goto CustomDotNetInst
if "%INSTALL_DOTNET4%" EQU "/instdotnet4" goto CustomDotNetInst
goto SkipCustomDotNetInst
:CustomDotNetInst
echo Installing .NET Framework custom...
if exist ..\static\custom\StaticUpdateIds-dotnet.txt (
  for /F %%i in (..\static\custom\StaticUpdateIds-dotnet.txt) do echo %%i>>"%TEMP%\MissingUpdateIds.txt"
)

...

:SkipCustomDotNetInst

rem *** Install Windows PowerShell 2.0 ***
...

Gruss
wwsmith
wwsmith
 

Re: V6.7 - custom updates - Fehler

Postby wwsmith » 16.12.2010, 15:30

Hallo Torsten,
soooo... - ich habe Deinen + meinen Vorschlag zusammengeführt und getestet. Folgende Code-Einbesserung in 'DoUpdate.cmd' wurde von mir in einer VM unter WinXP / .NET 3.5 getestet (siehe unten). Deine Einbesserung aus (r184) würde dabei entfallen.

Code: Select all
...
:SkipDotNet4Inst

rem *** Install .NET Framework - Custom ***
if "%INSTALL_DOTNET35%" EQU "/instdotnet35" goto CustomDotNetInst
if "%INSTALL_DOTNET4%" EQU "/instdotnet4" goto CustomDotNetInst
goto SkipCustomDotNetInst
:CustomDotNetInst
if exist ..\static\custom\StaticUpdateIds-dotnet.txt (
  for /F %%i in (..\static\custom\StaticUpdateIds-dotnet.txt) do echo %%i>>"%TEMP%\MissingUpdateIds.txt"
  call ListUpdatesToInstall.cmd /excludestatics
  if errorlevel 1 goto ListError
  if exist "%TEMP%\UpdatesToInstall.txt" (
    echo Installing .NET Framework custom Update...
    call InstallListedUpdates.cmd /selectoptions %BACKUP_MODE% %VERIFY_MODE% /ignoreerrors
  )
)
:SkipCustomDotNetInst

rem *** Install Windows PowerShell 2.0 ***
...


Vielleicht kannst Du es ja checken und so übernehmen. Für mein Projekt ist dies so ok., da ich damit die 'custom-Updates' vom Download und vom Client-Deployement abgedeckt habe.

Noch einmal Danke für Deinen Support!!

Gruss
wwsmith
wwsmith
 

Re: V6.7 - custom updates - Fehler

Postby WSUSUpdateAdmin » 16.12.2010, 16:14

Moin wwsmith,

ich habe Deine Änderungen nun (fast) genau so übernommen (vgl. http://trac.wsusoffline.net/browser/trunk (r185)).

Danke für Deine Mithilfe! :)

Gruß
Torsten
Last edited by aker on 28.07.2013, 17:50, edited 1 time in total.
Reason: Trac Link aktualisiert
WSUSUpdateAdmin
Administrator
 
Posts: 2245
Joined: 07.07.2009, 14:38

Next

Return to Verschiedenes / Miscellaneous

Who is online

Users browsing this forum: No registered users and 96 guests