我尝试在 PowerShell 中使用 Set-ItemProperty
创建一个项目,它适用于大多数系统:
New-PSDrive -name HKCR -PSProvider Registry -root HKEY_CLASSES_ROOT
Set-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue
这会在大多数 Windows 7 系统上创建一个 DWORD 值,但我发现一个系统会创建一个 STRING 值,我想知道:为什么?系统表现不同会发生什么?所有都没有设置该值,都使用相同的 Powershell 版本的相同基础镜像。
顺便说一句,我发现通过使用下面的代码,我可以明确地设置一个类型,所以我已经解决了这个问题:
New-ItemProperty -Path HKCR:\Software\MyCompany\ -Name Level -Value 5 -ErrorAction SilentlyContinue -PropertyType DWord
但出于好奇,我想知道为什么系统表现不同。
最佳答案
我不知道为什么会发生这种情况,但为了避免这种情况,请明确说明。使用类型(动态)参数并指定 RegistryValueKind值(您也可以将它与 New-ItemProperty
一起使用):
Set-ItemProperty -Path HKCR:\Software\MyCompany -Name Level -Value 5 -Type DWord
关于windows - Set-ItemProperty 在某些系统上将注册表值设置为字符串而不是 DWord,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787365/