HFDeploy [laenglich!] (was: Patchen)
From: Stefan Kanthak (postmaster_at_[127.0.0.1)
Date: 06/06/04
- Next message: Jens Dubrovnik: "Re: Ich krieg zu viel... (...beim sammeln und einspielen von Patches)"
- Previous message: Denis Jedig: "Re: Ich krieg zu viel... (...beim sammeln und einspielen von Patches)"
- In reply to: Denis Jedig: "Re: Patchen"
- Next in thread: Denis Jedig: "Re: HFDeploy [laenglich!]"
- Reply: Denis Jedig: "Re: HFDeploy [laenglich!]"
- Messages sorted by: [ date ] [ thread ]
Date: Sun, 6 Jun 2004 14:24:46 +0200
"Denis Jedig" <dj@syneticon.de> schrieb:
> On Sat, 5 Jun 2004 20:39:31 +0200, Kim Pollex wrote:
>
> > Ich kann's drehen und wenden, wie ich will - ich verstehe es
> > einfach nicht.
>
> Ich glaube, da gibt es nicht viel zu verstehen. Die Materie ist komplex und
> die Bestimmung der Abhängigkeiten und Supersedes augenscheinlich nicht
> ausreichend koordiniert.
>
> BTW, wenn du echten Spaß daran hast, das alles auseinanderzuflicken, dann
> bist du prädestiniert, um Hotfixes in Installationsmedien zu integrieren
> und die Ergebnisse öffentlich zu machen.
> http://www.microsoft.com/technet/Security/topics/patch/hfdeploy.mspx#XSLTsection126121120120
Bevor hier jemand 'ne halbgare, sub-optimale Loesung postet ;-)
Zuerst fuer W2K mit SP4 (ja, ich installiere weder IE6 SP1 noch
DX 9.x noch WMP 9.x noch andere ueberfluessige Neuerungen).
--- \I386\SVCPACK.INF fuer W2K SP4 ---
; SVCPACK.INF
;
; Setup information file for Windows 2000 HotFixes.
;
; Copyright (C) 2000-2004, Stefan Kanthak <postmaster@1.0.0.127.in-addr.arpa> :-()
;
; See Q828930, Q814847 and Q296723, but Q249149!
; Install all Post-SP4 Security HotFixes for Windows 2000
; and Windows Media Player 6.4, the Windows Media Encoder 7.0
; and additional Codecs from Windows Media Player 8.0
[Version]
BuildNumber = 2195
MajorVersion = 5
MinorVersion = 0
Provider = "Stefan Kanthak"
Signature = "$Windows NT$"
[SetupData]
CatalogSubDir = "I386\SVCPACK"
[ProductCatalogsToInstall]
Q818043.CAT
KB820888.CAT
KB822831.CAT
KB837001.CAT
KB823559.CAT
KB824105.CAT
KB823182.CAT
KB826232.CAT
KB828035.CAT
KB825119.CAT
KB828749.CAT
KB835732.CAT
KB828741.CAT
KB832353.CAT
[SetupHotfixesToRun]
Q282784\HOTFIX.EXE /M /N /Z
Q818043\UPDATE\UPDATE.EXE /N /U /Z
KB820888\UPDATE\UPDATE.EXE /N /U /Z
KB822831\UPDATE\UPDATE.EXE /N /U /Z
KB837001\UPDATE\UPDATE.EXE /N /U /Z
KB823559\UPDATE\UPDATE.EXE /N /U /Z
KB824105\UPDATE\UPDATE.EXE /N /U /Z
KB823182\UPDATE\UPDATE.EXE /N /U /Z
KB826232\UPDATE\UPDATE.EXE /N /U /Z
KB828035\UPDATE\UPDATE.EXE /N /U /Z
KB825119\UPDATE\UPDATE.EXE /N /U /Z
KB828749\UPDATE\UPDATE.EXE /N /U /Z
KB835732\UPDATE\UPDATE.EXE /N /U /Z
KB828741\UPDATE\UPDATE.EXE /N /U /Z
KB832353\UPDATE\UPDATE.EXE /N /U /Z
ROOTSUPD.EXE
BLASTCLN.EXE
DOOMCLN.EXE /S
SASSCLN.EXE /S
WBEMODBC.EXE
WMEDIST.EXE /Q /R:N
CODECS.WMP\SETUP_WM.EXE /Q /N
--- EOF ---
Wie man den Dateinamen unschwer entnehmen kann entpacke ich die
HotFixes in jeweils eigene Verzeichnisse unter \I386\SVCPACK\;
von dort kopiere ich die von den HotFixes aktualisierten Dateien
nach \I386\ und gebe den durch sie zu ersetzenden (komprimierten)
Dateien das Attribut "hidden".
Falls in \I386\ eine gleichnamige Datei existiert wird diese
unbenannt und versteckt.
Ebenso verstecke ich die zur MSJVM gehoerenden Dateien, die beim
slipstreamen mit dem SP4 leider nicht aus \I386\ entfernt werden.
Das von mir verwendete Programm zum Erzeugen der *.ISO erkennt
Doubletten und schreibt die Dateien nur einmal in das CD-Abbild
(das spart gut 80MB!); versteckte Dateien werden uebersprungen.
Damit passt neben Windows 2000 noch ein 300MB grosses \$OEM$\
(davon knapp die Haelfte Treiber) auf einen 700MB-Rohling.
Nicht integrierbar sind "Q837009.EXE /Q /R:N", "Q832894.EXE /Q /R:N"
sowie "Q832483\DAHOTFIX.EXE /Q /N" [0].
Die liegen in \$OEM$\$$\HOTFIX\ und werden ueber die \I386\WINNT.SIF
[GUIRunOnce]
Command# = "%SystemRoot%\HOTFIX\..."
ausgefuehrt [1].
Neben \I386\SVCPACK.INF noch die an die \I386\DOSNET.INF
anzuhaengenden Zeilen (bei Installation direkt von CD eigentlich
nicht noetig):
--- \I386\DOSNET.INF fuer W2K SP4 ---
; Q818043
D1,FIPS.SYS
D1,IPSEC.SYS
D1,IPSECMON.EXE
D1,NETDIAG.EXE
D1,OAKLEY.DLL
D1,POLAGENT.DLL
D1,POLSTORE.DLL
D1,RASMAN.DLL
D1,RASMANS.DLL
D1,RASTAPI.DLL
; KB820888
D1,NTFS.SYS
; KB832353
D1,MSDXM.OCX
D1,WMP.DLL
D1,WMPCORE7.DLL
D1,WMPCORE8.DLL
; KB823559 (MS03-023)
D1,HTML32.CNV
D1,MSCONV97.DLL
; KB824105 (MS03-034)
D1,NETBT.SYS
; KB823182 (MS03-041)
D1,CRYPTUI.DLL
; KB826232 (MS03-042)
D1,TSHOOT.OCX
; KB828035 (MS03-043)
D1,MSGSVC.DLL
D1,WKSSVC.DLL
; KB825119 (MS03-044)
D1,ITIRCL.DLL
; KB828749 (MS03-049)
D1,WKSSVC.DLL
; KB835732 (MS04-011)
D1,ADVAPI32.DLL
D1,BASESRV.DLL
D1,BROWSER.DLL
D1,CALLCONT.DLL
D1,CMD.EXE
D1,CRYPT32.DLL
D1,CRYPTNET.DLL
D1,CRYPTSVC.DLL
D1,DNSAPI.DLL
D1,DNSRSLVR.DLL
D1,EVENTLOG.DLL
D1,GDI32.DLL
D1,H323.TSP
D1,HFSECPER.INF
D1,HFSECUPD.INF
D1,IPNATHLP.DLL
D1,KDCSVC.DLL
D1,KERBEROS.DLL
D1,KERNEL32.DLL
D1,KSECDD.DLL
D1,LSASRV.DLL
D1,LSASS.EXE
D1,MF3216.DLL
D1,MOUNTMGR.SYS
D1,MPR.DLL
D1,MSASN1.DLL
D1,MSGINA.DLL
D1,MST120.DLL
D1,MSV1_0.DLL
D1,NETAPI32.DLL
D1,NETLOGON.DLL
D1,NMCOM.DLL
D1,NTDLL.DLL
D1,NTDSA.DLL
D1,NTKRNLMP.EXE
D1,NTKRNLPA.EXE
D1,NTKRPAMP.EXE
D1,NTOSKRNL.EXE
D1,PSBASE.DLL
D1,RDPWD.SYS
D1,SAMLIB.DLL
D1,SAMSRV.DLL
D1,SCECLI.DLL
D1,SCESRV.DLL
D1,SCHANNEL.DLL
D1,SECLOGON.DLL
D1,SFCFILES.DLL
D1,SP3RES.DLL
D1,UMANDLG.DLL
D1,USER32.DLL
D1,USERENV.DLL
D1,W32TIME.DLL
D1,W32TM.EXE
D1,WIN32K.SYS
D1,WINHTTP.DLL
D1,WINLOGON.EXE
D1,WINSRV.DLL
D1,WINTRUST.DLL
D1,UNIPROC\KERNEL32.DLL
D1,UNIPROC\NTDLL.DLL
D1,UNIPROC\WIN32K.SYS
D1,UNIPROC\WINSRV.DLL
; KB828741 (MS04-012)
D1,CATSRV.DLL
D1,CATSRVUT.DLL
D1,CLBCATEX.DLL
D1,CLBCATQ.DLL
D1,COLBACT.DLL
D1,COMADMIN.DLL
D1,COMREPL.DLL
D1,COMSETUP.DLL
D1,COMSVCS.DLL
D1,COMUID.DLL
D1,DTCSETUP.CAT
D1,DTCSETUP.EXE
D1,ES.DLL
D1,MSDTCLOG.DLL
D1,MSDTCPRX.DLL
D1,MSDTCTM.DLL
D1,MSDTCUI.DLL
D1,MTSTOCOM.EXE
D1,MTXCLU.DLL
D1,MTXDM.DLL
D1,MTXLEGIH.DLL
D1,MTXOCI.DLL
D1,OLE32.DLL
D1,RPCPROXY.DLL
D1,RPCRT4.DLL
D1,RPCSS.DLL
D1,TXFAUX.DLL
D1,XOLEHLP.DLL
; KB837001 (MS04-014)
D1,DAO360.DLL
D1,EXPSRV.DLL
D1,MSEXCH40.DLL
D1,MSEXCL40.DLL
D1,MSJET40.DLL
D1,MSJETOL1.DLL
D1,MSJINT40.DLL
D1,MSJTER40.DLL
D1,MSJTES40.DLL
D1,MSLTUS40.DLL
D1,MSPBDE40.DLL
D1,MSRD2X40.DLL
D1,MSRD3X40.DLL
D1,MSREPL40.DLL
D1,MSTEXT40.DLL
D1,MSWDAT10.DLL
D1,MSWSTR10.DLL
D1,MSXBDE40.DLL
D1,VBAJET32.DLL
[ForceCopyDriverCabFiles]
; KB835732
KERNEL32.DLL
NTDLL.DLL
WIN32K.SYS
WINSRV.DLL
--- EOF ---
Fuer XP SP1 sieht die \I386\SVCPACK.INF wie folgt aus:
--- \I386\SVCPACK.INF fuer XP mit SP1 ---
[Version]
BuildNumber = 2600
MajorVersion = 5
MinorVersion = 1
Provider = "Stefan Kanthak"
Signature = "$Windows NT$"
[SetupData]
CatalogSubDir = "I386\SVCPACK"
[ProductCatalogsToInstall]
Q811114.CAT
Q819696.CAT
Q828026.CAT
KB819696.CAT
KB826939.CAT
KB824105.CAT
KB823182.CAT
KB828035.CAT
KB825119.CAT
KB824141.CAT
KB835732.CAT
KB828741.CAT
KB837001.CAT
[SetupHotfixesToRun]
Q282784\UPDATE\UPDATE.EXE /N /Q /Z
Q811114\UPDATE\UPDATE.EXE /N /Q /Z
Q819696\UPDATE\UPDATE.EXE /N /Q /Z
Q828026\UPDATE\UPDATE.EXE /N /Q /Z
KB826939\UPDATE\UPDATE.EXE /N /Q /Z
KB824105\UPDATE\UPDATE.EXE /N /Q /Z
KB823182\UPDATE\UPDATE.EXE /N /Q /Z
KB828035\UPDATE\UPDATE.EXE /N /Q /Z
KB825119\UPDATE\UPDATE.EXE /N /Q /Z
KB824141\UPDATE\UPDATE.EXE /N /Q /Z
KB835732\UPDATE\UPDATE.EXE /N /Q /Z
KB828741\UPDATE\UPDATE.EXE /N /Q /Z
KB837001\UPDATE\UPDATE.EXE /N /Q /Z
KB840374\UPDATE\UPDATE.EXE /N /Q /Z
JS56NDE.EXE /Q:A /R:N
Q832894.EXE /Q:A /R:N
Q831167.EXE /Q:A /R:N
KB837009.EXE /Q:A /R:N
BLASTCLN.EXE
DOOMCLN.EXE /S
SASSCLN.EXE /S
CODECS.WMP\SETUP_WM.EXE /Q /N
--- EOF ---
Nach dem Auspacken der "DualMode"-HotFixes ist hier Nacharbeit noetig:
das Unterverzeichnis .\SP1\ jeweils loeschen, EULA.TXT, SPCUSTOM.DLL
und UPDATE.EXE von .\COMMON\ nach .\SP2\UPDATE\, SPMSG.DLL und SPUNINST.EXE
von .\COMMON\ nach .\SP2\ verschieben, .\XPSP1HFM.EXE loeschen, dann den
Inhalt von .\SP2\ nach .\ verschieben und .\SP2\ loeschen.
Hier lassen sich "KB817787.EXE /Q /R:N" und "Q832483\DAHOTFIX.EXE /Q /N"
nicht integrieren.
Die neuen Zeilen der \I386\DOSNET.INF:
--- \I386\DOSNET.INF fuer XP SP1 ---
[OptionalSrcDirs]
UNIPROC
SVCPACK
; Q282784
D1,QFECHECK.EXE
; Q811114 (MS03-018)
D1,ASP51.DLL
D1,DEFAULT.ASP
D1,FTPSV251.DLL
D1,HTTPEXT.DLL
D1,HTTPOD51.DLL
D1,IISCHE51.DLL
D1,INFOCOMM.DLL
D1,ISATQ.DLL
D1,LONSINT.DLL
D1,QUERY.ASP
D1,SEARCH.ASP
D1,SPIISUPD.EXE
D1,SSINC51.DLL
D1,W3SVC.DLL
; Q819696 (MS03-030)
D1,QUARTZ.DLL
; Q826939
D1,ACCWIZ.EXE
D1,CRYPT32.DLL
D1,CRYPTSVC.DLL
D1,HH.EXE
D1,HHCTRL.OCX
D1,HHSETUP.DLL
D1,HTML32.CNV
D1,ITIRCL.DLL
D1,ITISS.DLL
D1,LOCATOR.EXE
D1,MAGNIFY.EXE
D1,MIGWIZ.EXE
D1,MRXSMB.SYS
D1,MSCONV97.DLL
D1,NARRATOR.EXE
D1,NEWDEV.DLL
D1,NTDLL.DLL
D1,NTKRNLMP.EXE
D1,NTKRNLPA.EXE
D1,NTKRPAMP.EXE
D1,NTOSKRNL.EXE
D1,OLE32.DLL
D1,OSK.EXE
D1,PCHSHELL.DLL
D1,RASPPTP.SYS
D1,RPCRT4.DLL
D1,RPCSS.DLL
D1,SHDOCVW.DLL
D1,SHELL32.DLL
D1,SHMEDIA.DLL
D1,SRRSTR.DLL
D1,SRV.SYS
D1,SYSMAIN.SDB
D1,URLMON.DLL
D1,USER32K.DLL
D1,WIN32K.SYS
D1,WINSRV.DLL
D1,ZIPFLDR.DLL
; Q828026
D1,MSDXM.OCX
D1,WMP.DLL
D1,WMPCORE7.DLL
D1,WMPCORE8.DLL
; KB824105 (MS03-034)
D1,NETBT.SYS
; KB823182 (MS03-041)
D1,CRYPTUI.DLL
; KB828035 (MS03-043)
D1,MSGSVC.DLL
D1,WKSSVC.DLL
; KB825119 (MS03-044)
D1,ITIRCL.DLL
; KB824141 (MS04-045)
D1,USER32.DLL
D1,WIN32K.SYS
; KB835732 (MS04-011)
D1,CALLCONT.DLL
D1,EVTGPROV.DLL
D1,GDI32.DLL
D1,H323.TSP
D1,H323MSP.DLL
D1,HELPCTR.EXE
D1,IPNATHLP.DLL
D1,LSASRV.DLL
D1,MF3216.DLL
D1,MSASN1.DLL
D1,MSGINA.DLL
D1,MST120.DLL
D1,NETAPI32.DLL
D1,NMCOM.DLL
D1,RTCDLL.DLL
D1,SCHANNEL.DLL
D1,XPSP2RES.DLL
; KB828741 (MS04-012)
D1,CATSRV.DLL
D1,CATSRVUT.DLL
D1,CLBCATEX.DLL
D1,CLBCATQ.DLL
D1,COLBACT.DLL
D1,COMADMIN.DLL
D1,COMREPL.EXE
D1,COMSVCS.DLL
D1,COMUID.DLL
D1,ES.DLL
D1,MIGREGDB.EXE
D1,MSDTCPRX.DLL
D1,MSDTCTM.DLL
D1,MSDTCUIU.DLL
D1,MTXCLU.DLL
D1,MTXOCI.DLL
D1,OLE32.DLL
D1,RPCRT4.DLL
D1,RPCSS.DLL
D1,TXFLOG.DLL
; KB837001 (MS04-014)
D1,DAO360.DLL
D1,EXPSRV.DLL
D1,MSEXCH40.DLL
D1,MSEXCL40.DLL
D1,MSJET40.DLL
D1,MSJETOL1.DLL
D1,MSJINT40.DLL
D1,MSJTER40.DLL
D1,MSJTES40.DLL
D1,MSLTUS40.DLL
D1,MSPBDE40.DLL
D1,MSRD2X40.DLL
D1,MSRD3X40.DLL
D1,MSREPL40.DLL
D1,MSTEXT40.DLL
D1,MSWDAT10.DLL
D1,MSWSTR10.DLL
D1,MSXBDE40.DLL
D1,VBAJET32.DLL
; KB840374 (MS04-15)
D1,HELPCTR.EXE
D1,HSCUPD.EXE
D1,HSC.System.Errors.Connection.Htm.Cab
[ForceCopyDriverCabFiles]
NTOSKRNL.EXE
NDIS.SYS
IPSEC.SYS
TCPIP.SYS
NETBT.SYS
RDBSS.SYS
MUP.SYS
MRXSMB.SYS
TDI.SYS
KSECDD.SYS
KERNEL32.DLL
NTDLL.DLL
MSVCRT.DLL
MSVCRT40.DLL
MFC42.DLL
MFC42CHS.DLL
MFC42CHT.DLL
MFC42DEU.DLL
MFC42ESP.DLL
MFC42FRA.DLL
MFC42ITA.DLL
MFC42JPN.DLL
MFC42KOR.DLL
BINLSVC.DLL
DHCPSSVC.DLL
--- EOF ---
mfg
Stefan
[0] Q832484.EXE macht Probleme: packe ich diesen HotFix aus und starte
die Installation mit
Command# = "%SystemRoot%\HOTFIX\Q832483\DAHOTFIX.EXE /Q /N"
dann ermittelt DAHOTFIX im ersten Durchlauf korrekt die zu ersetzenden
Dateien, kann aber im zweiten Durchlauf auf eine der *.INF nicht mehr
zugreifen (die DAHOTFIX.LOG post ich jetzt lieber nicht :-).
Der Microsoft-Support hat nach dreimonatigem heftigen 'rumprobieren
aufgegeben :-), ich hatte 'mal wieder den Eindruck, die kennen ihre
eigenen Produkte nicht!
Fuehre ich die obige Kommandozeile direkt im Anschluss manuell aus,
so laueft die Installation problemlos ab!
Packe ich den HotFix nicht aus und verwende die in der MSKB fuer
unbeaufsichtigte Installationen vorgeschlagene Kommandozeile
Command# = "%SystemRoot%\HOTFIX\Q832483.EXE /C:"DAHOTFIX.EXE /Q /N" /Q:A"
dann bleibt Windows 2000-Setup mit Syntaxfehler in WINNT.SIF stehen:
einfach Klasse die Jungs, die unterstuetzen in WINNT.SIF geschachtelte
Ánfuehrungszeichen nicht.
Wer hierfuer (ausser der naheliegenden Indirektion ueber eine *.CMD)
eine Loesung hat, der melde sich!
[1] In der vorletzten Ausgabe der c't wird MAL WIEDER ein uralter Fehler
wiederholt: unter [GUIRunOnce] stehen mehrere Kommandos als Werte von
Command# = "..."
[2] Ebenso sollte man von CMDLINES.TXT Abstand nehmen (denn dort werden
Umgebungsvariablen NICHT ausgewertet).
In \I386\WINNT.SIF lassen sich die frueher in CMDLINES.TXT platzierten
Kommandos unter
[SetupParams]
; (siehe Q216518)
UserExecute = "%SystemRoot%\System32\Cmd.Exe /E:ON /T:F0 /K Prompt [UserExec] "
eintragen. %UserProfile% ist waehrend der Ausfuehrung "Default User".
[3] Wer eigene Kommandos noch frueher ausfuehren lassen will:
[GUIUnattended]
Arguments = "/T:F0 /K Prompt [Detached] "
DetachedProgram = "%SystemRoot%\System32\Cmd.Exe"
[
-- Die unaufgeforderte Zusendung einer Werbemail an Privatleute verstoesst gegen §1 UWG und §823 I BGB. Beschluss des LG Berlin vom 2.4.1998 (AZ: 16 O 201/98) Das unverlangte Versenden von Werbemail ist nach §1 UWG wettbewerbswidrig. Beschluss des LG Traunstein vom 18.12.1997 (AZ: 2 HKO 3755/97)
- Next message: Jens Dubrovnik: "Re: Ich krieg zu viel... (...beim sammeln und einspielen von Patches)"
- Previous message: Denis Jedig: "Re: Ich krieg zu viel... (...beim sammeln und einspielen von Patches)"
- In reply to: Denis Jedig: "Re: Patchen"
- Next in thread: Denis Jedig: "Re: HFDeploy [laenglich!]"
- Reply: Denis Jedig: "Re: HFDeploy [laenglich!]"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|