28.
Eine Reg-Datei in eine Batchdatei integrieren - einfachste Möglichkeit
Der
Sternenhimelstuermer analysierte mehre Batchdateien im Internet, um
eine Möglichkeit zu finden, auf eine
einfache Art Eine
Reg-Datei in eine Batchdatei zu integrieren.
Dabei
fiel ihm eine Hilfskonstruktion in Batchdateien auf, mit deren Hilfe
jeder Befehl einer Reg-Datei leicht
in eine Batchdatei
integriert wird.
Der Trick: Es wird mit Hilfe der
Kommandozeile "temporär" Zeile für Zeile eine Reg-Datei erstellt,
die
Reg-Datei ausgeführt und danach die Regdatei gelöscht.
Der
langwierige Weg, die Befehle in einen reg add Befehl zu transformieren
(schwer und mit ungewissem Ausgang...),
entfällt.
Diese
Verfahrensweise ist ebenso simpel wie effektiv.
Der
Sternenhimmelstürmer stellt diese Verfahrensweise anhand eines Befehls
zur Einschaltung der UAC
(siehe auch UAC-Einmaleins)
vor.
Nach der Beschreibung sollten Sie fähig sein,
eine beliebige Reg-Datei in eine Batchdatei zu konvertieren:
Hier
erstmal der Code
der Regdatei - danach die Beschreibung der einzelnen
Zeilen :
Windows
Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000001
So sieht erstmal der Code in
der Reg-Datei aus. Hier wird der Wert für UAC auf die schärfste Stufe
eingestellt:
-
Abdunklung (secure Desktop)
- Nachfragen bei allen
Programmen und Aktionen mit Admin.-Rechten
- zusätzlich:
manuelle Kennworteingabe, um Aktion zu bestätigen.
Diesen
Code bringen wir nun in einen für die CMD lesbaren Code (Batchdatei),
der wieder
diese Reg-Datei erstellt, ausführt, und dann die
Reg-Datei nach verrichteter Arbeit zerstört:
@ECHO OFF
>
"%windir%.\uac.reg" ECHO Windows Registry Editor Version 5.00
>>"%windir%.\uac.reg"
ECHO.
>>"%windir%.\uac.reg"
ECHO
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
>>"%windir%.\uac.reg"
ECHO "ConsentPromptBehaviorAdmin"=dword:00000001
>>"%windir%.\uac.reg"
ECHO.
start /wait regedit /s
"%windir%.\uac.reg"
del "%windir%.\uac.reg"
Die
entstandene Batchdatei muss als Administrator ausgeführt werden. UAC
wird ohne
Nachfrage verschärft.
------
Einschub:
How to eine Batchdatei oder Reg-Datei erstellen:
Den
o. a. Text, so wie er ist in eine Textdatei kopieren (erkennbar an der
Endung *.txt -
um sich Endungen anzeigen zu lassen in einem
beliebigen Ordner - Organisieren - Layout -
Menüleiste
aktivieren un dann in der angezeigten Menüleiste - Extras - Optionen -
Reiterkarte
Ansicht : "Erweiterungen bei bekannten Dateitypen ausblenden"
deaktivieren).
Danach unter beliebigen Namen
speichern.
Schließlich für eine Batchdatei die
Endung in *.bat
und eine Regdatei *.reg
umwandeln -
natürlich nur für den jeweiligen richtigen Code -
sonst bringt es nichts....
----
Analyse
des Codes:
Zeile 1:
@ECHO
OFF - Nachfragen
werden ausgeschaltet
Zeile
2
>
Hier nur ein Zeichen - etwas neues wird kreiert...
"%windir%.\uac.reg"
...und zwar im Ordner Windows eine (temporäre) Reg-Datei;
Sie
können auch gerne eine andere Umgebungsvariabel (%userprofile% , %temp%
oder einen festen Pfad
verwenden - Umgebungsvariablen sind in
der Regel besser...),
statt uac.reg ist
auch jeder andere Name erlaubt - nur die Endung *.reg und eine
durchgängige Fortführung
des anderen Namens sind zwingend...
Windows Registry Editor
Version 5.00 ist die analoge
erste Zeile im Registrierungseditor, die durch den
Echobefehl
eingefügt wird.
Zeile 3
>>"%windir%.\uac.reg"
ECHO.
Jetzt
wird erstmal eine neue Zeile hinzugefügt. Zwischen jedem neuen
Schlüssel kommt diese Zeile die zwei >>
Zeichen
sind wichtig - hier wird eben was hinzugefügt und nicht überschrieben!
Statt ein Befehl, kommt ein
Punkt. Den sollten Sie nie
vergessen...
Zeile 4
>>"%windir%.\uac.reg"
ECHO
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
Und wieder arbeiten wir
eine Zeile des Registrierungseditors ab. Diesmal wird die Originalzeile
aus der Reg-Datei in die UAC-Reg
eingefügt. Bei Ihnen ist dann
das ihr Schlüssel...Eine Erklärung ist wohl nicht mehr notwendig...
Zeile
5
>>"%windir%.\uac.reg"
ECHO "ConsentPromptBehaviorAdmin"=dword:00000001
Jetzt wird der
Schlüsselwert der Regdatei eingetragen - wieder die
Originalzeile der Reg-Datei, die in der REG-Datei eingefügt wird..
Sie
wollen weitere Werte in
ihre Batchdatei eintragen?
Dann fügen Sie nach dem
Schema aus Zeile 5 weitere Werte ein.....
Zeile 6 - Zeile 6,7 und 8
sind dann die gültige Abschlussformel mit ihren erstellten
Namen!
>>"%windir%.\uac.reg"
ECHO.
Sie
wollen weitere Schlüssel
in ihre Batchdatei eintragen?
Sollten Sie einen
weiteren Schlüssel einfügen wollen, so wird dieser in der nun fiktiven
Zeile 7
aufgeführt, in der achten Zeile z. B. ein
weiterer Wert und dann zum Abschluss Zeile 6
- ist doch gar nicht so schwer...
Wichtig ist nur, dass am Ende einer
Schlüssel/Wert- Kombination immer Zeile 6 steht-und das eben auch
nach
der letzten Zeile!
Zeile 7
start /wait regedit /s
"%windir%.\uac.reg"
Die Reg-Datei
wurde in Zeile 6 in diesem Beispiel fertig gestellt. Das ist leider nur die
Halbe Miete.
Zeile 7 startet nun unsere
erstellte Reg.Datei im %windir%-Pfad ohne Rückmeldung. Wenn Sie nun
andere
Pfade oder einen anderen Namen für die Datei verwendet haben, so müssen
Sie diesen
Befehl dementsprechend anpassen...
Zeile
8
del "%windir%.\uac.reg"
Ordnung
ist das halbe Leben. Als letztes wird die Datei uac.reg zerstört. Bis
zu diesem Zeitpunkt wußte niemand außer
uns, dass es sich bei
der uac.reg um eine quasi temporäre Datei handelte, die nach
ihrer Ausführung sich selbst - na ja,
eigentlich durch Ihren
Erbauer - der cmd - wieder vernichtet wird.
In
unserem Beispiel müssen Sie dann die cmd mit Administratorrechten
ausführen.
Der Sternenhimmelstuermer wünscht Ihnen
viel Spaß beim Erstellen Ihrer eigenen Batchdateien.
Suchen
Sie sich doch Schlüssel im Registrierungseditor und exportieren Sie
(rechte Maustaste auf Schlüssel - export).
Dann
speichern Sie die Datei als Reg-Datei und hinterher gehen Sie mit der
rechten Maustaste auf Bearbeiten.
Kopieren Sie den Text und
transformieren den Code auf die o. a. Verfahrensweise...