Freigeben über


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 mit dem Cmdlet New-Module erstellt wurde. Modulmember 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 in den Befehlen Export-ModuleMember angegebenen Member exportiert. 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 er 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 Membern

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 Befehl Export-ModuleMember 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 Befehlen Export-ModuleMember 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 enthält eine Funktion namens 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 Export-Funktion zu verwenden, fügen Sie sie in Ihr Skriptmodul ein. Um eine Funktion zu exportieren, geben Sie Export vor dem Schlüsselwort (keyword) Function 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 New-Test-Funktion 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

String

Sie können Funktionsnamenzeichenfolgen an dieses Cmdlet übergeben.

Ausgaben

None

Dieses Cmdlet generiert keine Ausgabe.

Hinweise

  • Um ein Element aus der Liste der exportierten Member 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.