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

如何用PowerShell获取注册表(Default)项的类型与数据?

解决PowerShell获取注册表默认项((Default))的类型与数据问题

核心解决方案

注册表的(Default)项对应的名称是空字符串(""),它不会出现在GetValueNames()返回的列表中,必须直接通过空字符串来指定获取它的值和类型:

1. 获取默认项的数据

$key = Get-Item -Path 'HKCU:\AppEvents'
$defaultValue = $key.GetValue("") # 空字符串对应(Default)项

当regedit显示“未设置值”时,$defaultValue会返回$null。

2. 获取默认项的类型

$defaultValueType = $key.GetValueKind("") # 用空字符串指定默认项

对于你提到的REG_SZ类型,该命令会返回String。

完整可运行代码

# 定位目标注册表项
$regPath = 'HKCU:\AppEvents'
$key = Get-Item -Path $regPath

# 获取默认项的数据与类型
$defaultData = $key.GetValue("")
$defaultType = $key.GetValueKind("")

# 格式化输出结果
Write-Host "默认项(Default)的数据: $($defaultData ?? '空/未设置值')"
Write-Host "默认项(Default)的类型: $defaultType"

原方法失败的原因

GetValueNames()仅返回非默认值的名称列表,默认项(名称为空字符串)不会被包含,因此你的foreach循环无法遍历到它,必须通过直接指定空字符串的方式访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:05:54