Estou usando o Windows 10 20H2, recriei com êxito esse problema várias vezes sem falha, no PowerShell Desktop 5.1.19041.610 e no PowerShell Core 7.1.1.
O problema: Test-Path funciona apenas com duas unidades de registro do PowerShell (nomes de hive de registro abreviados):
HKCU:
eHKLM:
São abreviaturas de HKEY_CURRENT_USER
e HKEY_LOCAL_MACHINE
respectivamente.
No PowerShell os nomes completos deles são:
Registry::HKEY_CURRENT_USER
e Registry::HKEY_LOCAL_MACHINE
respectivamente.
No entanto, existem cinco colmeias de registro, sendo as outras três:
HKEY_CLASSES_ROOT
, HKEY_CURRENT_CONFIG
eHKEY_USERS
Seus apelidos:
HKCR:
, HKCC:
eHKU:
Test-Path
não consegue encontrar as unidades, mas Test-Path
pode encontrá-las se os nomes completos forem fornecidos:
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
Estou curioso e quero saber por que ele se comporta assim.
Alguém pode dar uma explicação?
Confirmei que as outras três unidades também não funcionam com outros cmdlets, como posso usar as três unidades de registro?
Eles não são criados por padrão, mas você pode criá-los:
Sim, de acordo com o Microsoft Docs, o provedor de registro do PowerShell fornece apenas dois PSDrives por padrão:
HKCU:
eHKLM:
Eles podem ser percorridos como um sistema de arquivos.
Para obter todos os PSDrives de registro:
Ele retornará algo assim:
Estes irão criar
PSDrives
para as outras três colmeias:Test-Path
: