Unter der Annahme, dass das aktuellste kumulative Sicherheitsupdate für den IE jeweils der dickste Brocken unter den IEx-Updates ist, wäre eine (zusätzliche) dynamische Ermittlung wie folgt möglich.
.\client\DoUpdate.cmd r543 ab Zeile 1308:
- Code: Select all
if "%WUSCN_PREREQ_ID%"=="" goto CheckWUSvc
if exist %SystemRoot%\Temp\wou_wupre_tried.txt goto CheckWUSvc
REM === ab hier neu
set OS_WOUDIR=%OS_NAME%
if /i "%OS_ARCH%"=="x64" set OS_WOUDIR=%OS_NAME%-%OS_ARCH%
dir ..\%OS_WOUDIR%\IE*KB* /S /B /O:-S-D >nul 2>&1
if errorlevel 1 goto _skip_
for /F %%i in ('dir ..\%OS_WOUDIR%\IE*KB* /S /B /O:-S-D') do (
for /F "tokens=3 delims=-" %%j in ("%%~nxi") do (
set WUSCN_PREREQ_ID=%%j
)
goto _break_
)
:_break_
set WUSCN_PREREQ_ID=%WUSCN_PREREQ_ID:~2%
:_skip_
REM === Ende der Änderung
echo Checking most recent Cumulative Security Update for Internet Explorer...
%CSCRIPT_PATH% //Nologo //B //E:vbs ListInstalledUpdateIds.vbs
Anmerkungen:
- OS_WOUDIR könnte auch an anderen Stellen in .\client\cmd\DoUpdate.cmd interessant sein; dann sollte es früher definiert werden (vielleicht in .\client\cmd\SetTargetEnvVars.cmd)
- der dir-Befehl listet alle Updates der Form IEx-KBy* für das aktuelle OS mit absteigender Größe auf
- die äußere for-Schleife wird nur für den ersten Eintrag (dickster Brocken) dieser Liste ausgeführt (goto _break_)
- die innere for-Schleife extrahiert die kb-Nr. in der Form KBxxxx
- Kürzung von WUSCN_PREREQ_ID auf die Form xxxx