次の方法で共有


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 コマンドを追加します。