对于遗留应用程序,我需要创建一个注册表项,其名称格式为 c:/foo/bar/baz
。 (注意:正斜杠,而不是反斜杠。)要清楚:这是一个键的名称,带有正斜杠,否则看起来像 Windows 路径。因为我需要针对大量服务器编写脚本,PowerShell 似乎是一个不错的选择。
问题是我不知道如何通过 PowerShell 创建该格式的 key 。 New-Item -Path HKLM:\SOFTWARE\Some\Key -Name 'c:/foo/bar/baz'
出现错误,PowerShell 认为我正在使用 /
作为路径分隔符并且找不到路径 HKLM:\Software\Some\Key\c:\foo\bar
,它确实不存在(也不应该存在)。我找不到任何其他方法来(ab)使用 New-Item
来获得我想要的东西。
我是否遗漏了什么,或者我应该放弃并仅以老式方式生成和加载注册表转储?
最佳答案
你需要做两件事。首先你需要得到一个可写的RegistryKey
对象,否则你无论如何也不能修改任何东西。其次,直接在 RegistryKey
对象上使用 CreateSubKey
方法。
$writable = $true
$key = (get-item HKLM:\).OpenSubKey("SOFTWARE", $writable).CreateSubKey("C:/test")
$key.SetValue("Item 1", "Value 1")
创建键后,您可以使用生成的对象为其添加值。
关于windows - 通过 PowerShell 使用路径组件创建注册表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149175/