PSPath for registry`register ::` - 为什么双冒号?

时间:2017-08-14 19:07:16

标签: powershell registry

在PS中,当我们使用Get-ChildItem来获取Registry的子项时,我们使用registry::而不是registry:。对于其他位置,我们将路径指定为c:\,d:\为什么还有一个额外的:for registry?

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

1 个答案:

答案 0 :(得分:3)

假设您指的是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检索完整列表。