25. How to - mit einer Batchdatei Registry ändern

Viele User kennen das Problem - Sie wollen mit einer Batchdatei Registrierungsschlüssel verändern und
bekommen in Foren und auf Tippseiten den mehr oder weniger nützlichen Ratschlag doch in der
Hilfedatei in Windows 7 unter dem Befehl reg /? oder reg add /? nachzuschauen...

Das ist richtig, aber wenig hilfreich. Daher geht der Sternenhimmelstuermer im ersten Kapitel anhand eines
Beispieles mal das Erstellen eines Befehles gemeinsam mit Ihnen durch.

1. Erstellen einer Batchdatei zur Registryänderung mit der CMD -Kommandozeile

a)- start - ins Suchfeld cmd - auswählen mit rechter Maustaste: cmd.exe und "als Administrator
ausführen" anklicken - bis hierher war es einfach...

b) Wir wollen eine Änderung im Schlüssel:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

vornehmen, um genau zu sein den Eintrag:

ConsentPromptBehaviorAdmin

Die Bedeutung des Schlüssels sind die verschiedenen Stufen von UAC - in dieser Abhandlung vom
Sternenhimmelstuermer ist die funktionsweise ausführlich beschrieben - ist uns egal: Für uns ist das
ein Demonstrationsobjekt mit dem Vorteil, das kein Neustart nötig ist und der Erfolg - eine
Änderung der UAC-Einstellung - leicht nachzuvollziehen ist.

Der DWORD soll also geändert werden - Es soll eine 1,2,3 oder 4 verändert werden...

Am 26.06.2017 wurde ich in einem Leserbrief darauf hingewiesen, dass
in meinem Beispiel enthalten Key und Value keine Leerzeichen sind.
Dies kommt aber häufiger vor. Dann müssen die Werte in Anführungszeichen eingeschlossen werden,
da Windows sonst den Teil nach dem Leerzeichen als neuen Parameter interpretiert.
Ich gebe das fast im Wortlaut an dieser Stelle weiter.

c) Schauen Sie sich ruhig parallel die Windowshilfe reg /? oder reg add /? an.

d) Der Vorteil der Kommandozeile, dass nur ein Befehl pro Zeile zulässig ist, ist auch gleichzeitig
der Nachteil: Eine Registryänderung wird immer eine ziemlich lange Zeile....

Die Einleitung für einen Befehl zur Bearbeitung der Registry ist immer "reg".

Danach kommt ein sogenannter Parameter. Beim Hinzufügen bzw. Überschreiben eines Wertes
benutzen Sie immer den Parameter "add".

Also haben wir nun schon die Einleitung "reg add" - zur Syntax:
 nach jedem neuen Parameter kommt ein Leerzeichen!

e) Sie sind nun in der obersten ebene Der Registrierungsschlüssel eingeloggt. Jetzt müssen Sie also
den Pfad bis zum Schlüssel eingeben, den Sie ändern wollen.

Meistens weden Sie den Befehl auf Ihrem Computer und nicht in einem Netzwerk ausführen, also
geht es jetzt an das Übersetzen der  "DOS-Sprache" in eine Sprache, die dem Registrierungs-
editor verständlich ist:

Die Stammschlüssel haben einen unterschiedlichen Namen, also kommen Sie nie um eine Änderung
herum:

CMD    - Registrierungsstammschlüssel

HKLM - HKEY_LOCAL_MACHINE
HKCU - HKey_CURRENT USER
HKCR - HKEY_CLASSES ROOT
HKU - HKEY_USERS
HKCC - HKEY_CUURENT_CONFIG

f) der Rest des Pfades bis zu unserm Schlüssel bleibt gleich - das ist doch erfreulich, also haben wir nun
schon die Halbe Miete oder in unserem Beispiel den immer noch unvollständigen Befehl:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

g) Jetzt erstellen wir einen Inhalt des Schlüssels - die Inhalte stehen immer auf der rechten Seite des
Registrierungseditors - Schauen Sie sich mal ruhig den DWORD unseres Beispiels an, dazu
klicken Sie die Datei ConsentPromptBehaviorAdmin doppelt an - hier steht eine Zahl:
0 UAC ohne Kennwort, Abfrage oder Verdunklung - fast deaktiviert
1 UAC + secure desktop + Kennwortabfrage
2 UAC +Abdunklung +  Nachfrage bei Admin.
3 UAC + Abfrage kennwort - Verdunkelung
4 UAC + Nachfrage (ohne Kennwort) - Verdunkelung

So, der DWORD-Wert heißt:  ConsentPromptBehaviorAdmin und ist im Schlüssel System.
Also heißt der Befehl bis zu diesem Punkt:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin

/V ist  dabei der Wert, der im Schlüssel System bearbeitet werden soll. Ist auch die einzige Alternative in diesem Fall!
Andere Parameter sind in diesem Fall nicht wirklich erfolgreich...

h) Jetzt geben Sie mit /t an, welcher Typ der Unterschlüssel hat und schreiben das auch gleich dahinter in Form, wie es die Windowshilfe vorgibt, also:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD

Wie bekommen Sie nun heraus, was für ein Typ von den Werten gemeint ist?

Eine Zeichenfolge oder auch String ( REG_SZ) ist irgendein Klartext - auch Zeichenkette...

REG_MULTI_SZ ist eine Mehrfachzeichenkette, bei deren Einträge z. B. in einer Liste durch Leerzeichen, Kommas oder andere Trennzeichen voneinander getrennt werden.

Ein  DWORD-Wert (REG_DWORD),  haben einen Zahlenwert Zahlenwert zwischen 0 und 255 (Dezimal) oder 00 und FF (Hexadezimal). Der Wert wird im Registrierungseditor unter der Spalte Daten so angezeigt: 0x00000000 (0) . Die Zahl vor der Klammer ist die hexadezimale (0x00000000), während gleichzeitig der Dezimalwert in Klammern steht (0). Echt easy, nicht?

Ein  BinärWert (REG_BINARY) ist ein  binärer, dezimaler oder hexadezimal Wert.
Hexadezimale Zahlen stehen zwischen 00 und FF. Siese entsprechen den Dezimalzahlen von 0 - 255.


REG_EXPAND_SZ (expandierbarer Text), ist eine Zeichenkette mit Variablen wie %SYSTEMROOT%, die durch jeweilige Anwendungen bei Ausführung bei Bedarf ausgeführt wird.

I) Jetzt geben Sie noch den Parameter /d für die Daten in den Schlüssel und danach eine 1,2,3,4 oder 5 als die Zahl, die wir dezimal angeben...

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 1

Das war es. Probieren Sie die Zeile ruhig mal in der Komandozeile aus. Es kommt dann eine Nachfrage, ob die Änderung wirklich
durchgeführt werden soll - die mit ja bestätigt wird.

An dieser Stelle sei noch einmal auf den Leserbrief hingewiesen: Haben sie bei Änderungen anderer Keys einen getrennten Value mit Leerzeichen, dann muss der gesamte Value in Leerzeichen gesetzt werden.


Die Zeile können Sie nun in ein Textdokument einfügen und unter Wunschname.bat speichern. Die Datei muss als Administrator ausgeführt werden - Die Nachfrage bleibt erhalten.

Die Nachfrage können Sie mit dem Parameter /f am Ende des Befehls unterdrücken, also:

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v ConsentPromptBehaviorAdmin /t REG_DWORD /d 1 /f

, worauf ich am 26.06.2017 in einem Leserbrief hingewiesen wurde - ich hatte den Parameter überlesen und trage das hier nach und
streiche die Aussage, dass man die Abfrage zur Sicherheit nicht unterdrücken kann.

Natürlich gibt es auch andere einfachere oder schwierige Befehle, aber es kommt in dieser Abhandlung nur auf eine Demonstration an.

Zusammenfassung/Fazit

Das Erstellen von einem Kommandobefehl zur Änderung der Registry ist nach einiger Übung einfach, aber auch fehlerträchtig und so ist es fraglich, ob sich der Aufwand lohnt. Eine sogenannte Reg-Datei ist wirklich einfacher zu bedienen.

Wer es dennoch machen will:

Registryeinträge in der Registry prüfen - vielleicht auch lieber sichern und zur Kontrolle die Reg-Datei anschauen... dann ruhig cmd - Hilfe
bemühen und reg add /? eingeben....danach den Schlüsselpfad aus dem Registrierungseditor kopieren und den Stammschlüsselnamen ändern...dann den Wert bzw. Zeichenfolge und den Wert ermitteln, den Sie eintragen wollen und die richtigen Parameter dazu ermitteln...
der Sternenhimmelstuermer wünscht Ihnen viel Erfolg!


Navigationsleiste




Impressum
Datenschutz