通过PowerShell创建包含路径组件的注册表项

时间:2013-04-22 14:05:41

标签: windows powershell registry powershell-remoting

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

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

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

1 个答案:

答案 0 :(得分:12)

你需要做两件事。首先,您需要获取可写RegistryKey对象,否则无论如何都无法修改任何内容。其次,直接在CreateSubKey对象上使用RegistryKey方法。

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

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