Registry-Wert mit Batch auslesen, an einen Schlüssel anhängen und enthaltene Werte ändern
Hallo liebe Administrator(inn)en,
bitte seid so freundlich und helft mir bei einem Problem mit der Registry.
Ich möchte Dwords (Werte) ändern in einem Schlüssel, der von Gerät zu Gerät unterschiedlich ist.
Es gibt einen Schlüssel, der bei allen Geräten gleich ist, wo der individuelle Teil-Schlüssel in einem Wert hinterlegt ist.
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort]
"M"="__._PHYSICALPORT3DysonsPhereTL4KMY001"
Dadurch könnte ich den an allen Geräten gleichen Teil-Schlüssel mit dem den individuellen Wert vervollständigen,
den individualen gesamten Schlüssel nachahmen und somit die Werte dort ändern.
Immer gleicher Teil-Schüssel:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\
Individualer Wert ermittelt, beginnt hinter dem gleichbleibenden Schlüssel und den drei " oder nach der 5 Stelle:
__._PHYSICALPORT3DysonsPhereTL4KMY001
könnte aber auch kürzer sein z.B.:
__._PHYSICALPORT3TEC8M7P001
will damit sagen, die Länge des Wertes ist leider nicht immer gleich, endet aber mit einem "
Zusammenführen und hinten eine eckige Klammer ankorken:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001]
Den Wert ermitteln aus einer Batch heraus würde ich folgender Maßen machen:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort" /v "M"
FOR /F "tokens=3 skip=2" %%i IN ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort" /v "M"') DO SET Individual=%%i
Aber wie flansche ich Individual=%%i an den gleichbleibenden Schlüssel
Den ganzen Kladderadatsch möchte ich dann mit einer Batch in die Registry integrieren.
In einer Reg Datei sieht es ja so aus:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001]
"PortType"=dword:00000001
"Initialize"=dword:00000001
"Detecting"=dword:00000000
"Release"=dword:00000001
"State"=dword:00000004
Wenn ich aus einer Batch Datei heraus die Werte in die Registry integrieren will, muss es ja so aussehen:
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v PortType /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Initialize /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Detecting /d 0
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Release /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v State /d 4
Ich würde mich sehr freuen, wenn mir bei diesem Monster jemand helfen könnte.
Aber nichtsdestoweniger trotz, vielen Dank schon mal für die Geduld das alles hier zu lesen.
bitte seid so freundlich und helft mir bei einem Problem mit der Registry.
Ich möchte Dwords (Werte) ändern in einem Schlüssel, der von Gerät zu Gerät unterschiedlich ist.
Es gibt einen Schlüssel, der bei allen Geräten gleich ist, wo der individuelle Teil-Schlüssel in einem Wert hinterlegt ist.
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort]
"M"="__._PHYSICALPORT3DysonsPhereTL4KMY001"
Dadurch könnte ich den an allen Geräten gleichen Teil-Schlüssel mit dem den individuellen Wert vervollständigen,
den individualen gesamten Schlüssel nachahmen und somit die Werte dort ändern.
Immer gleicher Teil-Schüssel:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\
Individualer Wert ermittelt, beginnt hinter dem gleichbleibenden Schlüssel und den drei " oder nach der 5 Stelle:
__._PHYSICALPORT3DysonsPhereTL4KMY001
könnte aber auch kürzer sein z.B.:
__._PHYSICALPORT3TEC8M7P001
will damit sagen, die Länge des Wertes ist leider nicht immer gleich, endet aber mit einem "
Zusammenführen und hinten eine eckige Klammer ankorken:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001]
Den Wert ermitteln aus einer Batch heraus würde ich folgender Maßen machen:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort" /v "M"
FOR /F "tokens=3 skip=2" %%i IN ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort" /v "M"') DO SET Individual=%%i
Aber wie flansche ich Individual=%%i an den gleichbleibenden Schlüssel
Den ganzen Kladderadatsch möchte ich dann mit einer Batch in die Registry integrieren.
In einer Reg Datei sieht es ja so aus:
[HKEY_LOCAL_MACHINE\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001]
"PortType"=dword:00000001
"Initialize"=dword:00000001
"Detecting"=dword:00000000
"Release"=dword:00000001
"State"=dword:00000004
Wenn ich aus einer Batch Datei heraus die Werte in die Registry integrieren will, muss es ja so aussehen:
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v PortType /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Initialize /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Detecting /d 0
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v Release /d 1
REG ADD HKLM\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\__._PHYSICALPORT3DysonsPhereTL4KMY001 /f /v State /d 4
Ich würde mich sehr freuen, wenn mir bei diesem Monster jemand helfen könnte.
Aber nichtsdestoweniger trotz, vielen Dank schon mal für die Geduld das alles hier zu lesen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 7537738550
Url: https://administrator.de/contentid/7537738550
Ausgedruckt am: 21.11.2024 um 15:11 Uhr
3 Kommentare
Neuester Kommentar
So grob aus dem Bauch heraus ohne zu testen:
$registryPath = "HKLM:\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\"
$registryPathTarget = "HKLM:\SOFTWARE\Raeuber Corp\Hotzenplotz Manager\Cache\PhysicalPort\"
$subkeys = Get-ChildItem -Path $registryPath
$variableA = ""
foreach ($subkey in $subkeys) {
$subkeyName = $subkey.PSChildName
if ($subkeyName -match "^.{5}__\._PHYSICALPORT") {
$variableA = $subkeyName
break
}
}
if ($variableA -ne "") {
New-Item -Path ($registryPathTarget + $variableA) -Force | Out-Null
Set-ItemProperty -Path ($registryPathTarget + $variableA) -Name "PortType" -PropertyType Dword -Value 1
Set-ItemProperty -Path ($registryPathTarget + $variableA) -Name "Initialize" -PropertyType Dword -Value 1
Set-ItemProperty -Path ($registryPathTarget + $variableA) -Name "Detecting" -PropertyType Dword -Value 0
Set-ItemProperty -Path ($registryPathTarget + $variableA) -Name "Release" -PropertyType Dword -Value 1
Set-ItemProperty -Path ($registryPathTarget + $variableA) -Name "State" -PropertyType Dword -Value 4
Write-Host "New subkey '$variableA' created under '$registryPath' with the specified values."
} else {
Write-Host "No matching subkey found."
}