ahstax
Goto Top

Mit batch Registry-Keys auslesen, darin dann Einträge vornehmen

Hallo,

gibt es eine Möglichkeit (Win7 64bit), Sub-Keys erster Ebene von Registry-Keys abzufragen, um dann in die Subkeys Einträge vorzunehmen?

Konkret:
Ich möchte alle Subkeys erster Ebene des Keys
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles
auslesen, aber nicht weiter runter.
Diese ausgelesene Subkeys möchte ich dann verwenden, um hiermit:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\<AUSGELESENER SUBKEY>\9375CFF0413111d3B88A00104B2A6676\00000001" /v %j% /t REG_BINARY /d %Var% /f  
Einen Wert in einem Subkey einzutragen, wenn in "AUSGELESENER SUBKEY" die Zeichenfolge ABC enthalten ist.

Geht das? Wir kann ich das anstellen?

Neugierige Grüße,
Andreas

Content-ID: 394886

Url: https://administrator.de/forum/mit-batch-registry-keys-auslesen-darin-dann-eintraege-vornehmen-394886.html

Ausgedruckt am: 23.12.2024 um 11:12 Uhr

137846
Lösung 137846 06.12.2018 aktualisiert um 17:36:07 Uhr
Goto Top
Ich möchte alle Subkeys erster Ebene des Keys ... wenn in "AUSGELESENER SUBKEY" die Zeichenfolge ABC enthalten ist.
Mit Batch wie immer FOR-Schleife mit Findstr, findest du hier 1000fach...
for /f "delims=" %%a in ('reg query HKCU\Software\Microsoft\Office\15.0\Outlook\Profiles ^|findstr /i "\\.*ABC.*$"') do @echo %%a  
Aber wieso man das noch mit Batch machen will ...?!

Mit Powershell ist sowas auch schnell erledigt
 Set-ItemProperty HKCU:\Software\Microsoft\Office\16.0\Outlook\Profiles\*ABC*\9375CFF0413111d3B88A00104B2A6676\00000001 -Name XXXXX -Value XXXXX -Type Binary

Gruß A,
erikro
Lösung erikro 06.12.2018 um 17:24:56 Uhr
Goto Top
Moin,

dafür würde ich die Powershell nehmen.

Zitat von @ahstax:
gibt es eine Möglichkeit (Win7 64bit), Sub-Keys erster Ebene von Registry-Keys abzufragen, um dann in die Subkeys Einträge vorzunehmen?

Konkret:
Ich möchte alle Subkeys erster Ebene des Keys
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles

$found_keys = get-childitem HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles

Sollen es auch die Unterschlüssel sein, dann noch ein -recurse hinter den Befehl.

auslesen, aber nicht weiter runter.
Diese ausgelesene Subkeys möchte ich dann verwenden, um hiermit:
reg add "HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\<AUSGELESENER SUBKEY>\9375CFF0413111d3B88A00104B2A6676\00000001" /v %j% /t REG_BINARY /d %Var% /f  
Einen Wert in einem Subkey einzutragen, wenn in "AUSGELESENER SUBKEY" die Zeichenfolge ABC enthalten ist.

Dann eine kleine foreach-Schleife:

foreach($found_key in $found_keys) {

    if($found_key.name -match "^HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\Profiles\.*ABC.*$") {  

          # Hier entweder weiter mit set-itemproperty oder new-itemproperty je nachdem, ob der Wert schon exisitiert oder nicht.

     }

}

hth

Erik
ahstax
ahstax 07.12.2018 um 13:21:37 Uhr
Goto Top
Hallo,

Danke für Eure Antworten!

Ich möchte das mit Batch machen, weil es eine Änderung in einer bestehenden Batch-Datei wäre und mir das mit dem Powershell und den Berechtigung usw Unbehagen bereitet. Ich hab mich auch noch zu wenig damit beschäftigt. Weil mit Batch bis jetzt alles immer irgendwie machbar war....

Mit dem Ansatz
for /f "delims=" %%a in ('reg query HKCU\Software\Microsoft\Office\15.0\Outlook\Profiles ^|findstr /i "\\.*ABC.*$"') do @echo %%a  

hab ich hinbekommen, was ich erreichen wollte.
Danke für die Hilfe!