エクスポートするモジュール メンバーを指定します。

構文

Export-ModuleMember [[-関数] <string[]>] [-エイリアス <string[]>] [-Cmdlet <string[]>] [-変数 <string[]>] [<CommonParameters>]

説明

Export-ModuleMember コマンドレットは、スクリプト モジュール ファイル (.psm1) から、または New-Module コマンドレットを使用することによって作成された動的モジュールからエクスポートするモジュール メンバー (コマンドレット、関数、変数、エイリアスなど) を指定します。このコマンドレットは、スクリプト モジュール ファイルまたは動的モジュールでのみ使用できます。

スクリプト モジュールに Export-ModuleMember コマンドが含まれていない場合、スクリプト モジュールの関数はエクスポートされますが、変数およびエイリアスはエクスポートされません。スクリプト モジュールに Export-ModuleMember コマンドが含まれている場合、Export-ModuleMember コマンドで指定されたメンバーのみがエクスポートされます。

スクリプト モジュールに複数の Export-ModuleMember コマンドが含まれている場合は、Export-ModuleMember コマンドに列挙されているメンバーだけがエクスポートされます。

Export-ModuleMember を使用して、スクリプト モジュールが他のモジュールからインポートするメンバーをエクスポートすることもできます。

パラメーター

-エイリアス <string[]>

スクリプト モジュール ファイルからエクスポートするエイリアスを指定します。エイリアス名を入力します。ワイルドカードを使用できます。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

-Cmdlet <string[]>

スクリプト モジュール ファイルからエクスポートするコマンドレットを指定します。コマンドレット名を入力します。ワイルドカードを使用できます。

スクリプト モジュール ファイルでコマンドレットを作成することはできませんが、コマンドレットをバイナリ モジュールからスクリプト モジュールにインポートし、スクリプト モジュールから再エクスポートすることができます。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

-関数 <string[]>

スクリプト モジュール ファイルからエクスポートする関数を指定します。関数名を入力します。ワイルドカードを使用できます。パイプを使用して関数名文字列を Export-ModuleMember に渡すこともできます。

必須

false

位置

1

既定値

なし

パイプライン入力を許可する

true (ByValue, ByPropertyName)

ワイルドカード文字を許可する

true

-変数 <string[]>

スクリプト モジュール ファイルからエクスポートする変数を指定します。変数名を入力します (ドル記号なし)。ワイルドカードを使用できます。

必須

false

位置

named

既定値

なし

パイプライン入力を許可する

true (ByPropertyName)

ワイルドカード文字を許可する

true

<CommonParameters>

このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.

入力と出力

入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。

入力

System.String

パイプを使用して関数名文字列を Export-ModuleMember に渡すことができます。

出力

None

このコマンドレットは出力を生成しません。

エクスポートされるメンバーの一覧からメンバーを除外するには、除外するメンバー以外のすべての要素を指定した Export-ModuleMember コマンドを追加します。

例 1

C:\PS>Export-ModuleMember -function * -alias *

説明
-----------
このコマンドは、スクリプト モジュールで定義されたエイリアスを、スクリプト モジュールで定義された関数と共にエクスポートします

既定でエクスポートされないエイリアスをエクスポートするには、関数も明示的に指定する必要があります。そうしない場合、エイリアスのみがエクスポートされます。






例 2

C:\PS>Export-ModuleMember -function Get-Test, New-Test, Start-Test -alias gtt, ntt, stt

説明
-----------
このコマンドは、スクリプト モジュールで定義された 3 つのエイリアスおよび 3 つの関数をエクスポートします。

このコマンド形式を使用してモジュール メンバー名を指定できます。






例 3

C:\PS>Export-ModuleMember

説明
-----------
このコマンドは、スクリプト モジュールで定義されたメンバーをエクスポートしないことを指定します。

このコマンドを実行すると、モジュール メンバーのエクスポートが防止されますが、これらメンバーが見えなくなるわけではありません。ユーザーは、モジュール メンバーを読み取ってコピーすることも、呼び出し演算子 (&) を使用して、エクスポートされないモジュール メンバーを呼び出すこともできます。






例 4

C:\PS>Export-ModuleMember -variable increment

説明
-----------
このコマンドは、スクリプト モジュールから $increment 変数のみをエクスポートします。他のメンバーはエクスポートされません。

モジュール内の関数をエクスポートするだけでなく、変数のエクスポートも実行するには、エクスポートするすべての関数の名前と変数の名前を Export-ModuleMember コマンドに含める必要があります。






例 5

C:\PS># From TestModule.psm1

function new-test 
    { <function code> }
export-modulemember -function new-test

function validate-test 
    { <function code> }

function start-test 
    { <function code> }
set-alias stt start-test
export-modulemember -function *-test -alias stt

説明
-----------
これらのコマンドは、複数の Export-ModuleMember コマンドをスクリプト モジュール (.psm1) ファイルで解釈する方法を示しています。

これらのコマンドは、3 つの関数および 1 つのエイリアスを作成した後、2 つの関数およびエイリアスをエクスポートします。

Export-ModuleMember コマンドを使用しない場合、3 つすべての関数がエクスポートされますが、エイリアスはエクスポートされません。Export-ModuleMember コマンドを使用した場合、Get-Test 関数と Start-Test 関数、および STT エイリアスのみがエクスポートされます。






例 6

C:\PS>new-module -script {function SayHello {"Hello!"}; set-alias Hi SayHello; Export-ModuleMember -alias Hi -function SayHello}

説明
-----------
このコマンドは、Export-ModuleMember を、New-Module コマンドレットを使用して作成された動的モジュールで使用する方法を示しています。

この例では、Export-ModuleMember を使用して動的モジュールの "Hi" エイリアスおよび "SayHello" 関数を両方ともエクスポートします。






例 7

C:\PS>function export
{
    param (
        [parameter(mandatory=$true)] [validateset("function","variable")] $type,
        [parameter(mandatory=$true)] $name,
        [parameter(mandatory=$true)] $value
    )
    if ($type -eq "function")
    {
        Set-item "function:script:$name" $value
        Export-ModuleMember $name
    }
    else
    {
        Set-Variable -scope Script $name $value
        Export-ModuleMember -variable $name
    }
} 

export function New-Test 
{
  ...
}


function helper
{
  ...
}

export variable interval 0
$interval = 2

説明
-----------
この例には、Export という関数が含まれています。この関数は、関数の宣言または変数の作成を行った後で、その関数または変数用の Export-ModuleMember コマンドを記述します。これにより、関数または変数の宣言とエクスポートを 1 つのコマンドで実行することが可能になります。

Export 関数を使用するには、スクリプト モジュールにこの関数を含めます。関数をエクスポートするには、Function キーワードの前に「Export」と入力します。

変数をエクスポートするには、次の形式で変数を宣言し、変数の値を設定します。

    export variable <variable-name> <value>

この例のコマンドは正しい形式を示しています。この例では、New-Test 関数と $Interval 変数のみがエクスポートされます。






関連項目




目次