![Exportieren von Schlüsseln in eine REG-Datei mit Powershell](https://rvso.com/image/1567498/Exportieren%20von%20Schl%C3%BCsseln%20in%20eine%20REG-Datei%20mit%20Powershell.png)
Ich muss mehrere Schlüsselwerte in der Windows 7-Registrierung ändern, um einem Befehl zum Starten von VLC einen Parameter hinzuzufügen.
Glücklicherweise sind alle Schlüssel untergeordnete Schlüssel, die mit folgendem beginnen VLC.
:
Der Befehl für Open
und PlayWithVLC
muss bearbeitet werden. Ich denke dabei an:
- Exportieren von Schlüsseln in eine .reg-Datei,
- Externes Bearbeiten von Werten zum Hinzufügen
--no-playlist-enqueue
zur Zeile - erneutes Importieren der .reg-Datei in die Registrierung.
Meine Kenntnisse in PowerShell sind begrenzt, ich gehe davon aus, dass der Code etwa so aussehen sollte:
Get-ChildItem "Registry::HKCR" -Recurse -Force
| where { $_.Name -match 'vlc.'}`
| ForEach-Object {
try {
<create .reg entry>
}
catch { }
}
aber ich stecke an diesem Punkt fest. Können Sie mir einen Rat geben, wie ich weiter vorgehen soll?
Antwort1
OK, eingeschränkte PS-Kenntnisse und Sie möchten das Herumspielen mit der Registrierung automatisieren.
Ähhhhh ... bist du sicher? 8-}
Abgesehen davon.
Was Sie hier zeigen, ist in Ordnung, mit der Ausnahme, dass Sie weder die festzulegenden Werte noch den Befehl zum Festlegen des Registrierungsschlüssels anzeigen.
Mit diesen Cmdlets können Sie mit der Registrierung arbeiten.
Get-Command -CommandType Cmdlet -Name '*item*'
CommandType Name ModuleName
----------- ---- ----------
Cmdlet Clear-Item Microsoft.PowerShell.Management
Cmdlet Clear-ItemProperty Microsoft.PowerShell.Management
Cmdlet Copy-Item Microsoft.PowerShell.Management
Cmdlet Copy-ItemProperty Microsoft.PowerShell.Management
Cmdlet Get-ChildItem Microsoft.PowerShell.Management
Cmdlet Get-Item Microsoft.PowerShell.Management
Cmdlet Get-ItemProperty Microsoft.PowerShell.Management
Cmdlet Move-Item Microsoft.PowerShell.Management
Cmdlet Move-ItemProperty Microsoft.PowerShell.Management
Cmdlet New-Item Microsoft.PowerShell.Management
Cmdlet Remove-Item Microsoft.PowerShell.Management
Cmdlet Remove-ItemProperty Microsoft.PowerShell.Management
Cmdlet Set-Item Microsoft.PowerShell.Management
Cmdlet Set-ItemProperty Microsoft.PowerShell.Management
Sehen Sie sich vor der Verwendung unbedingt auch die Hilfedateien und die darin enthaltenen Beispiele an.
PSRemoteRegistry 1.0.0.0
Dieses Modul enthält Funktionen zum Erstellen, Ändern oder Löschen von Registrierungsunterschlüsseln und -werten auf lokalen oder Remotecomputern.
https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0
https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file
Wie wir wissen, kann das Manipulieren der Registrierung wirklich weh tun, wenn man nicht vorsichtig ist. Sichern Sie sie also zuerst, damit Sie sie im Notfall wiederherstellen können, oder zumindest auf einen Systemwiederherstellungspunkt, VM-Checkpoint/Snapshot.
Hier ist also eine geringfügige Änderung an Ihrem geposteten Code, aber betrachten Sie diese nicht als endgültig, da Sie Entscheidungen darüber treffen müssen, welche Maßnahmen ergriffen werden müssen und wie.
Get-ChildItem "Registry::HKCR" -Recurse -Force `
| where { $_.Name -match 'vlc.'}`
| ForEach-Object {
try {
'Target key to modify / export / whatever'
$_.Name
# 'Registry code here' -WhatIf # remove the whatif if you are sure you are good with what you have
}
catch {
Write-Warning -Message 'Key not accessible'
$_.Name
}
}