Site-Icon

updaten.cmd als HTML-Datei

Site-Icon

Zum Menüeintrag 'Skripte etc.'   -   Druck-/Layout-Infos (hier: Quer-Format)   -   Stand: 30.09.2006


@echo off
TITLE - Windows 2000 SP4 - Kontrolle oder Aktualisierung der Installation
ECHO.
ECHO Vorbereitungen - Bitte einen Augenblick Geduld . . .

REM Erstelle für Protokoll-/Prüfdateien den Ordner ...
IF NOT EXIST "%userprofile%\nt_adui" MKDIR "%userprofile%\nt_adui"

REM Erstelle VBS-Skript zur Prüfung von Dateiversionen
SET XUP_VER="%userprofile%\nt_adui\XUP_VER.VBS"
ECHO Set oFSO = CreateObject("Scripting.FileSystemObject") >%XUP_VER%
ECHO WScript.Echo oFSO.GetFileVersion(WScript.Arguments.Item(0)) >>%XUP_VER%

REM Definiere den Pfad zu den Update-Dateien
IF EXIST 5: SET PfadUpdates=5:\$OEM$\$1\Updates
IF EXIST 5: GOTO :REGcheckINSTALL
IF EXIST %systemdrive%\$_INST\I_%ZEIT% SET PfadUpdates=%systemdrive%\Updates

:REGcheckINSTALL
REM Definiere Registry-Schlüssel und exportiere Werte, um Installationsstatus zu prüfen
SET HLMSC=HKEY_LOCAL_MACHINE\SOFTWARE\Classes
SET HLMSM=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft

SET CLCL="%HLMSC%\CLSID"
SET DX9c="%HLMSM%\DirectX"
SET IEOE="%HLMSM%\Internet Explorer"
SET J_MS="%HLMSC%\CLSID\{08B0E5C0-4FCB-11CF-AAA5-00401C608500}"
SET JSUN="%HLMSM%\Code Store Database\Distribution Units"
SET MBSA="%HLMSC%\Installer\Products"
SET MP90="%HLMSM%\MediaPlayer\PlayerUpgrade"
SET MSic="%HLMSM%\Active Setup\Installed Components"
SET MSui="%HLMSM%\Windows\CurrentVersion\Uninstall"
SET MSup="%HLMSM%\Updates"
SET ROOT="%HLMSM%\Active Setup\Installed Components\{EF289A85-8E57-408d-BE47-73B55609861A}"
SET SCup="%HLMSM%\Active Setup\Installed Components\{4f645220-306d-11d2-995d-00c04f98bbc9}"
SET SP_4="%HLMSM%\Windows NT\CurrentVersion"

%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\CLCL.TXT" %CLCL%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\DX9c.TXT" %DX9c%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\IEOE.TXT" %IEOE%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\J_MS.TXT" %J_MS%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\JSUN.TXT" %JSUN%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MBSA.TXT" %MBSA%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MP90.TXT" %MP90%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MSic.TXT" %MSic%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MSui.TXT" %MSui%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MSup.TXT" %MSup%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\ROOT.TXT" %ROOT%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\SCup.TXT" %SCup%
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\SP_4.TXT" %SP_4%
ECHO. Ok.
REM Vorbereitungen fertig

REM -Doku---
REM Existiert %systemdrive%\$_INST\I_%ZEIT% liegt eine NEU-Installation vor.
REM Überspringe dann das Menü.
IF EXIST %systemdrive%\$_INST\I_%ZEIT% GOTO :INSTup
ECHO.
ECHO. Hinweise:
ECHO. Bei KONTROLLIEREN wird nach ca. 20 Sekunden eine Protokolldatei angezeigt.
ECHO. Bei AKTUALISIEREN braucht dies je nach Installationsumfang mehr Zeit.
ECHO.
ECHO. Installationen werden am Bildschirm angezeigt.
ECHO. Bereits vorhandene Installationen werden NUR in der Protokolldatei genannt.

:WAHL
ECHO.
ECHO.
ECHO Auswahl:
ECHO --------
ECHO. [K] KONTROLLIEREN - KONTROLLIERE den Status aller Installationen
ECHO.
IF EXIST 5: (
ECHO. [A] AKTUALISIEREN - AKTUALISIERE Windows + installierte Erweiterungen
) ELSE (
ECHO. [A] AKTUALISIEREN - NICHT verfuegbar
)
ECHO.
ECHO.
ECHO. [Q] Quit/Ende
ECHO.

:Auswahl
SET /p Eingabe= Ihre Auswahl bitte:

IF /i '%Eingabe%'=='k' GOTO :KONTROLLIEREN
IF /i '%Eingabe%'=='a' GOTO :AKTUALISIEREN
IF /i '%Eingabe%'=='q' GOTO :QUIT
GOTO :Auswahl

:QUIT
EXIT

:AKTUALISIEREN
IF NOT EXIST 5: (
ECHO.
ECHO. AKTUALISIEREN ist NUR nach dem Aufruf von dlstart.cmd erreichbar.
ECHO. Starte nun lediglich eine KONTROLLE ...
%windir%\system32\PING.EXE -n 7 127.0.0.1 >NUL
GOTO :KONTROLLIEREN
)

:INSTup
REM Erstelle zu Prüfzwecken ...
IF NOT EXIST %systemdrive%\$_INST\UPDATE MKDIR %systemdrive%\$_INST\UPDATE

:KONTROLLIEREN
REM ---Doku-

:UPDATELOG
SET ULOG=%TEMP%\UPLOG.TXT
REM Beginne mit dem Erstellen der LOG-Datei
ECHO. >%ULOG%
REM Bezeichne den Vorgang, der stattfindet
IF NOT EXIST %systemdrive%\$_INST\UPDATE ECHO Vorgang: KONTROLLIERE den Status aller Installationen >>%ULOG%
IF EXIST %systemdrive%\$_INST\UPDATE ECHO Vorgang: AKTUALISIERE Windows + installierte Erweiterungen >>%ULOG%
IF EXIST %systemdrive%\$_INST\I_%ZEIT% ECHO. IM RAHMEN EINER N E U - Installation >>%ULOG%
ECHO. >>%ULOG%
ECHO Datum: %DATE% >>%ULOG%
ECHO Zeit: %TIME% >>%ULOG%
ECHO. >>%ULOG%

:SP4check
REM Kontrolliere, ob das SP4 installiert ist ...
FIND /i "Service Pack 4" "%userprofile%\nt_adui\SP_4.TXT" >NUL
IF NOT ERRORLEVEL 1 GOTO :SP4ok
ECHO Das SP4 ist NICHT INSTALLIERT.
ECHO Installieren Sie ZUERST das Service Pack 4 zu Windows 2000!
ECHO.
ECHO Dieses Skript wird nach einem Tastendruck abgebrochen.
PAUSE >NUL
EXIT
:SP4ok
ECHO Windows 2000: Service Pack 4 ist installiert >>%ULOG%


:INSTALLATION
ECHO.
ECHO Starte . . .

:WIN2000
ECHO.
ECHO. >>%ULOG%
ECHO Win 2000: "Patches"
ECHO Windows 2000: "Patches" >>%ULOG%
ECHO ----------------------- >>%ULOG%

REM Suche in TXT REG "Patchtext" Update-Datei Parameter
REM ---
CALL:PATCH Updaterollup MSup %MSup% "KB 891861 / Update Rollup 1" Windows2000-KB891861-V2-x86-DEU.exe /quiet /norestart

REM Suche in TXT REG "Patchtext" Update-Datei Parameter
REM ---
REM Stichtag für das Update-Rollup 1 (UR1) für SP4: Ende April '05
REM Nachstehende Updates sind VOR dem Stichtag erschienen!
CALL:PATCH 818043 MSup %MSUP% "Q 818043" Q818043_W2k_SP5_x86_DE.exe -q -z
CALL:PATCH 819745 MSup %MSUP% "KB 819745" Windows2000-KB819745-x86-DEU.exe -q -z
CALL:PATCH 838989 MSup %MSUP% "KB 838989" Windows2000-KB838989-x86-DEU.EXE /quiet /norestart
CALL:PATCH 842773 MSup %MSUP% "KB 842773" Windows2000-KB842773-x86-DEU.exe /quiet /norestart
CALL:PATCH 842933 MSup %MSUP% "KB 842933" Windows2000-KB842933-x86-DEU.exe /quiet /norestart
REM Vorstehende Updates sind VOR dem Stichtag erschienen!
REM ---
CALL:PATCH 896358 MSup %MSUP% "KB 896358" Windows2000-KB896358-x86-DEU.exe /quiet /norestart
CALL:PATCH 896422 MSup %MSUP% "KB 896422" Windows2000-KB896422-x86-DEU.exe /quiet /norestart
CALL:PATCH 890046 MSup %MSUP% "KB 890046" Windows2000-KB890046-x86-DEU.exe /quiet /norestart
CALL:PATCH 901214 MSup %MSUP% "KB 901214" Windows2000-KB901214-x86-DEU.EXE /quiet /norestart
CALL:PATCH 893756 MSup %MSUP% "KB 893756" Windows2000-KB893756-x86-DEU.EXE /quiet /norestart
CALL:PATCH 899587 MSup %MSUP% "KB 899587" Windows2000-KB899587-x86-DEU.EXE /quiet /norestart
CALL:PATCH 896423 MSup %MSUP% "KB 896423" Windows2000-KB896423-x86-DEU.EXE /quiet /norestart
CALL:PATCH 905414 MSup %MSUP% "KB 905414" Windows2000-KB905414-x86-DEU.EXE /quiet /norestart
CALL:PATCH 899589 MSup %MSUP% "KB 899589" Windows2000-KB899589-x86-DEU.EXE /quiet /norestart
CALL:PATCH 905749 MSup %MSUP% "KB 905749" Windows2000-KB905749-x86-DEU.EXE /quiet /norestart
CALL:PATCH 901017 MSup %MSUP% "KB 901017" Windows2000-KB901017-x86-DEU.EXE /quiet /norestart
CALL:PATCH 900725 MSup %MSUP% "KB 900725" Windows2000-KB900725-x86-DEU.EXE /quiet /norestart
CALL:PATCH 896424 MSup %MSUP% "KB 896424" Windows2000-KB896424-x86-DEU.EXE /quiet /norestart
CALL:PATCH 912919 MSup %MSUP% "KB 912919" Windows2000-KB912919-x86-DEU.EXE /quiet /norestart
CALL:PATCH 908519 MSup %MSUP% "KB 908519" Windows2000-KB908519-x86-DEU.EXE /quiet /norestart
CALL:PATCH 908531 MSup %MSUP% "KB 908531" Windows2000-KB908531-v2-x86-DEU.EXE /quiet /norestart
CALL:PATCH 913580 MSup %MSUP% "KB 913580" Windows2000-KB913580-x86-DEU.EXE /quiet /norestart
CALL:PATCH 911280 MSup %MSUP% "KB 911280" Windows2000-KB911280-v2-x86-DEU.EXE /quiet /norestart
CALL:PATCH 914389 MSup %MSUP% "KB 914389" Windows2000-KB914389-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917736 MSup %MSUP% "KB 917736" Windows2000-KB917736-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917953 MSup %MSUP% "KB 917953" Windows2000-KB917953-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917537 MSup %MSUP% "KB 917537" Windows2000-KB917537-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917159 MSup %MSUP% "KB 917159" Windows2000-KB917159-x86-DEU.EXE /quiet /norestart
CALL:PATCH 914388 MSup %MSUP% "KB 914388" Windows2000-KB914388-x86-DEU.EXE /quiet /norestart
CALL:PATCH 921883 MSup %MSUP% "KB 921883" Windows2000-KB921883-x86-DEU.EXE /quiet /norestart
CALL:PATCH 920683 MSup %MSUP% "KB 920683" Windows2000-KB920683-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917008 MSup %MSUP% "KB 917008" Windows2000-KB917008-x86-DEU.EXE /quiet /norestart
CALL:PATCH 921398 MSup %MSUP% "KB 921398" Windows2000-KB921398-x86-DEU.EXE /quiet /norestart
CALL:PATCH 922616 MSup %MSUP% "KB 922616" Windows2000-KB922616-x86-DEU.EXE /quiet /norestart
CALL:PATCH 920670 MSup %MSUP% "KB 920670" Windows2000-KB920670-x86-DEU.EXE /quiet /norestart
CALL:PATCH 917422 MSup %MSUP% "KB 917422" Windows2000-KB917422-x86-DEU.EXE /quiet /norestart
CALL:PATCH 920685 MSup %MSUP% "KB 920685" Windows2000-KB920685-x86-DEU.EXE /quiet /norestart
CALL:PATCH 922582 MSup %MSUP% "KB 922582" Windows2000-KB922582-x86-DEU.EXE /quiet /norestart
CALL:PATCH 920958 MSup %MSUP% "KB 920958" Windows2000-KB920958-v2-x86-DEU.EXE /quiet /norestart

ECHO. >>%ULOG%
ECHO Windows 2000: "- O P T I O N A L E - Patches" >>%ULOG%
ECHO [solche, die NICHT AUTOMATISCH GELADEN werden] >>%ULOG%
ECHO ---------------------------------------------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
REM
:FASTFAT
REM Prüfe Version von FASTFAT.SYS
set fast_file="%WINDIR%\system32\drivers\fastfat.sys"
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %XUP_VER% %fast_file%') do set fast_filever=%%a
IF %fast_filever% GEQ 5.0.2195.7061 (
ECHO "KB 904368" ist installiert >>%ULOG%
) ELSE (
CALL:PATCH 904368 MSup %MSUP% "KB 904368" Windows2000-KB904368-v3-x86-DEU.EXE /quiet /norestart
)
:FASTFAT_ENDE
CALL:PATCH 820608 MSup %MSUP% "Q 820608" Q820608_W2k_SP5_x86_DE.exe -q -z
CALL:PATCH 908506 MSup %MSUP% "KB 908506" Windows2000-KB908506-x86-DEU.EXE /quiet /norestart
CALL:PATCH 894395 MSup %MSUP% "KB 894395" Windows2000-KB894395-x86-DEU.EXE /quiet /norestart
CALL:PATCH 909520 MSup %MSUP% "KB 909520" Windows-KB909520-v1.000-x86-DEU.exe /quiet /norestart


:IEOE
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "IE/OE 6 SP 1" "6.0.2800" IEOE.TXT :ROOTSUPD
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
:VGX
REM KB 833989 ist seit 26.09.06 veraltet. Der VGX-Check findet nicht mehr statt.
GOTO :VGX_ENDE
set vgx_file="%CommonProgramFiles%\Microsoft Shared\vgx\vgx.dll"
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %XUP_VER% %vgx_file%') do set vgx_filever=%%a
IF %vgx_filever% EQU 6.0.2800.1411 (
ECHO "KB 833989 (IE)" ist installiert >>%ULOG%
) ELSE (
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 833989 MSic %MSic% "KB 833989 (IE)" IE6.0sp1-KB833989-x86-DEU.exe /Q:A /R:N
)
:VGX_ENDE
CALL:PATCH 885258 MSic %MSic% "KB 885258 (IE)" IE6.0sp1-KB885258-Windows-NT4sp6a-98-ME-x86-ENU.exe /Q:A /R:N /N:V
CALL:PATCH 905495 MSup %MSUP% "KB 905495 (IE)" IE6.0sp1-KB905495-Windows2000-x86-DEU.exe /quiet /norestart
REM VERALTET "KB 912812 (IE)" IE6.0sp1-KB912812-Windows-2000-XP-x86-DEU.exe /quiet /norestart
CALL:PATCH 911567 MSup %MSUP% "KB 911567 (OE)" OE6.0sp1-KB911567-Windows-2000-XP-x86-DEU.exe /quiet /norestart
CALL:PATCH 918439 MSup %MSUP% "KB 918439 (IE)" IE6.0sp1-KB918439-Windows-2000-XP-x86-DEU.exe /quiet /norestart
CALL:PATCH 918899 MSup %MSUP% "KB 918899 (IE)" IE6.0sp1-KB918899-Windows-2000-XP-v3-x86-DEU.exe /quiet /norestart
CALL:PATCH 925486 MSup %MSUP% "KB 925486 (IE)" IE6.0sp1-KB925486-Windows2000-x86-DEU.exe /quiet /norestart

:ROOTSUPD
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "Update Stammzertifikat" "EF289A85-8E57-408d-BE47-73B55609861A" MSic.TXT :INSTALLER
CALL:VERSION "9.0" "9,0,2195,0" ROOT.TXT

:INSTALLER
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "Installer 3.1 Vers. 2" "KB893803v2" MSup.TXT :JAVA

:JAVA
:MSJAVA
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "MS Java VM" "08B0E5C0-4FCB-11CF-AAA5-00401C608500" CLCL.TXT :SUNJAVA
CALL:VERSION "5.0.3810" "5,0,3810,0" J_MS.TXT

REM -Doku---
:SUNJAVA
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "SUN Java" "Java Runtime Environment" JSUN.TXT :WMP
REM :VERSION "1.5.0.08" "1_5_0_08-windows" JSUN.TXT
ECHO Seit dem 22.09.2006 findet KEINE Versionskontrolle von Sun-Java mehr statt! >>%ULOG%
ECHO Kontrollieren Sie die Version bitte manuell auf Aktualitaet. >>%ULOG%

:WMP
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "WMP 9" "9,0" MP90.TXT :DIRECTX
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH wm817885 MSup %MSup% "KB 817885" windowsmedia9-kb817885-x86-enu.exe /Q:A /R:N
CALL:PATCH wm822620 MSup %MSup% "KB 822620" WindowsMedia9-KB822620-x86-DEU.exe /Q:A /R:N
CALL:PATCH 891122 MSui %MSui% "KB 891122" WindowsMedia9-KB891122-x86-Global-ENU.exe /quiet /norestart
CALL:PATCH 911564 MSui %MSui% "KB 911564" WindowsMedia-KB911564-x86-DEU.exe /quiet /norestart
CALL:PATCH 917734 MSui %MSui% "KB 917734" WindowsMedia9-KB917734-x86-DEU.exe /quiet /norestart

:DIRECTX
REM ---Doku-
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "DirectX 9.0c" "4.09.00.0904" DX9c.TXT :MDAC
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 904706 MSup %MSup% "KB 904706" Windows2000-KB904706-DX9-x86-DEU.exe /quiet /norestart

:MDAC
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "MDAC 2.81" "MDACVer.Version.2.81" CLCL.TXT :WEBFOLDER
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 911562 MSup %MSUP% "KB 911562" MDAC281-KB911562-x86-DEU.exe /quiet /norestart


:WEBFOLDER
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "Web Folder Update" "0819E89D-6214-4B6F-A18D-4633CB4E0E4A" MSui.TXT :MSXML


:MSXML
REM msxml3.dll - Infos:
REM 30_SP5 / Version 8.50.2162.0 / 1.172.992 Bytes
REM 30_SP7 / Version 8.70.1104.0 / 1.049.088 Bytes
REM Nachstehende VBS-Passagen von Torgeir Bakken (MVP Scripting)

set xml_file="%systemroot%\system32\msxml3.dll"

ECHO. >>%ULOG%
ECHO. >>%ULOG%
ECHO Programm: "MS XML 3.0"
ECHO Programmname: "MS XML 3.0" >>%ULOG%
IF NOT EXIST %xml_file% (
ECHO =Installiert? NICHT INSTALLIERT >>%ULOG%
GOTO :WSCRIPT
) ELSE (
ECHO =Installiert? JA >>%ULOG%
)

ECHO SOLL-Version: "SP 5 oder SP 7" >>%ULOG%
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %XUP_VER% %xml_file%') do set xml_filever=%%a
for /f "tokens=2 delims=. " %%a in ("%xml_filever%") do set xml_parameter2=%%a

set xml_splevel=%xml_parameter2:~0,1%

IF %xml_splevel% GEQ 5 (
ECHO. IST-Version = Service Pack %xml_splevel% >>%ULOG%
) ELSE (
ECHO. IST-Version ist NICHT aktuell >>%ULOG%
)


:WSCRIPT
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "Windows Script 5.6" "Windows Script 5.6" MSic.TXT :MBSA
rem CALL:VERSION "5.6.0.8825" "5,6,0,8825" SCup.TXT
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%

:JSCRIPT
set jscript_file="%windir%\system32\jscript.dll"
for /f "tokens=*" %%a in (
'cscript.exe //Nologo %XUP_VER% %jscript_file%') do set jscript_filever=%%a
IF %jscript_filever% EQU 5.6.0.8831 (
ECHO "KB 917344" ist installiert >>%ULOG%
) ELSE (
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 917344 MSic %MSic% "KB 917344" Windows2000-KB917344-56-x86-deu.exe /Q:A /R:N
)
:JSCRIPT_ENDE


:MBSA
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "MBSA 1.2.1" "Microsoft Baseline Security Analyzer 1.2.1" MBSA.TXT :MBSA_20

:MBSA_20
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "MBSA 2.0" "Microsoft Baseline Security Analyzer 2.0" MBSA.TXT :JVIEWER


:JVIEWER
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "Journal Viewer" "43DCF766-6838-4F9A-8C91-D92DA586DFA" MSui.TXT :NET_FW_11
CALL:VERSION "1.5.2316.0" "43DCF766-6838-4F9A-8C91-D92DA586DFA8" MSui.TXT


:NET_FW_11
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM ".NET Framework 1.1" "{CB2F7EDD-9D1F-43C1-90FC-4F52EAE172A1}" MSui.TXT :NET_FW_20
CALL:VERSION "Sprachpaket Deutsch" "{E78BFA60-5393-4C38-82AB-E8019E464EB4}" MSui.TXT
CALL:VERSION "Service Pack 1" "867460" MSup.TXT
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 886903 MSup %MSup% "KB 886903" NDP1.1sp1-KB886903-X86.exe /q


:NET_FW_20
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM ".NET Framework 2.0" "{7131646D-CD3C-40F4-97B9-CD9E4E6262EF}" MSui.TXT :RMC
CALL:VERSION "Sprachpaket Deutsch" "{8937FCB2-2FC6-4FC3-9FB5-DE2C92DB9C38}" MSui.TXT
ECHO Patches: >>%ULOG%
ECHO -------- >>%ULOG%
REM ---
REM Suche in TXT REG "Patchtext" Update-Datei Parameter
CALL:PATCH 917283 MSup %MSup% "KB 917283" NDP20-KB917283-X86.exe /qn


:RMC
REM Führe Korrekturinstallation von Englisch auf Deutsch durch,
REM falls Englisch installiert ist und die deutsche Updatedatei
REM vorliegt
FIND /i "3192A00C-7336-48C6-8BD7-54B9CFA6F7C1" "%userprofile%\nt_adui\MSui.txt" >NUL 2>NUL
IF ERRORLEVEL 1 GOTO :RMCD
IF NOT EXIST 5:\$OEM$\$1\Updates\140_RM\WindowsRightsManagementServicesSP1-KB839178-Client-GER.exe GOTO :RMCE
ECHO.
ECHO Korrigiere Installation 'Rechteverwaltungs-Client' von Englisch auf Deutsch
REM De-Installiere ...
MsiExec.exe /X{3192A00C-7336-48C6-8BD7-54B9CFA6F7C1} /qn
FIND /i "EC905264-BCFE-423B-9C42-C3A106266790" "%userprofile%\nt_adui\MSui.txt" >NUL 2>NUL
IF NOT ERRORLEVEL 1 MsiExec.exe /X{EC905264-BCFE-423B-9C42-C3A106266790} /qn
ECHO Installiere RM-Client DEUTSCH + Client-Komponente 'Backwards Compatibility'
START /WAIT %PfadUpdates%\140_RM\WindowsRightsManagementServicesSP1-KB839178-Client-GER.exe -q -x:%TEMP%\RMCDtemp
START /WAIT %TEMP%\RMCDtemp\msdrmclient.msi /qn
START /WAIT %TEMP%\RMCDtemp\rmclientbackcompat.msi /qn
RMDIR /S /Q %TEMP%\RMCDtemp
%WINDIR%\REGEDIT.EXE /e "%userprofile%\nt_adui\MSui.TXT" "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
ECHO. Ok.
ECHO.
GOTO :RMCD

:RMCE
REM "Bezeichnung" "Suche" in Datei Sprungmarke
CALL:PROGRAM "RM Client - English" "3192A00C-7336-48C6-8BD7-54B9CFA6F7C1" MSui.txt :RMBackComp
:RMCD
CALL:PROGRAM "RM Client - Deutsch" "F2DE3FC2-438A-45C9-AA3F-5E80485358ED" MSui.txt :RMBackComp

:RMBackComp
CALL:PROGRAM "RM Backwards Compatibility" "EC905264-BCFE-423B-9C42-C3A106266790" MSui.txt :RMU

:RMU
REM Beim IE-Add-On sind 2 verschiedene Kennungen möglich
REM ---
FIND /i "AB9A5128-0616-4FA5-81CA-2F09EC573C98" "%userprofile%\nt_adui\MSui.txt" >NUL 2>NUL
IF NOT ERRORLEVEL 1 (
CALL:PROGRAM "RM IE 6 Add-On" "AB9A5128-0616-4FA5-81CA-2F09EC573C98" MSui.txt :ENDE
) ELSE (
CALL:PROGRAM "RM IE 6 Add-On" "3505E1E2-8127-4681-A3EC-F9B5CAAA07C9" MSui.txt :ENDE
)


:ENDE
TITLE Abschluss
ECHO. >>%ULOG%
ECHO --------------------- >>%ULOG%
ECHO E N D E >>%ULOG%
ECHO --------------------- >>%ULOG%
ECHO Datum: %DATE% >>%ULOG%
ECHO Zeit: %TIME% >>%ULOG%
ECHO --------------------- >>%ULOG%
ECHO. >>%ULOG%
ECHO INFO: Diverse, zur Laufzeit existierende Umgebungsvariablen ... >>%ULOG%
ECHO ----- >>%ULOG%
SET >%TEMP%\SET.TXT
FINDSTR /v /i "HKEY_" %TEMP%\SET.TXT >>%ULOG%

REM Definiere Datum der LOG-Datei
SET JJMMTT="%date:~9,4%-%date:~6,2%-%date:~3,2%"
SET JJMMTT=%JJMMTT: =0%
SET SSMMSS=%time:~0,2%-%time:~3,2%-%time:~6,2%"
SET SSMMSS=%SSMMSS: =0%

REM Die erstellte LOG-Datei wird in Notepad aufgerufen,
REM wenn KEINE NEU-Installation vorliegt.
IF EXIST %systemdrive%\$_INST\I_%ZEIT% GOTO :NEUinstall
REM Kurze Pause
%windir%\system32\PING.EXE -n 2 127.0.0.1 >NUL
START /MAX %TEMP%\UPLOG.TXT

REM Kopiere LOG-Datei nach "%userprofile%\nt_adui"
REM Namensgebung je nach Ablauf (..._UA.LOG oder ..._UK.LOG)
IF EXIST %systemdrive%\$_INST\UPDATE (
COPY %TEMP%\UPLOG.TXT "%userprofile%\nt_adui\%JJMMTT%_%SSMMSS%_UA.LOG"
) ELSE (
COPY %TEMP%\UPLOG.TXT "%userprofile%\nt_adui\%JJMMTT%_%SSMMSS%_UK.LOG"
)
REM Lösche, falls existent, den Ordner ...
IF EXIST %systemdrive%\$_INST RMDIR /S /Q %systemdrive%\$_INST
EXIT

:NEUinstall
REM Kopiere nach einer NEU-Installation die Protokolldatei auf den Desktop ...
COPY %TEMP%\UPLOG.TXT "%USERPROFILE%\Desktop\%JJMMTT% W2k-Install.LOG"
REM ... UND nach ...
COPY %TEMP%\UPLOG.TXT "%userprofile%\nt_adui\%JJMMTT% W2k-Install.LOG"
REM Lösche Hilfsordner zur Installation ...
IF EXIST %systemdrive%\$_INST RMDIR /S /Q %systemdrive%\$_INST
EXIT


REM Nachfolgend sind die CALL-Schleifen aufgeführt.
REM Eine CALL-Schleife wird mittels 'GOTO :EOF' beendet. Das Skript
REM kehrt dann an die Stelle zurück, von wo die Schleife aufgerufen
REM wurde und verarbeitet den nächsten (CALL-) Befehl.

:PROGRAM
REM Prüft das Programm (die Erweiterung) selbst
TITLE %1
ECHO. >>%ULOG%
ECHO. >>%ULOG%
ECHO Programm: %1
ECHO Programmname: %1 >>%ULOG%
REM Suche
FIND /i %2 "%userprofile%\nt_adui\%3" >NUL
IF ERRORLEVEL 1 (
ECHO =Installiert? NICHT INSTALLIERT >>%ULOG%
GOTO %4
) ELSE (
ECHO =Installiert? JA >>%ULOG%
)
GOTO :EOF

:VERSION
REM Prüft - falls nötig - die Version des Programms
ECHO SOLL-Version: %1 >>%ULOG%
FIND /i %2 "%userprofile%\nt_adui\%3" >NUL
IF ERRORLEVEL 1 (
ECHO =IST-Version? Nein, Version NICHT aktuell >>%ULOG%
) ELSE (
ECHO =IST-Version? JA >>%ULOG%
)
GOTO :EOF


REM -Doku---
:PATCH
REM Püft einen Patch
TITLE %4
FIND /i "%1" "%userprofile%\nt_adui\%2.TXT" >NUL 2>NUL
IF NOT ERRORLEVEL 1 (
ECHO %4 ist installiert >>%ULOG%
GOTO :EOF
) ELSE (
ECHO %4 ist NICHT installiert >>%ULOG%
)
IF NOT EXIST %systemdrive%\$_INST\UPDATE GOTO :EOF
IF EXIST %PfadUpdates%\Patches\%5 (
ECHO %4 wird installiert ...
START /WAIT %PfadUpdates%\Patches\%5 %6 %7 %8 %9 >NUL 2>NUL
) ELSE (
ECHO %4 ist NICHT installiert worden, da %5 fehlt! >>%ULOG%
GOTO :EOF
)
%WINDIR%\REGEDIT.EXE /E %systemdrive%\$_INST\UPDATE\%1.TXT %3
FIND /i "%1" %systemdrive%\$_INST\UPDATE\%1.TXT >NUL 2>NUL
IF NOT ERRORLEVEL 1 (
ECHO %4 wurde NEU installiert
ECHO %4 wurde NEU installiert >>%ULOG%
) ELSE (
ECHO %4 ist NICHT installiert worden
ECHO %4 ist NICHT installiert worden >>%ULOG%
)
ECHO.
ECHO. >>%ULOG%
GOTO :EOF
REM ---Doku-


Jürgen Terlinden  -  Feedback