Powershell を使用して .reg ファイルにキーをエクスポートする

Powershell を使用して .reg ファイルにキーをエクスポートする

VLC を起動するコマンドにパラメータを追加するには、Windows 7 レジストリのいくつかのキー値を変更する必要があります。

幸いなことに、すべてのキーは次のキーの子ですVLC.:

ここに画像の説明を入力してください

OpenおよびのコマンドPlayWithVLCを編集する必要があります。次の点を考えています:

  • .reg ファイルにキーをエクスポートする
  • --no-playlist-enqueue行に追加する値を外部から編集する
  • レジストリ内の .reg ファイルを再インポートします。

PowerShell のスキルは限られているので、コードは次のようになると思います。

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

しかし、この時点で行き詰まっています。今後どのように進めればよいかアドバイスをいただけませんか?

答え1

さて、PS スキルが限られており、レジストリの操作を自動化したいと考えています。

えーっと…本当にいいですか?8-}

そうは言っても。

ここで示されている内容は、設定する値やレジストリ キーを設定するコマンドが表示されていないことを除けば問題ありません。

これらのコマンドレットは、レジストリを処理するために使用できるものです。

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

これらも使用する前に、必ずヘルプ ファイルとその例を参照してください。

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

PSリモートレジストリ 1.0.0.0

このモジュールには、ローカルまたはリモート コンピューター上のレジストリ サブキーと値を作成、変更、または削除する関数が含まれています。

https://www.powershellgallery.com/packages/PSRemoteRegistry/1.0.0.0

https://stackoverflow.com/questions/28076128/powershell-export-multiple-keys-to-one-reg-file

ご存知のとおり、レジストリをいじると、注意しないと本当に大変なことになります。そのため、まずバックアップして、災害が発生した場合に復元できるように、または少なくともシステム復元ポイント、VM チェックポイント/スナップショットに復元できるようにしてください。

したがって、投稿されたコードに若干の変更を加えますが、どのようなアクションをどのように実行する必要があるかを決定する必要があるため、これを最終的なものとして受け取らないでください。

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

関連情報