Page 1 of 1

Details zu Patches via MPR aus der Registry auslesen.

Posted: 21. May 2017, 19:58
by Theo_Gottwald
Hier gibt es ein paar kleine "Todo's" die man wissen muß, dann kann man die Patches und Details dazu auch aus der Registry auslesen und ggf. auswerten.

1. Da wir aus der 64-bit Registry lesen wollen - nicht aus der vom WOW64 (32-bit) müßen wir das OPT\64 voranstellen.

2. Mit FEK\ lesen wir dann alle "Keys" aus (Quasi die Verzeichnisse der Registry) - Anzeige hier im Beispielskript via Messagebox.

3. Mit FER\ lesen wir dann die Einzelwerte. Anzeige im Skript via Bubble-Text.

Man könnte nun auch noch via "IVC\" prüfen ob ein bestimmter Text enthalten ist - z.B. "KB123456" und so feststellen ob ein bestimmter Patch installiert ist.
Aus dem Editor läuft das Skript nachvollziehbar langsam, damit man dem Skript auch folgen kann.
Jedoch als EXE kompiliert wird es in Rekordzeit abgearbeitet sein, und das ist ja auch das Ziel.

Code: Select all

KRM\2
VAR\$$REG=SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages
OPT\64
FEK\hlm|$$REG|dokey|$$key
WPS\fertig
@

:dokey
MBX\$$key
FER\hlm|$$REG\$$key|doent|$$val
@

:doent
SBT\1+|$$val
@

Re: Details zu Patches via MPR aus der Registry auslesen.

Posted: 30. Jul 2017, 20:09
by Theo_Gottwald
Hier nun das Skript so abgeändert, daß es nur Stellen anzeigt wo eine bestimmter,
anzugebender Suchstring vorkommt.

Code: Select all

' +++ main_Registry-Skript.rem +++
' Zweck: 
' erstellt am: 30.07.2017
' von: Theo Gottwald
'========================
'#EXE:?path
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'#FDC:Ask
'#MAN:ra

KRM\2
GIP\Suchstring?
VAR\$$SRC=$v1$

VAR\$$REG=SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages
OPT\64
FEK\hlm|$$REG|dokey|$$key
WPS\fertig
@

:dokey
FER\hlm|$$REG\$$key|doent|$$VAL
@

:doent
IVC\$$VAL|$$SRC
   SBT\10+|$$val
EVC\
@

Re: Details zu Patches via MPR aus der Registry auslesen.

Posted: 30. Jul 2017, 20:13
by Theo_Gottwald
Hier eine ganz andere Vorgehensweise die mittels eines WMI-Batchfiles nach Patchen sucht.

Code: Select all

' +++ main_If_Patch.rem +++
' Zweck: 
' erstellt am: 15.05.2017
' von: Theo Gottwald
'========================
'#EXE:?path
'#SPI:ForceWrite
'#SPI:VBRun
'#SPI:NoAuto
'#SPI:x64
'#FDC:Ask
'#MAN:ra

' Hier das MPR-Skript
' verwendet "wmic qfe get hotfixid | find "KB4012212" > c:\temp\KB4012212.txt"
VAR\$$HOT=KB4016871
VAR\$$PAT=?path\$$HOT
VAR\$$PAF=$$PAT.txt
VAR\$$CMD=wmic qfe get hotfixid | find $dq$$$HOT$dq$ > $dq$$$PAF$dq$
VAR\$$ZIE=$$PAT.bat
CTF\$$ZIE<$$CMD
EXE\$$ZIE
VAR\$$PID=$v4$
WPT\$$PID
CFF\$$PAF>$$RES
GSL\$$RES>$$RES
IVV\$$RES!0
   MBX\Patch $$HOT installiert.
ELSE
   MBX\Patch $$HOT ist nicht installiert.
EVV\
@
' Hier das Batchfile nur zur Ansicht, dieses wird vom Skript dynamisch während dem Skriptlauf erzeugt!

Code: Select all

wmic qfe get hotfixid | find "KB4016871" > "[Projektpfad]\if_patch\KB4016871.txt"