我的代码:
try {
if(!(Test-Path -Path $registryPath -Value $Name)) {
New-ItemProperty -Name test -Path HKLM:\Software\WOW6432Node\Mozilla -PropertyType DWord -Value 2
}
}
catch {
Set-ItemProperty -Path $registryPath -Name $Name -Value $value
}
我的问题:结果以字符串形式输出。
我尝试将
-PropertyType
更改为 -Type
。DWord
的大写字母。
任何帮助将不胜感激。
正如文档所说: 您还可以使用 Set-ItemProperty 创建和更改注册表值和数据。例如,您可以向某个项添加新的注册表项并建立或更改其值。
使用 Set-ItemProperty 还可以将注册表项的类型从 REG_SZ(字符串)值更改为 DWord,因此基本上您需要的是:
$registryPath = 'HKLM:\Software\WOW6432Node\Mozilla'
$propName = 'test'
Set-ItemProperty -Path $registryPath -Name $propName -Value 2 -Type DWord
当然,如果您没有权限在 HKEY_LOCAL_MACHINE 注册表路径中创建或更改某些内容,您将收到错误。
当使用 Set-ItemProperty 设置 DWord 类型条目时,我看到了如下错误:
Set-ItemProperty : A parameter cannot be found that matches parameter name 'Type'.
显然旧版本的 Powershell/Set-ItemProperty 不包含 Type 参数。在这种情况下,以下语法可以代替它,这在我找不到类型参数的情况下肯定有效:
[Microsoft.Win32.Registry]::SetValue("HKLM:\Software\WOW6432Node\Mozilla","test",2,[Microsoft.Win32.RegistryValueKind]::DWord)