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

Ben*_*ack 7 windows registry powershell powershell-remoting

对于遗留应用程序,我需要创建一个具有格式名称的注册表项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用来得到我想要的东西.

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

Ste*_*sek 12

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

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

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