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
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
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ć.