Powershell中Test-Path对已存在的注册表路径返回false问题
PowerShell Test-Path 检测HKU注册表路径返回False的问题解决
常见原因
- HKU注册表驱动器未预挂载:PowerShell默认仅预挂载
HKLM:(本地机器注册表)、HKCU:(当前用户注册表)两个注册表驱动器,HKU:(对应用户配置单元根路径HKEY_USERS)默认没有挂载,直接调用路径会被判定为不存在。 - 运行权限不足:访问HKEY_USERS下的非当前用户SID项需要系统管理员权限,普通身份启动的PowerShell会被权限拦截,Test-Path会直接返回False。
- 目标用户配置单元未加载:你要访问的SID对应的用户如果未处于登录状态,系统不会自动加载该用户的NTUSER.DAT配置单元到HKU路径下,注册表中该路径实际不存在。
解决步骤
- 右键PowerShell,选择「以管理员身份运行」
- 先手动挂载HKU注册表驱动器,执行命令:
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
- 重新执行你的检测命令即可:
Test-Path -Path 'HKU:\S-9-9-21-57989841-616249376-1801674531-2451702'
如果执行后仍返回False,可运行Get-ChildItem HKU:查看当前已加载的所有HKU子项,核对你要访问的SID是否拼写正确、是否已被系统加载。
内容的提问来源于stack exchange,提问作者SmartestVEGA
相关产品推荐
相关产品推荐

