Powershell 注册表的PSPath`registry::`-为什么使用双冒号?

Powershell 注册表的PSPath`registry::`-为什么使用双冒号?,powershell,registry,Powershell,Registry,在PS中,当我们使用GetChildItem获取注册表的子项时,我们使用Registry::而不是Registry:。对于其他位置,我们给出的路径是c:\,d:\为什么注册表中有一个额外的:呢 这不是关于.NET中静态方法调用的问题的重复。 我既不知道.NET,也不知道这是一个复杂的编程相关问题。这仅仅是关于路径的概念,这对于注册表是不同的 假设您引用的是PSPath,这是注册表提供程序和位置的符号。这与PSDrive的符号不同 Provider::Location 示例文件系统 Get-Ch

在PS中,当我们使用GetChildItem获取注册表的子项时,我们使用
Registry::
而不是
Registry:
。对于其他位置,我们给出的路径是c:\,d:\为什么注册表中有一个额外的:呢

这不是关于.NET中静态方法调用的问题的重复。
我既不知道.NET,也不知道这是一个复杂的编程相关问题。这仅仅是关于路径的概念,这对于注册表是不同的

假设您引用的是PSPath,这是注册表提供程序和位置的符号。这与PSDrive的符号不同

Provider::Location
示例文件系统

Get-ChildItem C:\example.txt | Select-Object -ExpandProperty PSPath

Microsoft.PowerShell.Core\FileSystem::C:\example.txt
示例注册表

Get-ChildItem HKLM:\Example | Select-Object -ExpandProperty PSPath

Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Example

请注意,在我的示例中,PSDrives(C和HKLM)只有一个冒号。HKLM和HKCU是内置于注册表位置的PSDrives。您可以使用
Get-PSDrive
cmdlet检索完整列表。

@Ammu在该调用中,您只需定义要使用的提供程序,就可以对
文件系统执行相同的操作,例如
Get-ChildItem-FileSystem::C:\Example.txt
Get-ChildItem-registry::-这是我为获取配置单元所做的。Get ChildItem c:\-这是我用来获取c的子项的方法:\n我的问题是为什么注册表的符号不同。为什么不使用Get ChildItem注册表:@Ammu您可以访问注册表,而无需静态定义提供程序
Get ChildItem HKLM:\Software
在功能上与Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software
Get ChildItem相同,因此它只是一种区分注册表提供程序和驱动器的符号。知道了!谢谢!