Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Zugriff auf Registry auslesen, auswerten, ändern, speichern.

Frage Entwicklung Batch & Shell

Mitglied: drobskind

drobskind (Level 1) - Jetzt verbinden

13.02.2007, aktualisiert 14.02.2007, 13862 Aufrufe, 4 Kommentare

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
Mitglied: Dani
13.02.2007 um 15:08 Uhr
Hi,
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
Bitte warten ..
Mitglied: drobskind
14.02.2007 um 07:35 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
Bitte warten ..
Mitglied: drobskind
14.02.2007 um 11:01 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
Bitte warten ..
Mitglied: Dani
14.02.2007 um 19:21 Uhr
G' Abend,
gute Sache...wollte eben mein Batch posten. Habe ihn heute Mittag fertig gemacht. Aber so is au recht!


Grüße
Dani
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...