Ist es möglich, einen Registrierungseintrag über einen .bat / .cmd-Skript zu ändern?
-
02-07-2019 - |
Frage
Ist es möglich, einen Registrierungswert (ob String oder DWORD) über einen .bat / .cmd-Skript zu ändern?
Lösung
Sie können den REG-Befehl verwenden. Von http://www.ss64.com/nt/reg.html :
Syntax:
REG QUERY [ROOT\]RegKey /v ValueName [/s]
REG QUERY [ROOT\]RegKey /ve --This returns the (default) value
REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]
REG ADD [ROOT\]RegKey /ve [/d Data] [/f] -- Set the (default) value
REG DELETE [ROOT\]RegKey /v ValueName [/f]
REG DELETE [ROOT\]RegKey /ve [/f] -- Remove the (default) value
REG DELETE [ROOT\]RegKey /va [/f] -- Delete all values under this key
REG COPY [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey
REG EXPORT [ROOT\]RegKey FileName.reg
REG IMPORT FileName.reg
REG SAVE [ROOT\]RegKey FileName.hiv
REG RESTORE \\MachineName\[ROOT]\KeyName FileName.hiv
REG LOAD FileName KeyName
REG UNLOAD KeyName
REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s]
REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s]
Key:
ROOT :
HKLM = HKey_Local_machine (default)
HKCU = HKey_current_user
HKU = HKey_users
HKCR = HKey_classes_root
ValueName : The value, under the selected RegKey, to edit.
(default is all keys and values)
/d Data : The actual data to store as a "String", integer etc
/f : Force an update without prompting "Value exists, overwrite Y/N"
\\Machine : Name of remote machine - omitting defaults to current machine.
Only HKLM and HKU are available on remote machines.
FileName : The filename to save or restore a registry hive.
KeyName : A key name to load a hive file into. (Creating a new key)
/S : Query all subkeys and values.
/S Separator : Character to use as the separator in REG_MULTI_SZ values
the default is "\0"
/t DataType : REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ
Output : /od (only differences) /os (only matches) /oa (all) /on (no output)
Andere Tipps
@Franci Penov - ändern ist möglich im Sinne von Überschreiben mit /f
, zB
reg add "HKCU\Software\etc\etc" /f /v "value" /t REG_SZ /d "Yes"
Ja, können Sie Skript mit dem reg
Befehl.
Beispiel:
reg add HKCU\Software\SomeProduct
reg add HKCU\Software\SomeProduct /v Version /t REG_SZ /d v2.4.6
Dies würde Schlüssel HKEY_CURRENT_USER\Software\SomeProduct
erstellen, und fügen Sie einen String-Wert "v2.4.6" genannt "Version" auf diesen Schlüssel.
reg /?
hat die Details.
Dies ist, wie Sie Registrierung ändern können, ohne ja oder nein prompt und vergessen Sie nicht als Administrator ausführen
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\etc\etc /v Valuename /t REG_SZ /d valuedata /f
Im Folgenden finden Sie ein echtes Beispiel Internet Explorer als Standardbrowser festlegen
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice /v ProgId /t REG_SZ /d IE.HTTPS /f
Lernen/ f Erzwingen: Erzwingen Update ohne Nachfrage „Wert vorhanden ist, überschreiben Y / N "
/ d Daten: Die aktuellen Daten als "String" zu speichern, integer etc
/ v Wert: Der Wert Name zB ProgId
/ t Datentyp: REG_SZ (default) | REG_DWORD | REG_EXPAND_SZ | REG_MULTI_SZ
mehr zu lesen, Set oder löschen Registrierungsschlüssel und Werte, Speichern und Wiederherstellen von einer REG-Datei. von hier
Sie können eine REG-Datei machen und fordern sie auf, starten. Sie können einen beliebigen Teil der Registrierung als eine REG-Datei exportieren, um zu sehen, was das Format ist.
Format hier:
http://support.microsoft.com/kb/310516
Dies kann ohne Installation andere Software auf jedem Windows-Rechner ausgeführt werden.
Ja. Sie können reg.exe benutzen, die mit dem Betriebssystem kommt hinzuzufügen, zu löschen oder die Abfrage Registrierungswerte. Reg.exe keine expliziten Befehl ändern, aber Sie können es tun, indem löschen tun und dann hinzuzufügen.
Neben Reg.exe, empfehle ich, dass Sie auch Powershell-Check-out, seine erheblich besser in der Lage in seinem Register Handhabung.