Udostępnij za pośrednictwem


Export-ModuleMember

Określa składowe modułu, które są eksportowane.

Składnia

Export-ModuleMember
      [[-Function] <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [<CommonParameters>]

Opis

Polecenie cmdlet Export-ModuleMember określa elementy członkowskie modułu wyeksportowane z pliku modułu skryptu (psm1) lub z modułu dynamicznego utworzonego przy użyciu polecenia cmdlet New-Module. Elementy członkowskie modułu obejmują polecenia cmdlet, funkcje, zmienne i aliasy. To polecenie cmdlet może być używane tylko w pliku modułu skryptu lub module dynamicznym.

Jeśli moduł skryptu nie zawiera polecenia Export-ModuleMember, funkcje i aliasy w module skryptu są eksportowane, ale zmienne nie są. Gdy moduł skryptu zawiera polecenia Export-ModuleMember, eksportowane są tylko elementy członkowskie określone w poleceniach Export-ModuleMember. Można również użyć Export-ModuleMember do pomijania lub eksportowania elementów członkowskich importowanych przez moduł skryptu z innych modułów.

Polecenie Export-ModuleMember jest opcjonalne, ale jest to najlepsze rozwiązanie. Nawet jeśli polecenie potwierdza wartości domyślne, demonstruje zamiar autora modułu.

Przykłady

Przykład 1. Eksportowanie funkcji i aliasów w module skryptu

Export-ModuleMember -Function * -Alias *

To polecenie eksportuje wszystkie funkcje i aliasy zdefiniowane w module skryptu.

Przykład 2. Eksportowanie określonych aliasów i funkcji

Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt

To polecenie eksportuje trzy aliasy i trzy funkcje zdefiniowane w module skryptu.

Możesz użyć tego formatu polecenia, aby określić nazwy elementów członkowskich modułu.

Przykład 3. Eksportowanie żadnych elementów członkowskich

Export-ModuleMember

To polecenie określa, że żadne elementy członkowskie zdefiniowane w module skryptu nie są eksportowane.

To polecenie uniemożliwia eksportowanie elementów członkowskich modułu, ale nie ukrywa członków. Użytkownicy mogą odczytywać i kopiować członków modułu lub używać operatora wywołania (&) do wywoływania elementów członkowskich modułu, które nie są eksportowane.

Przykład 4. Eksportowanie określonej zmiennej

Export-ModuleMember -Variable increment

To polecenie eksportuje tylko zmienną $increment z modułu script. Żadne inne elementy członkowskie nie są eksportowane.

Jeśli chcesz wyeksportować zmienną, oprócz eksportowania funkcji w module, polecenie Export-ModuleMember musi zawierać nazwy wszystkich funkcji i nazwę zmiennej.

Przykład 5. Wiele poleceń eksportu

# 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

Te polecenia pokazują, jak wiele poleceń Export-ModuleMember jest interpretowanych w pliku modułu skryptu (psm1).

Te polecenia tworzą trzy funkcje i jeden alias, a następnie eksportują dwie funkcje i alias.

Bez polecenia Export-ModuleMember zostaną wyeksportowane wszystkie trzy funkcje i alias. Za pomocą poleceń Export-ModuleMember eksportowane są tylko New-Test i Start-Test oraz alias STT.

Przykład 6. Eksportowanie elementów członkowskich w module dynamicznym

New-Module -Script {function SayHello {"Hello!"}; Set-Alias Hi SayHello; Export-ModuleMember -Alias Hi -Function SayHello}

To polecenie pokazuje, jak używać Export-ModuleMember w module dynamicznym utworzonym przy użyciu polecenia cmdlet New-Module.

W tym przykładzie Export-ModuleMember służy do eksportowania zarówno aliasu Hi, jak i funkcji SayHello w module dynamicznym.

Przykład 7. Deklarowanie i eksportowanie funkcji w jednym poleceniu

# 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

Ten przykład obejmuje funkcję o nazwie Export, która deklaruje funkcję lub tworzy zmienną, a następnie zapisuje polecenie Export-ModuleMember dla funkcji lub zmiennej. Umożliwia to zadeklarowanie i wyeksportowanie funkcji lub zmiennej w jednym poleceniu.

Aby użyć funkcji Export, dołącz ją do modułu skryptu. Aby wyeksportować funkcję, wpisz przed słowem kluczowym funkcji .

Aby wyeksportować zmienną, użyj następującego formatu, aby zadeklarować zmienną i ustawić jej wartość:

Export variable <variable-name> <value>

Polecenia w przykładzie pokazują poprawny format. W tym przykładzie eksportowana jest tylko funkcja New-Test i zmienna $Interval.

Parametry

-Alias

Określa aliasy wyeksportowane z pliku modułu skryptu. Wprowadź nazwy aliasów. Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-Cmdlet

Określa polecenia cmdlet wyeksportowane z pliku modułu skryptu. Wprowadź nazwy poleceń cmdlet. Dozwolone są symbole wieloznaczne.

Nie można tworzyć poleceń cmdlet w pliku modułu skryptu, ale możesz zaimportować polecenia cmdlet z modułu binarnego do modułu skryptu i ponownie wyeksportować je z modułu skryptu.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-Function

Określa funkcje wyeksportowane z pliku modułu skryptu. Wprowadź nazwy funkcji. Dozwolone są symbole wieloznaczne. Możesz również potokować ciągi nazw funkcji do Export-ModuleMember.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-Variable

Określa zmienne wyeksportowane z pliku modułu skryptu. Wprowadź nazwy zmiennych bez znaku dolara. Dozwolone są symbole wieloznaczne.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

Dane wejściowe

String

Możesz potokować ciągi nazw funkcji do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

  • Aby wykluczyć członka z listy wyeksportowanych elementów członkowskich, dodaj Export-ModuleMember polecenie, które wyświetla listę wszystkich innych elementów członkowskich, ale pomija element członkowski, który chcesz wykluczyć.