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, 13902 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Registry per Batch abfragen und INI Einträge hinzufügen bzw. ändern (18)

Frage von kampen zum Thema Batch & Shell ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(6)

Anleitung von BassFishFox zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst ZIP-Archive nach Dateien durchsuchen und Pfade ausgeben (33)

Frage von evinben zum Thema Batch & Shell ...

Router & Routing
Routingproblem in Homerouter-Kaskade mit Raspi (20)

Frage von Oldschool zum Thema Router & Routing ...

Server
Freenas schlechte Schreib Performance bei NFS (16)

Frage von janosch12 zum Thema Server ...

C und C++
Methode multiple return values (8)

Frage von mayho33 zum Thema C und C ...