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 関数の両方をエクスポートします。
例 7: 1 つのコマンドで関数を宣言してエクスポートする
# From TestModule.psm1
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 {Write-Output 'I am New-Test function'}
function helper {Write-Output 'I am helper function'}
Export variable Interval 0
$Interval = 2
この例には、関数を宣言するか変数を作成し、関数または変数のコマンドをExport-ModuleMember
書き込む Export という名前の関数が含まれています。
これにより、1 つのコマンドで関数または変数を宣言し、エクスポートできます。
Export 関数を使用するには、スクリプト モジュールに含めます。
関数をエクスポートするには、Function キーワード (keyword)の前に と入力Export
します。
変数をエクスポートするには、次の形式を使用して変数を宣言し、その値を設定します。
Export variable <variable-name> <value>
例では、コマンドは正しい形式を示しています。 この例では、 New-Test 関数と $Interval 変数のみがエクスポートされます。
パラメーター
-Alias
スクリプト モジュール ファイルからエクスポートされるエイリアスを指定します。 エイリアス名を入力します。 ワイルドカード文字を使用できます。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Cmdlet
スクリプト モジュール ファイルからエクスポートされるコマンドレットを指定します。 コマンドレット名を入力します。 ワイルドカード文字を使用できます。
コマンドレットをスクリプト モジュール ファイルに作成することはできませんが、バイナリ モジュールからスクリプト モジュールにコマンドレットをインポートし、その後スクリプト モジュールからコマンドレットを再度エクスポートできます。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Function
スクリプト モジュール ファイルからエクスポートされる関数を指定します。 関数名を入力します。 ワイルドカード文字を使用できます。 関数名の文字列を Export-ModuleMember にパイプすることもできます。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Variable
スクリプト モジュール ファイルからエクスポートされる変数を指定します。 変数名をドル記号なしで入力します。 ワイルドカード文字を使用できます。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
入力
関数名の文字列をこのコマンドレットにパイプできます。
出力
None
このコマンドレットは出力を生成しません。
メモ
- エクスポートされたメンバーの一覧からメンバーを除外するには、他のすべてのメンバーを一覧表示する Export-ModuleMember コマンドを追加しますが、除外するメンバーは省略します。