Export-ModuleMember

Anger de modulmedlemmar som exporteras.

Syntax

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

Description

Cmdleten Export-ModuleMember anger de modulmedlemmar som exporteras från en skriptmodulfil (.psm1) eller från en dynamisk modul som skapats med hjälp av cmdleten New-Module. Modulmedlemmar inkluderar cmdletar, funktioner, variabler och alias. Den här cmdleten kan endast användas i en skriptmodulfil eller en dynamisk modul.

Om en skriptmodul inte innehåller ett Export-ModuleMember-kommando exporteras funktionerna och aliasen i skriptmodulen, men inte variablerna. När en skriptmodul innehåller Export-ModuleMember-kommandon exporteras endast de medlemmar som anges i Export-ModuleMember-kommandona . Du kan också använda Export-ModuleMember för att ignorera eller exportera medlemmar som skriptmodulen importerar från andra moduler.

Ett Export-ModuleMember-kommando är valfritt, men det är bästa praxis. Även om kommandot bekräftar standardvärdena visar det modulförfattarens avsikt.

Exempel

Exempel 1: Exportera funktioner och alias i en skriptmodul

Export-ModuleMember -Function * -Alias *

Det här kommandot exporterar alla funktioner och alias som definierats i skriptmodulen.

Exempel 2: Exportera specifika alias och funktioner

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

Det här kommandot exporterar tre alias och tre funktioner som definierats i skriptmodulen.

Du kan använda det här kommandoformatet för att ange namnen på modulmedlemmar.

Exempel 3: Exportera inga medlemmar

Export-ModuleMember

Det här kommandot anger att inga medlemmar som definierats i skriptmodulen exporteras.

Det här kommandot förhindrar att modulmedlemmarna exporteras, men de döljer inte medlemmarna. Användare kan läsa och kopiera modulmedlemmar eller använda anropsoperatorn (&) för att anropa modulmedlemmar som inte exporteras.

Exempel 4: Exportera en specifik variabel

Export-ModuleMember -Variable increment

Det här kommandot exporterar endast variabeln $increment från skriptmodulen. Inga andra medlemmar exporteras.

Om du vill exportera en variabel, förutom att exportera funktionerna i en modul, måste kommandot Export-ModuleMember innehålla namnen på alla funktioner och namnet på variabeln.

Exempel 5: Flera exportkommandon

# 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

Dessa kommandon visar hur flera Export-ModuleMember-kommandon tolkas i en skriptmodulfil (.psm1).

Dessa kommandon skapar tre funktioner och ett alias och exporterar sedan två av funktionerna och aliaset.

Utan Export-ModuleMember-kommandona exporteras alla tre funktionerna och aliaset. Med kommandona Export-ModuleMember exporteras endast funktionerna New-Test och Start-Test och STT-aliaset.

Exempel 6: Exportera medlemmar i en dynamisk modul

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

Det här kommandot visar hur du använder Export-ModuleMember i en dynamisk modul som skapas med hjälp av cmdleten New-Module .

I det här exemplet används Export-ModuleMember för att exportera både hi-aliaset och SayHello-funktionen i den dynamiska modulen.

Exempel 7: Deklarera och exportera en funktion i ett enda kommando

# 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

Det här exemplet innehåller en funktion med namnet Export som deklarerar en funktion eller skapar en variabel och sedan skriver ett Export-ModuleMember kommando för funktionen eller variabeln. På så sätt kan du deklarera och exportera en funktion eller variabel i ett enda kommando.

Om du vill använda funktionen Exportera tar du med den i skriptmodulen. Om du vill exportera en funktion skriver du Export före nyckelordet Funktion .

Om du vill exportera en variabel använder du följande format för att deklarera variabeln och ange dess värde:

Export variable <variable-name> <value>

Kommandona i exemplet visar rätt format. I det här exemplet exporteras endast funktionen New-Test och variabeln $Interval.

Parametrar

-Alias

Anger de alias som exporteras från skriptmodulfilen. Ange aliasnamnen. Jokertecken tillåts.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Cmdlet

Anger de cmdletar som exporteras från skriptmodulfilen. Ange cmdlet-namnen. Jokertecken tillåts.

Du kan inte skapa cmdletar i en skriptmodulfil, men du kan importera cmdletar från en binär modul till en skriptmodul och exportera dem igen från skriptmodulen.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Function

Anger de funktioner som exporteras från skriptmodulfilen. Ange funktionsnamnen. Jokertecken tillåts. Du kan också skicka funktionsnamnsträngar till Export-ModuleMember.

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Variable

Anger de variabler som exporteras från skriptmodulfilen. Ange variabelnamnen utan ett dollartecken. Jokertecken tillåts.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Indata

String

Du kan skicka funktionsnamnsträngar till den här cmdleten.

Utdata

None

Den här cmdleten genererar inga utdata.

Kommentarer

  • Om du vill undanta en medlem från listan över exporterade medlemmar lägger du till ett Export-ModuleMember-kommando som visar alla andra medlemmar men utelämnar den medlem som du vill undanta.