Exportar claves en un archivo .reg usando Powershell

Exportar claves en un archivo .reg usando Powershell

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.:

ingrese la descripción de la imagen aquí

El comando para Openy PlayWithVLCdebe editarse. Estoy pensando en:

  • exportar claves en un archivo .reg,
  • editar valores externamente para agregarlos --no-playlist-enqueuea 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.

https://docs.microsoft.com/en-us/powershell/scripting/getting-started/cookbooks/working-with-registry-entries?view=powershell-6

https://blogs.technet.microsoft.com/heyscriptingguy/2015/04/02/update-or-add-registry-key-value-with-powershell

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
          }
}

información relacionada