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-Key: 394886

Url: https://administrator.de/contentid/394886

Printed on: April 19, 2024 at 22:04 o'clock

Mitglied: 137846
Solution 137846 Dec 06, 2018 updated at 16:36:07 (UTC)
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,
Member: erikro
Solution erikro Dec 06, 2018 at 16:24:56 (UTC)
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
Member: ahstax
ahstax Dec 07, 2018 at 12:21:37 (UTC)
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!