我使用的是 Windows 10 20H2,我已在 PowerShell Desktop 5.1.19041.610 和 PowerShell Core 7.1.1 上多次成功重现此问题而没有失败。
问题:Test-Path 仅适用于两个 PowerShell 注册表驱动器(缩短的注册表配置单元名称):
HKCU:
和HKLM:
它们分别是HKEY_CURRENT_USER
和的缩写HKEY_LOCAL_MACHINE
。
在 PowerShell 中,它们的全名是:
Registry::HKEY_CURRENT_USER
和Registry::HKEY_LOCAL_MACHINE
分别。
但是有五个注册表配置单元,其他三个是:
HKEY_CLASSES_ROOT
,HKEY_CURRENT_CONFIG
和HKEY_USERS
他们的简称:
HKCR:
,HKCC:
和HKU:
Test-Path
找不到驱动器,但是Test-Path
如果提供了全名,则可以找到它们:
TEST-PATH HKCR:
TEST-PATH HKCU:
TEST-PATH HKLM:
TEST-PATH HKU:
TEST-PATH HKCC:
TEST-PATH REGISTRY::HKEY_CLASSES_ROOT
TEST-PATH REGISTRY::HKEY_CURRENT_CONFIG
TEST-PATH REGISTRY::HKEY_USERS
$PSVersionTable
我很好奇,我想知道它为什么会这样。
任何人都可以提供解释吗?
我已经确认其他三个驱动器也不能与其他 cmdlet 一起使用,我该如何使用这三个注册表驱动器?
默认情况下不会创建它们,但您可以创建它们:
是的,根据 Microsoft Docs,PowerShell 注册表提供程序默认仅提供两个 PSDrive:
HKCU:
和HKLM:
它们可以像文件系统一样被遍历。
要获取所有注册表 PSDrive:
它将返回如下内容:
这些将为
PSDrives
其他三个蜂箱创建:Test-Path
: