我正在使用PowerShell从注册表项中读取信息。
Get-ItemProperty -Path "HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice\" |% {$_.ProgId}
基本上找到机器上的默认浏览器。
但是,我一直遇到这个错误。我是PowerShell的新手,所以不确定发生了什么。
Get-ItemProperty : Cannot find path 'C:\Users\muafzal\Documents\Files\HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice\' because it does not exist.
At line:1 char:1
+ Get-ItemProperty -Path "HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Assoc ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\muafza...ttp\UserChoice\:String) [Get-ItemProperty], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
答案 0 :(得分:3)
您当前的命令正在引用本地文件系统中的文件。您需要使用HKEY_CURRENT_USER注册表配置单元(HKCU:
)的提供程序:
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice\" |% {$_.ProgId}
答案 1 :(得分:2)
在powershell版本5中,您可以使用以下命令在注册表中获取该路径中ProgId的值。
Get-ItemPropertyValue -Path HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice -Name ProgId
Get-ItemProperty和Get-ItemPropertyValue之间的区别在于后者只返回值。
您使用的路径被解释为文件位置,因为文件系统的提供程序是默认的。因此,当您想使用注册表时,您必须使用HKCU:for HKEY_CURRENT_USER和HKLM:for HKEY_LOCAL_MACHINE。
如果您尚未使用v5,则可以使用:
(Get-ItemProperty -Path HKCU:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice).ProgId
答案 2 :(得分:0)
关于提供者和不同的表示法,您可以使用以下表示法之一:
Get-ItemProperty -Path Registry::"HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice" -Name ProgId
OR
Get-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice" -Name ProgId
使用完整的ROOT表示法HKEY_LOCAL_MACHINE,您应指定提供程序(注册表::) 使用HKLM的简称,您可以避免使用,应该为HKLM:\
注意: 这些符号在Powershell中称为注册表的PSDrive。 默认定义2个:
Get-PSDrive -PSProvider Registry
输出:
HKCU注册表HKEY_CURRENT_USER
HKLM注册表HKEY_LOCAL_MACHINE
您可以定义其他PSdrive
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
Get-PSDrive -PSProvider Registry
HKCU注册表HKEY_CURRENT_USER
HKLM注册表HKEY_LOCAL_MACHINE
香港大学注册处HKEY_USERS