Exportando chaves no arquivo .reg usando o Powershell

0

Eu preciso alterar vários valores de chave no registro do Windows 7, para adicionar um parâmetro a um comando que inicia o VLC.

Felizmente, todas as chaves são filhos de chaves que começam com VLC. :

OcomandoparaOpenePlayWithVLCdevesereditado.Estoupensandoem:

  • exportandochavesemumarquivo.reg,
  • editandovaloresexternamenteparaadicionar--no-playlist-enqueueàlinha
  • reimportandooarquivo.regnoregistro.

MinhashabilidadesnoPowerShellsãolimitadas,presumoqueocódigosejaalgoassim:

Get-ChildItem"Registry::HKCR" -Recurse -Force 
| where { $_.Name -match 'vlc.'}'
| ForEach-Object {
    try {
        <create .reg entry>
    }
    catch { }
}

mas estou preso neste momento. Você poderia me dar alguns conselhos sobre como prosseguir?

    
por mins 08.08.2018 / 02:10

1 resposta

1

OK, habilidades PS limitadas e você deseja automatizar o uso do registro.

Uhhhhh ... tem certeza? 8 -}

Tudo o que foi dito.

O que você mostra aqui é bom, com a exceção de que você não mostra os valores a serem definidos nem o comando para definir a chave de registro.

Esses cmdlets são aqueles que você pode usar para lidar com o 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

Não deixe de consultar os arquivos de ajuda e seus exemplos antes de usá-los também.

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

This module contains functions to create, modify or delete registry subkeys and values on local or remote computers.

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, mexer com o registro pode realmente doer se você não for cuidadoso. Portanto, faça o backup primeiro para poder restaurar se ocorrer um desastre ou, pelo menos, para um ponto de restauração do sistema, ponto de verificação / instantâneo da VM.

Então, aqui está uma pequena modificação no seu código postado, mas não tome isso como final, já que você precisa tomar decisões sobre quais ações precisam ser tomadas e como.

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
          }
}
    
por 08.08.2018 / 08:50