使用 Powershell 导出 .reg 文件中的密钥

使用 Powershell 导出 .reg 文件中的密钥

我需要更改 Windows 7 注册表中的几个键值,以便向启动 VLC 的命令添加参数。

幸运的是,所有键都是以 开头的键的子键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-}

话虽这么说。

这里显示的内容很好,只是您没有显示要设置的值,也没有显示设置注册表项的命令。

您可以使用这些 cmdlet 来处理注册表。

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

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

相关内容