Export-ModuleMember
エクスポートするモジュール メンバーを指定します。
構文
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 変数のみがエクスポートされます。