我正在设置一台用于测试的计算机,其中一部分正在修改一些注册表值。这是一个Azure VM,我正在通过Powershell对其进行配置。
我注意到从Get-ItemProperty
返回的注册表值(在Powershell中)与在regedit.exe
中看到的注册表值之间存在许多差异。下面是一个这样的差异的示例:
Get-ItemProperty
:
regedit.exe
:
在DefaultUserName
中查看时设置了注释regedit.exe
我正在使用New-ItemProperty
(带有-Force
参数)设置这些属性。
感谢您的帮助。
答案 0 :(得分:1)
我暂时没有答案,但是有一些想法可以尝试。
使用命令行列出所有键
reg.exe query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
使用PowerShell列出所有键
(Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\").PSObject.Properties | where-object name -notlike PS* | Format-Table Name, value
这应该使您更容易比较PowerShell生成的结果和命令行生成的结果。
要计算PowerShell中的条目数
((Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\").PSObject.Properties | where-object name -notlike PS*).count
我已经针对2种不同的笔记本电脑进行了测试,没有发现任何差异。
我已经针对4种不同的Azure VM进行了测试,没有发现任何差异。
如果要创建新的注册表项,我将重新启动PowerShell控制台,然后再次检索注册表项。只是为了确保。
否则,您应该考虑从regedit.exe导出注册表项,并查看文件中生成的路径。