2017-08-14 40 views
2

在PS中,當我們使用Get-ChildItem來獲取註冊表的子項時,我們使用registry::而不是registry:。對於其他位置,我們將路徑設置爲c:\,d:\爲什麼還有一個額外的:用於註冊表?PSPath for registry`registry ::` - 爲什麼是雙冒號?

這不是在.NET中有關靜態方法調用的問題的重複。 我也不知道.net也不是一個複雜的編程相關的問題。它只是關於註冊表不同的路徑概念。

+0

[閱讀此文](https://docs.microsoft.com/en-us/powershell/scripting/working-with-registry-keys?view=powershell-6) – LotPings

回答

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檢索完整列表。

+1

@Ammu在這個調用中,你只是定義哪個供應商可以使用,你可以用'FileSystem'來做同樣的事情'Get-ChildItem filesystem :: C:\ Example.txt' – BenH

+0

Get-ChildItem registry :: - 這是我給的配置單元。 Get-ChildItem c:\ - 這就是我給C的孩子:\ 我的問題是爲什麼符號不同的註冊表。 – Ammu

+0

爲什麼不只是使用get-ChildItem註冊表: – Ammu

相關問題