Export-ModuleMember
Gibt die Modulelemente an, die exportiert werden.
Syntax
Export-ModuleMember
[[-Function] <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Export-ModuleMember gibt die Modulmember an, die aus einer Skriptmoduldatei (PSM1) oder aus einem dynamischen Modul exportiert werden, das mithilfe des Cmdlets New-Module erstellt wurde. Modulmitglieder umfassen Cmdlets, Funktionen, Variablen und Aliase. Dieses Cmdlet kann nur in einer Skriptmoduldatei oder einem dynamischen Modul verwendet werden.
Wenn ein Skriptmodul keinen Export-ModuleMember-Befehl enthält, werden die Funktionen und Aliase im Skriptmodul exportiert, die Variablen jedoch nicht. Wenn ein Skriptmodul Export-ModuleMember-Befehle enthält, werden nur die elemente exportiert, die in den Befehlen Export-ModuleMember angegeben sind. Sie können auch Export-ModuleMember verwenden, um Member zu unterdrücken oder zu exportieren, die das Skriptmodul aus anderen Modulen importiert.
Ein Export-ModuleMember-Befehl ist optional, aber es ist eine bewährte Methode. Auch wenn der Befehl die Standardwerte bestätigt, wird die Absicht des Modulautors veranschaulicht.
Beispiele
Beispiel 1: Exportieren von Funktionen und Aliasen in einem Skriptmodul
Export-ModuleMember -Function * -Alias *
Dieser Befehl exportiert alle Funktionen und Aliase, die im Skriptmodul definiert sind.
Beispiel 2: Exportieren bestimmter Aliase und Funktionen
Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt
Dieser Befehl exportiert die drei Aliase und drei Funktionen, die im Skriptmodul definiert sind.
Verwenden Sie dieses Befehlsformat, um Namen der Modulelemente anzugeben.
Beispiel 3: Exportieren von keine Member
Export-ModuleMember
Dieser Befehl gibt an, dass keine im Skriptmodul definierten Elemente exportiert werden.
Dieser Befehl verhindert, dass Modulelemente exportiert werden, blendet die Elemente aber nicht aus. Die Benutzer können Modulelemente lesen und kopieren oder den Aufrufoperator (&) verwenden, um Modulelemente aufzurufen, die nicht exportiert werden.
Beispiel 4: Exportieren einer bestimmten Variablen
Export-ModuleMember -Variable increment
Dieser Befehl exportiert nur die $increment-Variable aus dem Skriptmodul. Keine anderen Elemente werden exportiert.
Wenn Sie eine Variable exportieren möchten, muss der Export-ModuleMember-Befehl zusätzlich zum Exportieren der Funktionen in einem Modul die Namen aller Funktionen und den Namen der Variablen enthalten.
Beispiel 5: Mehrere Exportbefehle
# 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
Diese Befehle zeigen, wie mehrere Export-ModuleMember-Befehle in einer Skriptmoduldatei (PSM1) interpretiert werden.
Diese Befehle erstellen drei Funktionen und einen Alias und exportieren sie dann.
Ohne die Export-ModuleMember-Befehle würden alle drei Funktionen und der Alias exportiert. Mit den Export-ModuleMember-Befehlen werden nur die Funktionen New-Test und Start-Test sowie der STT-Alias exportiert.
Beispiel 6: Exportieren von Elementen in einem dynamischen Modul
New-Module -Script {function SayHello {"Hello!"}; Set-Alias Hi SayHello; Export-ModuleMember -Alias Hi -Function SayHello}
Dieser Befehl zeigt, wie Sie Export-ModuleMember in einem dynamischen Modul verwenden, das mit dem Cmdlet New-Module erstellt wird.
In diesem Beispiel wird Export-ModuleMember verwendet, um sowohl den Hi-Alias als auch die SayHello-Funktion im dynamischen Modul zu exportieren.
Beispiel 7: Deklarieren und Exportieren einer Funktion in einem einzelnen Befehl
# 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
Dieses Beispiel umfasst eine Funktion mit dem Namen Export , die eine Funktion deklariert oder eine Variable erstellt und dann einen Export-ModuleMember
Befehl für die Funktion oder Variable schreibt.
Auf diese Weise können Sie eine Funktion oder Variable in einem einzigen Befehl deklarieren und exportieren.
Um die Exportfunktion zu verwenden, fügen Sie sie in Ihr Skriptmodul ein.
Um eine Funktion zu exportieren, geben Sie Export
vor der funktion Schlüsselwort (keyword) ein.
Um eine Variable zu exportieren, verwenden Sie folgendes Format, um die Variable zu deklarieren und ihren Wert festzulegen:
Export variable <variable-name> <value>
Die Befehle im Beispiel zeigen das richtige Format. In diesem Beispiel werden nur die Funktion New-Test und die variable $Interval exportiert.
Parameter
-Alias
Gibt die Aliase an, die aus der Skriptmoduldatei exportiert werden. Geben Sie die Aliasnamen ein. Platzhalterzeichen sind zulässig.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Cmdlet
Gibt die Cmdlets an, die aus der Skriptmoduldatei exportiert werden. Geben Sie die Cmdlet-Namen ein. Platzhalterzeichen sind zulässig.
Sie können keine Cmdlets in einer Skriptmoduldatei erstellen, aber Sie können Cmdlets aus einem binären Modul in ein Skriptmodul importieren und dann erneut aus dem Skriptmodul exportieren.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Function
Gibt die Funktionen an, die aus der Skriptmoduldatei exportiert werden. Geben Sie die Funktionsnamen ein. Platzhalterzeichen sind zulässig. Sie können auch Funktionsnamenzeichenfolgen an Export-ModuleMember übergeben.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Variable
Gibt die Variablen an, die aus der Skriptmoduldatei exportiert werden. Geben Sie die Variablennamen ohne Dollarzeichen ein. Platzhalterzeichen sind zulässig.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Eingaben
Sie können Funktionsnamenzeichenfolgen an dieses Cmdlet übergeben.
Ausgaben
None
Dieses Cmdlet generiert keine Ausgabe.
Hinweise
- Um ein Element aus der Liste der exportierten Elemente auszuschließen, fügen Sie einen Export-ModuleMember-Befehl hinzu, der alle anderen Member auflistet, aber das Element auslässt, das Sie ausschließen möchten.