Registry per Batch ändern
Hallo Com und speziell an die Code-Gurus
Ich möchte gerne per Batch einen REG wert prüfen und ggf. ändern.
Hier erst mal mein "Stand der Dinge":
Die erste reg query ist natürlich unnötig - die war nur zum Herausfinden, wie der Befehl überhaupt funktioniert.
Mein Ziel ist herauszufinden, ob der Wert auf "1" steht - und falls ja, ihn auf "0" zu ändern.
Aber ich bekomme die if-Abfrage nicht hin und wie ich einen Wert in der REG ändern kann, habe ich auch noch nicht herausgefunden - nur, dass man Werte importieren kann. Ich kann aber technisch in meinem Spezialfall nicht auf eine zusätzliche .reg Datei zeigen... Ich müsste das innerhalb der Batch abhandeln.
Hat da einer von euch 'ne Idee?
Greetz fugu
Ich möchte gerne per Batch einen REG wert prüfen und ggf. ändern.
Hier erst mal mein "Stand der Dinge":
@echo off
set Pfad="HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
reg query %Pfad% /f HiberbootEnabled
for /f "tokens=2* skip=2" %%a in ('reg query %Pfad% /f "HiberbootEnabled"') do echo %%b
if %%b=="0x1" (
echo 'Das muss anders'
)
Die erste reg query ist natürlich unnötig - die war nur zum Herausfinden, wie der Befehl überhaupt funktioniert.
Mein Ziel ist herauszufinden, ob der Wert auf "1" steht - und falls ja, ihn auf "0" zu ändern.
Aber ich bekomme die if-Abfrage nicht hin und wie ich einen Wert in der REG ändern kann, habe ich auch noch nicht herausgefunden - nur, dass man Werte importieren kann. Ich kann aber technisch in meinem Spezialfall nicht auf eine zusätzliche .reg Datei zeigen... Ich müsste das innerhalb der Batch abhandeln.
Hat da einer von euch 'ne Idee?
Greetz fugu
Please also mark the comments that contributed to the solution of the article
Content-ID: 3875354882
Url: https://administrator.de/contentid/3875354882
Printed on: December 2, 2024 at 17:12 o'clock
4 Comments
Latest comment
Oder via PowerShell …
Ich verweise mal auf einen guten Artikel von Thomas Maurer https://www.thomasmaurer.ch/2010/08/powershell-changing-registry-key-val ...
Ich verweise mal auf einen guten Artikel von Thomas Maurer https://www.thomasmaurer.ch/2010/08/powershell-changing-registry-key-val ...
Moin,
mit Batch etwa so:
Wie @Cloudrakete aber schon sagte, geht das mit Powershell deutlich sauberer.
Das für die Bearbeitung des Hives HKLM Administratorrechte von nöten sind, die Skripte also in beiden Fällen mit solchen ausgeführt werden müssen, ist hoffentlich klar.
Gruß Thomas
mit Batch etwa so:
@echo off
set Key=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Power
for /f "Tokens=3 Skip=1" %%A in ('reg query "%Key%" /f HiberbootEnabled') do (
if "%%A" neq "0x0" reg add "%Key%" /v HiberbootEnabled /t REG_Dword /d 0 /f
goto :EoF
)
Wie @Cloudrakete aber schon sagte, geht das mit Powershell deutlich sauberer.
$Key="HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power"
if ((Get-ItemPropertyValue -Path $Key -Name "HiberBootEnabled") -ne 0) {
Set-ItemProperty -Path $Key -Name "HiberBootEnabled" -Value 0
}
Das für die Bearbeitung des Hives HKLM Administratorrechte von nöten sind, die Skripte also in beiden Fällen mit solchen ausgeführt werden müssen, ist hoffentlich klar.
Gruß Thomas