8

对于遗留应用程序,我需要创建一个名称格式为c:/foo/bar/baz. (注意:正斜杠,而不是反斜杠。)要清楚:这是一个带有正斜杠的键名,否则看起来像 Windows 路径。因为我需要针对大量服务器编写脚本,所以 PowerShell 似乎是一个不错的选择。

问题是我无法弄清楚如何通过 PowerShell 创建该格式的密钥。 New-Item -Path HKLM:\SOFTWARE\Some\Key -Name 'c:/foo/bar/baz'PowerShell 错误认为我将/其用作路径分隔符并且找不到路径HKLM:\Software\Some\Key\c:\foo\bar,该路径确实不存在(也不应该存在)。我找不到任何其他方式来(ab)使用New-Item来获得我想要的东西。

有什么我遗漏的,还是我应该放弃并以老式方式生成并加载注册表转储?

4

1 回答 1

15

你需要做两件事。首先你需要得到一个可写的RegistryKey对象,否则无论如何你都不能修改任何东西。其次,直接在对象上使用CreateSubKey方法。RegistryKey

$writable = $true
$key = (get-item HKLM:\).OpenSubKey("SOFTWARE", $writable).CreateSubKey("C:/test")
$key.SetValue("Item 1", "Value 1")

创建密钥后,您可以使用生成的对象为其添加值。

于 2013-04-22T14:30:34.023 回答