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