Windows PowerShell では、コマンドレットの実行だけでなく、関数の実行も可能です。Windows PowerShell には組み込み関数が付属していますが、他のユーザーから取得した関数を追加することも、独自の関数を作成することもできます。

関数について

Windows PowerShell では、関数はコマンドの一種になります。関数を実行するには、コマンドレットを実行する場合と同様に関数の名前を入力します。コマンドレットと同様に、関数にはパラメーターを指定できます。関数は .NET オブジェクトを入力として受け取り、.NET オブジェクトを出力として返すことができます。この点もコマンドレットと同様です。事実上、コマンドレットで実行できることはすべて、関数でも実行できます。

関数の最大の長所は、きわめて簡単に記述できることです。C# 言語で記述されるコマンドレットとは異なり、関数は Windows PowerShell のコマンドと式をグループ化して名前を付けたものにすぎません。Windows PowerShell でコマンドを入力できれば、関数も作成できます。

関数の検索

関数はコマンドです。したがって、関数の検索には Get-Command コマンドレットを使用します。

たとえば、セッション内のすべての関数を検索するには、次のように入力します。

get-command -CommandType function

Windows PowerShell には、セッション内のすべての関数を含む Function: ドライブも用意されています。Function: ドライブ内を移動するには、ファイル システム ドライブ内を移動する場合と同じ方法を使用します。

関数ドライブに移動するには、次のように入力します。

cd function:

関数ドライブ内の関数を表示するには、次のように入力します。

dir function:

関数の実行

関数を実行するには、関数名を入力します。たとえば、Clear-Host 関数を実行するには、次のように入力します。

clear-host

Windows PowerShell コンソールで Clear-Host 関数を実行すると、コンソール ウィンドウ内のテキストがすべて削除されます。他のホスト プログラム内では異なる動作をしたり、効果がなかったりすることもあります。

関数のパラメーターを使用するには、ハイフン (-) の後にパラメーター名を入力し、次に値を入力します。これは、コマンドレットのパラメーターを入力する方法と同様です。

たとえば、一度に 1 ページずつヘルプ トピックを表示する Help 関数のパラメーターは、Get-Help コマンドレットと同じです。Help 関数を使用して、Get-Service コマンドレットのヘルプ トピックでサンプルだけを取得するには、次のように入力します。

help -name get-service -examples

関数のヘルプの表示

関数によっては、ヘルプ トピックが用意されているものもあります。関数のヘルプ トピックを見つけるには、Get-Help コマンドレットを使用します。これは、コマンドレットのヘルプを表示する場合に使用するのと同じコマンドレットです。

たとえば、Disable-PSRemoting 関数のヘルプを表示するには、次のように入力します。

get-help Disable-PSRemoting

関数のヘルプを表示する場合、Get-Help コマンドレットのすべてのパラメーターを使用できます。たとえば、Disable-PSRemoting 関数のヘルプ トピック内のサンプルのみを取得するには、次のように入力します。

get-help Disable-PSRemoting -example

関数の記述

関数とは、コマンドまたは式をグループ化して名前を付けたものです。単純な関数を記述するには、次の形式を使用します。

function <name> { <commands> }

function、関数の名前、および中かっこ ({ }) で囲んだコマンドを入力します。

たとえば、特定のコマンド (たとえば、get-help get-member -examples) を繰り返し入力する場合、そのコマンドを実行する関数を記述することで、時間を節約できます。このコマンドは、次の GMEX 関数で実行します。

function GMEX {get-help get-member -examples}

Windows PowerShell プロンプトで関数を入力し (または、このトピックからコピー アンド ペーストして)、Enter キーを押すと、セッションで関数を使用できます。関数を実行するには、「GMEX」と入力します。

これは単純な関数ですが、数行追加することで、パラメーターの追加、オプション パラメーターまたは必須パラメーターの作成、ユーザー メッセージの追加、関数のヘルプ トピックの追加を実行できます。Windows PowerShell に習熟すれば、コマンドレットのすべての機能を含む高度な関数を記述できるようになります。

関数の記述の詳細については、「about_Functions」、「about_Comment_Based_Help」および「about_Functions_Advanced」を参照してください。

関数の保存

Windows PowerShell を開くと、Windows PowerShell セッションに入ります。セッションは、Windows PowerShell ウィンドウを閉じるまで (または「Exit」と入力してセッションを終了するまで) 継続します。セッションで作成した項目は、ディスク上のファイルまたはレジストリ内に保存しておかない限り、セッション終了時に削除されます。

記述した関数を今後 Windows PowerShell セッションで使用できるように保存しておくには、Windows PowerShell プロファイルを作成し、プロファイルに関数を保存します。

詳細については、「about_Profiles」を参照してください。

関連項目




目次