You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Get-Item读取注册表项时Name属性表现异常的疑问

关于PowerShell中Get-Item注册表项显示差异的解答

这完全是PowerShell的预期行为,既不是Bug也不是操作错误——核心在于PowerShell的输出格式化逻辑和对象属性的区别,我给你拆解清楚:

  • 直接执行Get-Item "HKLM:\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE"时,PowerShell会自动根据返回的Microsoft.Win32.RegistryKey对象类型,调用对应的默认格式化视图。对于注册表项对象,这个默认视图只展示它的「短名称」,也就是你看到的@microsoft.com/GENUINE。
  • 当你把命令结果赋值给变量$test后,$test存储的是完整的注册表项对象。这个对象的Name属性本身就定义为完整的注册表路径,和默认输出的简化名称不是一回事。如果想拿到和直接执行时一样的短名称,你需要访问对象的PSChildName属性,而不是Name。

举个实际的代码例子验证一下:

$test = Get-Item "HKLM:\SOFTWARE\MozillaPlugins\@microsoft.com/GENUINE"
# 输出短名称,和直接执行命令的结果一致
Write-Host $test.PSChildName
# 输出完整路径,这是Name属性的固有值
Write-Host $test.Name

如果你想深入了解这个对象的所有属性,可以用Get-Member命令查看:

$test | Get-Member

执行后你会清晰看到Name(完整路径)和PSChildName(当前项名称)的属性定义差异。

内容的提问来源于stack exchange,提问作者Gordon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:40:49