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

PowerShell中RegistryKey的Property属性是否真为String对象?

问题解答

  1. 首先可以明确:$hkeys[0].Property数组的元素确实是String对象,你执行的类型查询结果没有错误。
  2. 你看到的冒号分隔的键值对,本质是PowerShell格式化输出系统的展示效果,和Property属性本身的存储内容无关:
  • 当你直接输出注册表项对象(比如执行$hkeys[0])时,PowerShell会自动读取该注册表项的Property数组拿到所有值名称,再逐个调用GetValue()方法获取对应的值,最后拼接成名称 : 值的格式展示在输出的Property列中,这个拼接后的内容并不会存入Property属性里。
  • .NET 中Microsoft.Win32.RegistryKey类的Property属性,原生设计就是仅返回当前注册表项下所有值的名称集合,本身就不包含对应的值内容,所以你取$hkeys[0].Property[0]只会得到第一个值的名称DisplayName,属于正常行为。
  1. 如果需要获取某个名称对应的值,可以用如下方法:
# 按Property数组的索引取值
$hkeys[0].GetValue($hkeys[0].Property[0])
# 直接指定值名称取值
$hkeys[0].GetValue('DisplayName')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:45:10