Verwandte Beiträge
- Acrobat versions nummer aus Registry auslesen (22)
- REG-DWORD-Wert aus Registry auslesen und mittels IF-Abfrage prüfen? (5)
- Registry-Wert mit Batch auslesen, ändern und wieder einspielen (10)
- Ferne Registry auslesen und auswerten (3)
- Das Eigene-Dateien Verzeichnis per Batch aus der Registry auslesen...? (6)
- verschiedene Werte aus einer remote Registry auslesen und speichern (3)
- Batch File - Zeile auslesen aus Datei und verändern (mit langen Dateinamen) (4)
- Per Batch Daten auslesen, verarbeiten und speichern (16)
- Registry Key auslesen, ändern und wieder einfügen (6)
- Suche Software für Logfile-Dateien (txt) - auslesen, auswerten und in DB speichern. (2)
- Werte aus Textdatei auslesen, ändern und in Batch ausführen (8)
- REG BINARY aus der Registry auslesen - csharp (2)
- Mittels Batch eine Textdatei auslesen und gleichzeitig neue schreiben (6)
- Mit Batch Datei Verzeichnis auslesen (4)
- Batch- Gleichzeitige Ausgabe eines echos und speichern in Datei (5)
- Batch-File zum Auslesen von Playlist für VLC (25)
- Batch - Clients Systeminfos auslesen und automatisiert an den Server senden (5)
- Werte aus der Registry auslesen in einem Netzwerk (47)
- Batch - Automatisiert den Computername ändern und anschließend in die Domäne aufnehmen (2)
- mehr >>
Frage im Bereich
Batch Zugriff auf Registry auslesen, auswerten, ändern, speichern.
Geschrieben von drobskind am 2007/02/13 um 13:28:14 Uhr, 4 Antworten, 5818 Aufrufe, Status: gelöst
also, ich habe einen neune Kenntnisstand...
jetzt benötige ich hilfe, von einem Batchprofi
so.. nach stundenlanger recherche in den Tiefen der Windows Registry habe ich nun einige wertvolle informationen gefunden.
nun aber erstmal zu den problem an sich:
- ich habe einen server mit zur zeit 2 hardwareprofilen.
- es ist ein notfall ersatzserver der je nach hardwareprofil andere zwecke erfüllt.
- größtenteils wird auf ihn via remote desktop zugegriffen.
- eventuell verlangt der rechner ja auch mal nach einem neustart.
- da der rechner nach dem neustart aber nicht mit dem 1ten sondern mit dem aktuellen profil starten soll brauche ich hilfe.
der rechner ist ein ersatzsystem für mehrere andere systeme, wird aber natürlich nur für das ausgefallene system eingesetzt. und darf somit auch nur mit dessen funktionen starten!
ich brauche jetzt eine batch datei die mir einige zugriffe auf die registry erledigt.
1. Zugriff auf <HKLM\System\ControlSet001\Control\IDConfigDB\>
2. auslesen des Wertes von "Current Config" dieser kann folgende werte annehmen 1,2,3,4 usw. --------------((Angenommenes Beispiel:2))
3. Nun muss anhand der nummer in den RegSchlüssel gewechseslt werden:
<HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002>
4. Dort muss der Dword Wert von "Preference Order" auf 0 gesetzt werden.
Somit ist das profil an platz 1 und wird somit automatisch gestartet.
5. Das Profil, welches bis dahin platz 1 war, (Angenommen 1 [0001]) muss dann auf den platz von profil 2 wechseln.
!!! die Preference Order muss 0,1,2,3,4,5.... sein.. es dürfen keine zahlen frei bleiben.
falls noch mehr erläuterungen gebraucht werden kurz anfragen,
hätte auch die .reg datein für die werte da, falls ihr sie benötigt, hänge sie unten an:
danke schonmal für eure zeit
mfg
drobsind
--------------------------------------------------------------------------------
REG CURRENT CONFIG:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB]
"CurrentConfig"=dword:00000002
--------------------------------------------------------------------------------
REG PROFIL 1:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB\Hardware Profiles\0001]
"PreferenceOrder"=dword:00000000
--------------------------------------------------------------------------------
REG PROFIL 2:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002]
"PreferenceOrder"=dword:00000001
jetzt benötige ich hilfe, von einem Batchprofi
so.. nach stundenlanger recherche in den Tiefen der Windows Registry habe ich nun einige wertvolle informationen gefunden.
nun aber erstmal zu den problem an sich:
- ich habe einen server mit zur zeit 2 hardwareprofilen.
- es ist ein notfall ersatzserver der je nach hardwareprofil andere zwecke erfüllt.
- größtenteils wird auf ihn via remote desktop zugegriffen.
- eventuell verlangt der rechner ja auch mal nach einem neustart.
- da der rechner nach dem neustart aber nicht mit dem 1ten sondern mit dem aktuellen profil starten soll brauche ich hilfe.
der rechner ist ein ersatzsystem für mehrere andere systeme, wird aber natürlich nur für das ausgefallene system eingesetzt. und darf somit auch nur mit dessen funktionen starten!
ich brauche jetzt eine batch datei die mir einige zugriffe auf die registry erledigt.
1. Zugriff auf <HKLM\System\ControlSet001\Control\IDConfigDB\>
2. auslesen des Wertes von "Current Config" dieser kann folgende werte annehmen 1,2,3,4 usw. --------------((Angenommenes Beispiel:2))
3. Nun muss anhand der nummer in den RegSchlüssel gewechseslt werden:
<HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002>
4. Dort muss der Dword Wert von "Preference Order" auf 0 gesetzt werden.
Somit ist das profil an platz 1 und wird somit automatisch gestartet.
5. Das Profil, welches bis dahin platz 1 war, (Angenommen 1 [0001]) muss dann auf den platz von profil 2 wechseln.
!!! die Preference Order muss 0,1,2,3,4,5.... sein.. es dürfen keine zahlen frei bleiben.
falls noch mehr erläuterungen gebraucht werden kurz anfragen,
hätte auch die .reg datein für die werte da, falls ihr sie benötigt, hänge sie unten an:
danke schonmal für eure zeit
mfg
drobsind
--------------------------------------------------------------------------------
REG CURRENT CONFIG:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB]
"CurrentConfig"=dword:00000002
--------------------------------------------------------------------------------
REG PROFIL 1:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB\Hardware Profiles\0001]
"PreferenceOrder"=dword:00000000
--------------------------------------------------------------------------------
REG PROFIL 2:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\IDConfigDB\Hardware Profiles\0002]
"PreferenceOrder"=dword:00000001
Veröffentlichen Sie diesen Beitrag in Ihrem sozialen Netzwerk
4 Antworten
2
drobskind schreibt am 2007/02/14 um 07:35:25 Uhr
also, vorgang nochmal in einzelschritten:
- Booten
- Hardwareprofil auswählen (auswahl wird als currentconfig in registry gespeichert)
- Windows Startet mit dem Profil
-> mit batch die current config auslesen aus registry...
-> batch liest die anzahl der hardwareprofile aus registry...
-> batch schaut welches hardwareprofil als standart bootet (preferenceOrder=0)
-> batch tauscht die Preference Order von Standart & Current
nun bootet beim nächste start automatisch das gerade ausgewählte hardwareprofil, da es an erster position in der liste steht.
und das was vorher in der liste an erster stelle stand steht nun da wo das ausgewählte stand.
ist schwierig zu erklären... ich weiss
aber wenn man mal unter hardwareprofile (rechtsklick-arbeitsplatz) nachschaut, kann ich nciht einfach ein profil als standard festlegen...
er bootet immer das erste in der liste!
falls noch fragen bestehen einfach stellen...
ps: es wär schön, wenn das script so flexibel ist, For schleife oder ähnliches, dass es mit unterschiedlichen anzahlen von hardwareprofilen klar kommt
- Booten
- Hardwareprofil auswählen (auswahl wird als currentconfig in registry gespeichert)
- Windows Startet mit dem Profil
-> mit batch die current config auslesen aus registry...
-> batch liest die anzahl der hardwareprofile aus registry...
-> batch schaut welches hardwareprofil als standart bootet (preferenceOrder=0)
-> batch tauscht die Preference Order von Standart & Current
nun bootet beim nächste start automatisch das gerade ausgewählte hardwareprofil, da es an erster position in der liste steht.
und das was vorher in der liste an erster stelle stand steht nun da wo das ausgewählte stand.
ist schwierig zu erklären... ich weiss
aber wenn man mal unter hardwareprofile (rechtsklick-arbeitsplatz) nachschaut, kann ich nciht einfach ein profil als standard festlegen...
er bootet immer das erste in der liste!
falls noch fragen bestehen einfach stellen...
ps: es wär schön, wenn das script so flexibel ist, For schleife oder ähnliches, dass es mit unterschiedlichen anzahlen von hardwareprofilen klar kommt
3
drobskind schreibt am 2007/02/14 um 11:01:52 Uhr
HIER KÖNNT IHR SEHEN WIE DIE BATCH NUN AUSSIEHT!!
::---Version 1.0--------------------------------
::----------------------------------------------
::----------------------------------------------
::---- Diese Batch erkennt das aktuelle --------
::---- Hardwareprofil und setzt es in der ------
::---- Auswahlliste beim Booten an die ---------
::---- erste Position, damit es bei einem ------
::---- eventuellem Neustart über Remote- -------
::---- Desktop automatisch geladen wird. -------
::----------------------------------------------
::----------------------------------------------
::---- Geschrieben für Win 2K3 Server ----------
::----------------------------------------------
@echo off
set i=1
::----------------------------------------------
::----------------------------------------------
:: ---- Aktuelles Hardware Profil auslesen -----
::----------------------------------------------
::----------------------------------------------
set current="reg query "hklm\system\controlset001\control\idconfigdb" /v CurrentConfig | find "CurrentConfig""
FOR /F "tokens=1* delims=0x" %%A IN ('%current%') DO SET current=%%B
::----------------------------------------------
::----------------------------------------------
:: ---- Default Hardware Profil auslesen -------
::----------------------------------------------
::----------------------------------------------
:start
reg query "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%i%" /v PreferenceOrder | find "PreferenceOrder" >nul
if not errorlevel 1 goto check
goto weiter
:check
FOR /F "tokens=1* delims=x" %%A IN ('"reg query "hklm\system\controlset001\control\idconfigdb\hardware profiles\000%i%" /v PreferenceOrder | find "PreferenceOrder""') DO SET startup=%%B
if '%startup%'=='0' set Default=%i%
if '%i%'=='%current%' set aktuell=%startup%
rem echo %Startup%
set /a i=%i%+1
goto start
::----------------------------------------------
::----------------------------------------------
:: --- Ausgabe der Daten -----------------------
::----------------------------------------------
::----------------------------------------------
:weiter
cls
::----------------------------------------------
::----------------------------------------------
:: --- Anpassen der HW Bootreihenfolge----------
::----------------------------------------------
::----------------------------------------------
if "%current%"=="%default%" goto ende
ECHO :::NUN WERDEN DIE HARDWAREPROFILE ANGEPASST:::
reg add "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%current%" /v PreferenceOrder /t REG_DWORD /d "0" /f
set /a current=%current%-1
reg add "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%default%" /v PreferenceOrder /t REG_DWORD /d "%aktuell%" /f
:ende
ECHO PROGRAMM AUSGEFÜHRT
::---Version 1.0--------------------------------
::----------------------------------------------
::----------------------------------------------
::---- Diese Batch erkennt das aktuelle --------
::---- Hardwareprofil und setzt es in der ------
::---- Auswahlliste beim Booten an die ---------
::---- erste Position, damit es bei einem ------
::---- eventuellem Neustart über Remote- -------
::---- Desktop automatisch geladen wird. -------
::----------------------------------------------
::----------------------------------------------
::---- Geschrieben für Win 2K3 Server ----------
::----------------------------------------------
@echo off
set i=1
::----------------------------------------------
::----------------------------------------------
:: ---- Aktuelles Hardware Profil auslesen -----
::----------------------------------------------
::----------------------------------------------
set current="reg query "hklm\system\controlset001\control\idconfigdb" /v CurrentConfig | find "CurrentConfig""
FOR /F "tokens=1* delims=0x" %%A IN ('%current%') DO SET current=%%B
::----------------------------------------------
::----------------------------------------------
:: ---- Default Hardware Profil auslesen -------
::----------------------------------------------
::----------------------------------------------
:start
reg query "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%i%" /v PreferenceOrder | find "PreferenceOrder" >nul
if not errorlevel 1 goto check
goto weiter
:check
FOR /F "tokens=1* delims=x" %%A IN ('"reg query "hklm\system\controlset001\control\idconfigdb\hardware profiles\000%i%" /v PreferenceOrder | find "PreferenceOrder""') DO SET startup=%%B
if '%startup%'=='0' set Default=%i%
if '%i%'=='%current%' set aktuell=%startup%
rem echo %Startup%
set /a i=%i%+1
goto start
::----------------------------------------------
::----------------------------------------------
:: --- Ausgabe der Daten -----------------------
::----------------------------------------------
::----------------------------------------------
:weiter
cls
::----------------------------------------------
::----------------------------------------------
:: --- Anpassen der HW Bootreihenfolge----------
::----------------------------------------------
::----------------------------------------------
if "%current%"=="%default%" goto ende
ECHO :::NUN WERDEN DIE HARDWAREPROFILE ANGEPASST:::
reg add "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%current%" /v PreferenceOrder /t REG_DWORD /d "0" /f
set /a current=%current%-1
reg add "HKLM\System\ControlSet001\Control\IDConfigDB\Hardware Profiles\000%default%" /v PreferenceOrder /t REG_DWORD /d "%aktuell%" /f
:ende
ECHO PROGRAMM AUSGEFÜHRT




also das dürfte kein Problem sein. Leider kann ich dein Vorgang oben nicht ganz folgen.
Du wählst beim Start eine Zahl 1-5 aus. Dabei wird gewählt, welches Profil geladen werden soll. Nun muss erstmal das aktive Profil gefunden werden und in eine Variable gespeichert werden. Danach kann das gewünschte Profil auf "aktiv" gesetzt werden. Zum Schluss dem "jetzt" alten Profil die Zahl des "jetzt" neuen Profil zuweisen.
Sehe ich das so richtig?!
Gruß
Dani