次の方法で共有


Export-ModuleMember

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

構文

Export-ModuleMember
      [[-Function] <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [<CommonParameters>]

説明

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

スクリプト モジュールに Export-ModuleMember コマンドが含まれていない場合、スクリプト モジュール内の関数とエイリアスはエクスポートされますが、変数はエクスポートされません。 スクリプト モジュールに Export-ModuleMember コマンドが含まれている場合、 Export-ModuleMember コマンドで指定されたメンバーのみがエクスポートされます。 Export-ModuleMemberを使用して、スクリプト モジュールが他のモジュールからインポートするメンバーを抑制またはエクスポートすることもできます。

Export-ModuleMember コマンドは省略可能ですが、ベスト プラクティスです。 コマンドが既定値を確認する場合でも、モジュールの作成者の意図は示されます。

例 1: スクリプト モジュールで関数とエイリアスをエクスポートする

Export-ModuleMember -Function * -Alias *

このコマンドは、スクリプト モジュールで定義されているすべての関数とエイリアスをエクスポートします。

例 2: 特定のエイリアスと関数をエクスポートする

Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt

このコマンドは、スクリプト モジュールで定義されている 3 つのエイリアスと 3 つの関数をエクスポートします。

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

例 3: メンバーをエクスポートしない

Export-ModuleMember

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

このコマンドでは、モジュール メンバーをエクスポートできませんが、メンバーは非表示になりません。 ユーザーは、モジュール メンバーの読み取りとコピー、または呼び出し演算子 (&) を使用して、エクスポートされていないモジュール メンバーを呼び出すことができます。

例 4: 特定の変数をエクスポートする

Export-ModuleMember -Variable increment

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

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

例 5: 複数のエクスポート コマンド

# From TestModule.psm1
function New-Test
{
    Write-Output 'I am New-Test function'
}
Export-ModuleMember -Function New-Test

function Validate-Test
{
    Write-Output 'I am Validate-Test function'
}
function Start-Test
{
    Write-Output 'I am Start-Test function'
}
Set-Alias stt Start-Test
Export-ModuleMember -Function Start-Test -Alias stt

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

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

Export-ModuleMember コマンドがないと、3 つの関数とエイリアスがすべてエクスポートされます。 Export-ModuleMember コマンドを使用すると、New-Test関数とStart-Test関数とSTTエイリアスのみがエクスポートされます。

例 6: 動的モジュールのメンバーをエクスポートする

New-Module -Script {function SayHello {"Hello!"}; Set-Alias Hi SayHello; Export-ModuleMember -Alias Hi -Function SayHello}

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

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

パラメーター

-Alias

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Cmdlet

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

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Function

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

型:String[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Variable

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

入力

String

関数名の文字列をこのコマンドレットにパイプできます。

出力

None

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

メモ

  • エクスポートされたメンバーの一覧からメンバーを除外するには、他のすべてのメンバーを一覧表示するが、除外するメンバーを省略する Export-ModuleMember コマンドを追加します。