about_Providers
簡単な説明
PowerShell プロバイダーが、コマンド ラインで簡単にアクセスできないデータとコンポーネントへのアクセスを提供する方法について説明します。 データは、ファイル システム ドライブに似た一貫性のある形式で表示されます。
詳細な説明
PowerShell プロバイダーは、表示と管理を容易にするために特殊なデータ ストアへのアクセスを提供する .NET プログラムです。 データはドライブに表示され、ハード ディスク ドライブと同様にパス内のデータにアクセスします。 プロバイダーがサポートする組み込みのコマンドレットを使用して、プロバイダー ドライブ内のデータを管理できます。 また、特にデータ用に設計されたカスタム コマンドレットを使用できます。
プロバイダーは、組み込みのコマンドレットに動的パラメーターを追加することもできます。 これらのパラメーターは、プロバイダー データでコマンドレットを使用する場合にのみ使用できます。
組み込みプロバイダー
PowerShell には、さまざまな種類のオブジェクトへのアクセスを提供する一連の組み込みプロバイダーが含まれています。
- エイリアス プロバイダー
- ドライブ-
Alias:
- オブジェクトの種類 - System.Management.Automation.AliasInfo
- ドライブ-
- 証明書 プロバイダー
- ドライブ-
Cert:
- オブジェクトの種類 - Microsoft.PowerShell.Commands.X509StoreLocation、 System.Security.Cryptography.X509Certificates.X509Certificate2
- ドライブ-
- 環境 プロバイダー
- ドライブ-
Env:
- オブジェクトの種類 - System.Collections.DictionaryEntry
- ドライブ-
- FileSystem プロバイダー
- ドライブ -
C:
およびハードウェアに応じたその他 - オブジェクトの種類 - System.IO.FileInfo、 System.IO.DirectoryInfo
- ドライブ -
- 関数 プロバイダー
- ドライブ-
Function:
- オブジェクトの種類 - System.Management.Automation.FunctionInfo
- ドライブ-
- レジストリ プロバイダー
- ドライブ -
HKLM:
、HKCU:
- オブジェクトの種類 - Microsoft.Win32.RegistryKey
- ドライブ -
- 変数 プロバイダー
- ドライブ-
Variable:
- オブジェクトの種類 - System.Management.Automation.PSVariable
- ドライブ-
- WSMan プロバイダー
- ドライブ-
WSMan:
- オブジェクトの種類 - Microsoft.WSMan.Management.WSManConfigContainerElement
- ドライブ-
独自の PowerShell プロバイダーを作成したり、他のユーザーが開発するプロバイダーをインストールしたりすることもできます。 セッションで使用可能なプロバイダーを一覧表示するには、次のように入力します。
Get-PSProvider
プロバイダーのインストールと削除
プロバイダーは通常、PowerShell モジュールを使用してインストールされます。 モジュールをインポートすると、プロバイダーがセッションに読み込まれます。 組み込みプロバイダーをアンインストールすることはできません。 他のモジュールによって読み込まれたプロバイダーをアンインストールできます。
コマンドレットを使用して、現在のセッションからプロバイダーを Remove-Module
アンロードできます。 このコマンドレットはプロバイダーをアンインストールしませんが、セッションでプロバイダーを使用できなくなります。
コマンドレットを使用して、現在の Remove-PSDrive
セッションから任意のドライブを削除することもできます。 ドライブ上のこのデータは影響を受けませんが、そのセッションではドライブを使用できなくなります。
プロバイダーの表示
コンピューター上の PowerShell プロバイダーを表示するには、次のように入力します。
Get-PSProvider
出力には、組み込みのプロバイダーと、セッションに追加したプロバイダーが一覧表示されます。
プロバイダー コマンドレット
次のコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 同じコマンドレットを同じ方法で使用して、プロバイダーが公開するさまざまな種類のデータを管理できます。 1 つのプロバイダーのデータを管理する方法を学習したら、任意のプロバイダーのデータと同じ手順を使用できます。
たとえば、コマンドレットは New-Item
新しい項目を作成します。 C:
FileSystem プロバイダーでサポートされているドライブでは、新しいファイルまたはフォルダーの作成に使用New-Item
できます。 レジストリ プロバイダーでサポートされているドライブでは、新しいレジストリ キーを作成するために使用New-Item
できます。 ドライブでは Alias:
、新しいエイリアスを作成するために使用 New-Item
できます。
次のいずれかのコマンドレットの詳細については、次のように入力します。
Get-Help <cmdlet-name> -Detailed
ChildItem コマンドレット
コンテンツ コマンドレット
項目コマンドレット
ItemProperty コマンドレット
- Clear-ItemProperty
- Copy-ItemProperty
- Get-ItemProperty
- Move-ItemProperty
- New-ItemProperty
- Remove-ItemProperty
- Rename-ItemProperty
- Set-ItemProperty
Location コマンドレット
パス コマンドレット
PSDrive コマンドレット
PSProvider コマンドレット
プロバイダー データの表示
プロバイダーの主な利点は、データを使い慣れた一貫性のある方法で公開することです。 データ表示のモデルは、ファイル システム ドライブです。
プロバイダーを使用すると、データ ストア内のアイテムを、ファイル システム内のデータと同様に表示、移動、変更できます。 データ ストアには、サポートされているドライブの名前でアクセスされます。
ドライブはコマンドレットの既定の Get-PSProvider
表示に表示されますが、コマンドレットを使用してプロバイダー ドライブに関する情報を Get-PSDrive
取得できます。 たとえば、Function: ドライブのすべてのプロパティを取得するには、次のように入力します。
Get-PSDrive Function | Format-List *
ファイル システム ドライブの場合と同様に、プロバイダー ドライブ内のデータを表示および移動できます。
プロバイダー ドライブの内容を表示するには、コマンドレットをGet-Item
Get-ChildItem
使用します。 ドライブ名の後にコロン (:
) を入力します。 たとえば、ドライブの内容を表示するには、次のように Alias:
入力します。
Get-Item alias:
パスにドライブ名を含めることで、別のドライブの任意のドライブのデータを表示および管理できます。 たとえば、ドライブ内HKLM:
のレジストリ キーを別のHKLM\Software
ドライブから表示するには、次のように入力します。
Get-ChildItem HKLM:\SOFTWARE\
ドライブを開くには、コマンドレットを Set-Location
使用します。 ドライブ パスを指定するときは、コロンを覚えておいてください。 たとえば、ドライブのルート ディレクトリに場所を変更するには、次のように Cert:
入力します。
Set-Location cert:
次に、ドライブの内容を表示するには、次のように Cert:
入力します。
Get-ChildItem
階層データの移動
ハード ディスク ドライブと同様に、プロバイダー ドライブ間を移動できます。 項目内の項目の階層にデータが配置されている場合は、円記号 (\
) を使用して子項目を示します。 次の形式を使用します。
drive:\location\child-location\...
たとえば、場所をレジストリ キーに HKLM\Software
変更するには、次のようなコマンドを Set-Location
入力します。
Set-Location HKLM:\SOFTWARE\
完全修飾名のいずれかの要素にスペースが含まれている場合は、名前を二重引用符 ("
) で囲む必要があります。 次の例は、スペースを含む完全修飾パスを示しています。
"C:\Program Files\Internet Explorer\iexplore.exe"
場所への相対参照を使用することもできます。 ドット (.
) は現在の場所を表します。 たとえば、レジストリ キーを使用していて、キーに HKLM:\Software\Microsoft
レジストリ サブキー HKLM:\Software\Microsoft\PowerShell
を一覧表示する場合は、次のコマンドを入力します。
Get-ChildItem .\PowerShell
また、二重ドット (..
) は、現在の場所のすぐ上にあるディレクトリまたはコンテナーを参照します。 二重ドット (..
) を使用してプロバイダー階層間を移動できます。
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\> cd ..\..\LanmanWorkstation\Parameters
PS HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters>
プロバイダー ホーム
プロバイダーにはホームの場所もあります。 この場所は、プロバイダーによってサポートされているすべての PSDrives
ユーザーによって共有されます。 プロバイダーの Home プロパティを表示することで取得できます。
Get-PSProvider | Format-Table Name, Home
Name Home
---- ----
Registry
Alias
Environment
FileSystem C:\Users\username
Function
Variable
Certificate
FileSystem プロバイダーは、ホームの既定値を持つ唯一のプロバイダーです。 と同じ値 $HOME
です。 詳細については、「about_Automatic_Variables」を参照してください。
プロバイダーのホーム ディレクトリは、そのプロパティを使用して、現在のセッションに対して設定できます。
(Get-PSProvider FileSystem).Home = "C:\"
この文字は ~
、プロバイダーのホーム ディレクトリを表すために使用できます。 プロバイダーにホームの場所が設定されていない場合は、エラーが表示されます。
Cert:\> Set-Location ~
Set-Location : Home location for this provider isn't set. To set the home
location, call "(get-psprovider 'Certificate').Home = 'path'".
At line:1 char:1
+ Set-Location ~
+ ~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Set-Location],
PSInvalidOperationException
...
動的パラメーターの検索
動的パラメーターは、プロバイダーによってコマンドレットに追加されるコマンドレット パラメーターです。 これらのパラメーターは、コマンドレットを追加したプロバイダーと共に使用する場合にのみ使用できます。
たとえば、ドライブは Cert:
CodeSigningCert パラメーターをコマンドレットにGet-Item
Get-ChildItem
追加します。 このパラメーターは、ドライブでCert:
使用するGet-ChildItem
場合にのみ使用Get-Item
できます。
プロバイダーがサポートする動的パラメーターの一覧については、プロバイダーのヘルプ ファイルを参照してください。 型:
Get-Help <provider-name>
次に例を示します。
Get-Help certificate
プロバイダーに関するラーニング
すべてのプロバイダー データがドライブに表示され、同じメソッドを使用してそれらを移動しますが、類似性はそこで停止します。 プロバイダーが公開するデータ ストアは、Active Directory の場所や Microsoft Exchange Server メールボックスと同じように変化させることができます。
個々の PowerShell プロバイダーの詳細については、次のように入力します。
Get-Help <ProviderName>
次に例を示します。
Get-Help registry
プロバイダーに関するヘルプ トピックの一覧については、次のように入力します。
Get-Help * -Category Provider
関連項目
PowerShell