2017-08-14 4 views
2

PSでGet-ChildItemを使用してRegistryの子を取得するとき、registry:の代わりにregistry::を使用します。他の場所については、パスをc:\、d:\としています。レジストリのためのPSPath `registry ::` - なぜダブルコロンですか?

これは、.NETの静的メソッド呼び出しに関する質問と重複していません。 .NETもこれも複雑なプログラミング関連の質問ではありません。これは単にレジストリのために異なるパスの概念に関するものです。

+0

[こちらを読む](https://docs.microsoft.com/en-us/powershell/scripting/working-with-registry-keys?view=powershell-6) – LotPings

答えて

3

PSPathを指していると仮定すると、これはレジストリプロバイダと場所の両方の表記です。これは、PSDriveの表記とは異なります。私の例でPSDrives(C及びHKLM)が一つだけコロンを有すること

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 

注意。 HKLMとHKCUはレジストリの場所にPSDriveを組み込んでいます。 Get-PSDriveコマンドレットを使用すると、完全な一覧を取得できます。

+1

@Ammuこの呼び出しでは、定義するだけですどのプロバイダを使うかは、 'FileSystem'と同じことをすることができます。 'Get-ChildItem filesystem :: C:\ Example.txt' – BenH

+0

Get-ChildItem registry :: - これは私がハイブを取得するために与えるものです。 Get-ChildItem c:\ - これは私がCの子を得るために与えるものです。\ 私の質問はレジストリで表記が異なるのはなぜですか? – Ammu

+0

get-ChildItemレジストリを使用しない理由: – Ammu

関連する問題