windows - Set-ItemProperty 在某些系统上将注册表值设置为字符串而不是 DWord,为什么?

标签 windows powershell registry dword

我尝试在 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/

相关文章:

在我关闭程序之前,C++ 文件夹不会删除

loops - 使用powershell检查ftp文件夹中的文件

powershell - PowerShell splatting是否支持内联哈希表?

c# - 如何从添加/删除程序控制面板获取图标

linux - 在 Linux 中解压长名称文件时出现问题

windows - 是否需要在 CPU 上安排等待 Windows 事件的线程从 sleep 中唤醒?

c++ - 如何停止 gSOAP 操作

powershell - 此 XML 管道中的 null 项是什么?

c# - 如何从注册表中获取key的默认值

c# - Windows-7:当网络适配器处于隐藏状态时禁用网络适配器上的互联网连接共享?