![Exportar claves en un archivo .reg usando Powershell](https://rvso.com/image/1567498/Exportar%20claves%20en%20un%20archivo%20.reg%20usando%20Powershell.png)
Necesito cambiar varios valores clave en el registro de Windows 7 para agregar un parámetro a un comando que inicia VLC.
Afortunadamente, todas las claves son hijas de claves que comienzan con VLC.
:
El comando para Open
y PlayWithVLC
debe editarse. Estoy pensando en:
- exportar claves en un archivo .reg,
- editar valores externamente para agregarlos
--no-playlist-enqueue
a la línea - volver a importar el archivo .reg en el registro.
Mis habilidades en PowerShell son limitadas, supongo que el código debería ser algo como esto:
Get-ChildItem "Registry::HKCR" -Recurse -Force
| where { $_.Name -match 'vlc.'}`
| ForEach-Object {
try {
<create .reg entry>
}
catch { }
}
pero estoy estancado en este punto. ¿Podría darme algún consejo sobre cómo seguir adelante?
Respuesta1
Bien, habilidades de PS limitadas y desea automatizar el manejo del registro.
Uhhhh… ¿estás seguro? 8-}
Dicho todo esto.
Lo que muestra aquí está bien, con la excepción de que no muestra los valores que se establecerán ni el comando para establecer la clave de registro.
Estos cmdlets son los que puede utilizar para gestionar el registro.
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
Asegúrese de consultar los archivos de ayuda y sus ejemplos antes de usarlos también.
PSRemoteRegistry 1.0.0.0
Este módulo contiene funciones para crear, modificar o eliminar subclaves y valores de registro en computadoras locales o remotas.
https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0
https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file
Como sabemos, jugar con el registro puede resultar muy perjudicial si no se tiene cuidado. Por lo tanto, primero haga una copia de seguridad para poder restaurarlo si ocurre un desastre o al menos en un punto de restauración del sistema, punto de control/instantánea de VM.
Entonces, aquí hay una ligera modificación al código publicado, pero no lo tome como algo definitivo ya que necesita tomar decisiones sobre qué acciones deben tomarse y cómo.
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
}
}