VBScript zum Auslesen eines bestimmten Registry Schlüssels
Hallo liebe Administratoren-Kollegen,
ich brauche mal Eure kreative Unterstützung.
Ich benötige ein Script, welches in der Lage ist bestimmte Registry Schlüssel auszulesen, zu vervollständigen und den höchsten Eintrag zurückzugeben.
Dafür habe ich aber nur einen Teil des Schlüssels als Vorgabewert zur Verfügung: Z.B. den Teil B-VR0000004 des gesamten Schlüssels B-VR0000004-0004-C0002
Ich möchte also den Namen des gesamten Schlüssel zurückgeben bekommen. Es kann sein, dass es mehrere Schlüssel mit diesem Anfangsteil gibt, z.B.
B-VR0000004-0004-C0002
B-VR0000004-0004-C0003
Der erste Teil B-VR0000004 kennzeichnet dabei eine Applikation, der zweite (0004) den Kunden und das letzte Segment (C0002) die einzelnen Updates der App. D.h. hier liegt die Appliaktion in zwei verschienenen Versionsständen auf dem Rechner vor.
In diesem Fall benötige ich den Schlüssel mit dem höchsten Wert am Ende also C0003, bzw. den vollständigen Namen B-VR0000004-0004-C0003.
Die Schlüssel liegen alle unterhalb des Schlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\
Also z.B. sowas
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000004-0004-C0002\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000004-0004-C0003\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000005-0004-C0001\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000006-0004-C0001\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000006-0004-C0002\]
Könnt ihr mir hier etwas weiterhelfen? Vielleichtr habt ihr Teile davon, schon in ähnlich Scripten verwendet. Wäre ganz toll, was von Euch zu hören!!!
Viele Grüße!!!!
ich brauche mal Eure kreative Unterstützung.
Ich benötige ein Script, welches in der Lage ist bestimmte Registry Schlüssel auszulesen, zu vervollständigen und den höchsten Eintrag zurückzugeben.
Dafür habe ich aber nur einen Teil des Schlüssels als Vorgabewert zur Verfügung: Z.B. den Teil B-VR0000004 des gesamten Schlüssels B-VR0000004-0004-C0002
Ich möchte also den Namen des gesamten Schlüssel zurückgeben bekommen. Es kann sein, dass es mehrere Schlüssel mit diesem Anfangsteil gibt, z.B.
B-VR0000004-0004-C0002
B-VR0000004-0004-C0003
Der erste Teil B-VR0000004 kennzeichnet dabei eine Applikation, der zweite (0004) den Kunden und das letzte Segment (C0002) die einzelnen Updates der App. D.h. hier liegt die Appliaktion in zwei verschienenen Versionsständen auf dem Rechner vor.
In diesem Fall benötige ich den Schlüssel mit dem höchsten Wert am Ende also C0003, bzw. den vollständigen Namen B-VR0000004-0004-C0003.
Die Schlüssel liegen alle unterhalb des Schlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\
Also z.B. sowas
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000004-0004-C0002\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000004-0004-C0003\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000005-0004-C0001\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000006-0004-C0001\]
[HKEY_LOCAL_MACHINE\SOFTWARE\Administrator-Forum\Software\B-VR0000006-0004-C0002\]
Könnt ihr mir hier etwas weiterhelfen? Vielleichtr habt ihr Teile davon, schon in ähnlich Scripten verwendet. Wäre ganz toll, was von Euch zu hören!!!
Viele Grüße!!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 94314
Url: https://administrator.de/contentid/94314
Ausgedruckt am: 19.11.2024 um 09:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo gdnmarc!
Vielleicht solltest Du noch klarstellen, welche Eingabe (zB "B-VR0000004-0004", oder auch nur "B-VR0000004") welche Ausgabe (nur "B-VR0000004-0004-C0003" oder "B-VR0000004-0004-C0003" + "B-VR0000004-0007-C0002" + "B-VR0000004-0011-C0003" + ...) erzeugen soll, bzw ob der Aufbau der Schlüsselnamen immer gleich (insbes hinsichtlich der Stellenanzahl) ist.
Grüße
bastla
Vielleicht solltest Du noch klarstellen, welche Eingabe (zB "B-VR0000004-0004", oder auch nur "B-VR0000004") welche Ausgabe (nur "B-VR0000004-0004-C0003" oder "B-VR0000004-0004-C0003" + "B-VR0000004-0007-C0002" + "B-VR0000004-0011-C0003" + ...) erzeugen soll, bzw ob der Aufbau der Schlüsselnamen immer gleich (insbes hinsichtlich der Stellenanzahl) ist.
Grüße
bastla
Hallo gdnmarc!
Dann etwa so:
Grüße
bastla
Dann etwa so:
Search = "VR0000004-0004" 'nur zum Testen; ansonsten natürlich Input-Box oder WScript.Arguments()
strKeyPath = "Software\Administrator-Forum\Software"
SearchFor = LCase("B-" & Search)
SearchLen = Len(SearchFor)
MaxVersion = ""
strComputer = "."
Const HKLM = &H80000002
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
objReg.EnumKey HKLM, strKeyPath, arrEntryNames
For Each Key In arrEntryNames
If LCase(Left(Key, SearchLen)) = SearchFor Then
If LCase(Key) > LCase(MaxVersion) Then MaxVersion = Key
End If
Next
WScript.Echo MaxVersion
bastla
Hallo gdnmarc!
Grüße
bastla
P.S.: Du kannst Deine Beiträge auch editieren ...
... wie kann ich das parametrisieren
Wie schon oben angedeutet:If WScript.Arguments.Count > 0 Then
Search = WScript.Arguments(0)
Else
WScript.Echo "Bitte den Suchbegriff als Parameter übergeben!"
WScript.Quit(1)
End If
...
mit welchem Editor scriptest Du eigentlich?
Notepad++; PSPad wollte ich mir auch schon länger näher ansehen, bin aber mit NPP eigentlich zufrieden ...Grüße
bastla
P.S.: Du kannst Deine Beiträge auch editieren ...