次の方法で共有


about_Function_Provider

プロバイダー名

機能

ドライブ

Function:

機能

ShouldProcess

簡単な説明

PowerShell で定義されている関数へのアクセスを提供します。

詳しい説明

PowerShell Function プロバイダーを使用すると、PowerShell で関数とフィルターを取得、追加、変更、クリア、および削除できます。

関数とは、アクションを実行するコードのブロックに名前が付けられたものです。 関数名を入力すると、関数のコードが実行されます。 フィルターとは、アクションの条件を確立するコードのブロックに名前が付けられたものです。 Where-Object コマンドなど、条件の代わりにフィルターの名前を入力できます。

Function ドライブは、関数オブジェクトとフィルター オブジェクトのみを含むフラット名前空間です。 関数にもフィルターにも子項目はありません。

Function プロバイダーは、この記事で説明する次のコマンドレットをサポートしています。

このプロバイダーによって公開される型

各関数は、 System.Management.Automation.FunctionInfo クラスのインスタンスです。 各フィルターは、 System.Management.Automation.FilterInfo クラスのインスタンスです。

Function プロバイダーは、Function: ドライブ内のデータ ストアを公開します。 関数を操作するには、場所を Function: ドライブ (Set-Location Function:) に変更します。 または、別の PowerShell ドライブから作業することもできます。 別の場所から関数を参照するには、パスでドライブ名 (Function:) を使用します。

Set-Location Function:

ファイル システム ドライブに戻るには、ドライブ名を入力します。 たとえば、次のように入力します。

Set-Location C:

他の PowerShell ドライブから Function プロバイダーを操作することもできます。 別の場所から関数を参照するには、パスに Function: ドライブ名を使用します。

Note

PowerShell ではエイリアスを使用して、プロバイダー パスを使い慣れた方法で操作できます。 dirlsなどのコマンドが、Get-ChildItem のエイリアスになりました。cdは、Set-Location のエイリアスです。 pwd は、Get-Location のエイリアスです。

関数の取得

このコマンドは現在のセッションのすべての関数の一覧を取得します。 このコマンドは、任意の PowerShell ドライブから使用できます。

Get-ChildItem -Path Function:

関数プロバイダーにはコンテナーがないため、上記のコマンドは、 Get-ChildItemで使用すると同じ効果を持ちます。

Get-ChildItem -Path Function:

次に示すように、 Definition プロパティにアクセスすることで、関数の定義を取得できます。

(Get-Item -Path function:more).Definition

ドル記号 ($) で始まるプロバイダー パスを使用して、関数の定義を取得することもできます。

$function:more

名前にダッシュ (-) が含まれる関数の定義を取得するには、ドル記号の中かっこの後に値をラップします。

${function:Clear-Host}

選択した関数の取得

このコマンドは、Function: ドライブからman関数を取得します。 Get-Item コマンドレットを使用して関数を取得します。 パイプライン演算子 (|) は、結果を Format-Tableに送信します。 -Wrap パラメーターは、行に収まらないテキストを次の行に転送します。 -Autosize パラメーターは、テキストに合わせてテーブル列のサイズを変更します。

Get-Item -Path man | Format-Table -Wrap -Autosize

関数プロバイダー パスの操作

これらのコマンドはどちらも、 c:という名前の関数を取得します。 最初のコマンドはすべてのドライブで使用できます。 2 番目のコマンドは、 Function: ドライブで使用されます。 ドライブの構文であり、名前がコロンで終わるため、ドライブ名でパスを修飾する必要があります。 Function: ドライブ内では、どちらの形式でも使用できます。 2 番目のコマンドでは、ドット (.) は現在の場所を表します。

PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:

関数の作成

このコマンドでは、 New-Item コマンドレットを使用して、 Win32:という名前の関数を作成します。 括弧で囲まれた式は関数名により表されるスクリプト ブロックです。

New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}

PowerShell コマンド ラインで関数を入力して作成することもできます。 たとえば、tpe Function:Win32: {Set-Location C:\Windows\System32}Function: ドライブにいる場合は、ドライブ名を省略できます。

関数の削除

このコマンドは、現在のセッションから more 関数を削除します。

Remove-Item Function:more

関数の変更

このコマンドでは、 Set-Item コマンドレットを使用して prompt 関数を変更し、パスの前の時刻を表示します。

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

関数の名前を変更する

このコマンドでは、 Rename-Item コマンドレットを使用して、 help 関数の名前を ghに変更します。

Rename-Item -Path Function:help -NewName gh

関数のコピー

このコマンドは、 prompt 関数を oldPromptにコピーし、プロンプト関数に関連付けられているスクリプト ブロックの新しい名前を効果的に作成します。 これを利用し、変更予定のプロンプト関数のオリジナルを保存できます。 新しい関数の Options プロパティの値は None です。 Options プロパティの値を変更するには、Set-Itemを使用します。

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

動的パラメーター

動的パラメーターは、PowerShell プロバイダーによって追加されるコマンドレット パラメーターであり、プロバイダー対応ドライブでコマンドレットが使用されている場合にのみ使用できます。

Options <[System.Management.Automation.ScopedItemOptions]>

関数の Options プロパティの値を決定します。

  • None: オプションはありません。 None は既定値です。
  • Constant: 関数を削除できず、そのプロパティを変更できません。 Constant は、関数を作成する場合にのみ使用できます。 既存の関数のオプションを Constantに変更することはできません。
  • Private: 関数は現在のスコープでのみ表示されます
  • (子スコープ内にありません)。
  • ReadOnly: -Force パラメーターを使用する場合を除き、関数のプロパティを変更することはできません。 Remove-Itemを使用して関数を削除できます。
  • AllScope: 関数は、作成された新しいスコープにコピーされます。

サポートされているコマンドレット

パイプラインの使用

プロバイダー コマンドレットは、パイプライン入力を受け入れます。 パイプラインを使用すると、あるコマンドレットから別のプロバイダー コマンドレットにプロバイダー データを送信することで、タスクを簡略化できます。 プロバイダー コマンドレットでパイプラインを使用する方法の詳細については、この記事全体で提供されているコマンドレットリファレンスを参照してください。

ヘルプの表示

Windows PowerShell 3.0 より、プロバイダー コマンドレットのためにカスタマイズされたヘルプ トピックを取得できます。これはファイル システム ドライブでのプロバイダー コマンドレットの動作を説明します。

ファイル システム ドライブ用にカスタマイズされたヘルプ トピックを取得するには、ファイル システム ドライブで Get-Help コマンドを実行するか、Get-Help-Path パラメーターを使用してファイル システム ドライブを指定します。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function:

関連項目