Export-PSSession
Exporterar kommandon från en annan session och sparar dem i en PowerShell-modul.
Syntax
Export-PSSession
[-Session] <PSSession>
[-OutputModule] <string>
[[-CommandName] <string[]>]
[[-FormatTypeName] <string[]>]
[-Force]
[-Encoding <string>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-Certificate <X509Certificate2>]
[<CommonParameters>]
Description
Cmdleten Export-PSSession
hämtar cmdletar, funktioner, alias och andra kommandotyper från en annan PowerShell-session (PSSession) på en lokal dator eller fjärrdator och sparar dem i en PowerShell-modul. Om du vill lägga till kommandon från modulen i den aktuella sessionen använder du cmdleten Import-Module
.
Till skillnad från Import-PSSession
, som importerar kommandon från en annan PSSession till den aktuella sessionen, Export-PSSession
sparar kommandona i en modul. Kommandona importeras inte till den aktuella sessionen.
Om du vill exportera kommandon använder du cmdleten New-PSSession
för att skapa en PSSession som har de kommandon som du vill exportera. Använd sedan cmdleten Export-PSSession
för att exportera kommandona.
För att förhindra konflikter med kommandonamn är standardvärdet för Export-PSSession
att exportera alla kommandon, förutom kommandon som finns i den aktuella sessionen. Du kan använda parametern CommandName för att ange vilka kommandon som ska exporteras.
Cmdleten Export-PSSession
använder den implicita fjärrkommunikationsfunktionen i PowerShell. När du importerar kommandon till den aktuella sessionen körs de implicit i den ursprungliga sessionen eller i en liknande session på den ursprungliga datorn.
Exempel
Exempel 1: Exportera kommandon från en PSSession
I det här exemplet skapas en ny PSSession från den lokala datorn till Server01-datorn. Alla kommandon, förutom de som finns i den aktuella sessionen, exporteras till modulen Med namnet Server01 på den lokala datorn. Exporten innehåller formateringsdata för kommandona.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Kommandot New-PSSession
skapar en PSSession på Server01-datorn. PSSession lagras i variabeln $S
. Kommandot Export-PSSession
exporterar $S
variabelns kommandon och formateringsdata till Server01-modulen.
Exempel 2: Exportera kommandona Hämta och Ange
I det här exemplet exporteras alla kommandon och Get
Set
från en server.
$S = New-PSSession -ConnectionUri http://exchange.microsoft.com/mailbox -Credential exchangeadmin01@hotmail.com -Authentication Negotiate
Export-PSSession -Session $R -Module exch* -CommandName Get-*, Set-* -FormatTypeName * -OutputModule $pshome\Modules\Exchange -Encoding ASCII
Dessa kommandon exporterar Get
kommandona och Set
från en Microsoft Exchange Server snapin-modul på en fjärrdator till en Exchange-modul i $pshome
katalogen \Modules på den lokala datorn.
Om du placerar modulen $pshome
i katalogen \Modules blir den tillgänglig för alla datoranvändare.
Exempel 3: Exportera kommandon från en fjärrdator
Det här exemplet exporterar cmdletar från en PSSession på en fjärrdator och sparar dem i en modul på den lokala datorn. Cmdletarna från modulen läggs till i den aktuella sessionen så att de kan användas.
$S = New-PSSession -ComputerName Server01 -Credential Server01\User01
Export-PSSession -Session $S -OutputModule TestCmdlets -Type Cmdlet -CommandName *test* -FormatTypeName *
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
Kommandot New-PSSession
skapar en PSSession på Server01-datorn och sparar den i variabeln $S
. Kommandot Export-PSSession
exporterar de cmdletar vars namn börjar med Test från PSSession in $S
till testcmdlets-modulen på den lokala datorn.
Cmdleten Remove-PSSession
tar bort PSSession från $S
den aktuella sessionen. Det här kommandot visar att PSSession inte behöver vara aktiv för att använda de kommandon som importerades från sessionen. Cmdleten Import-Module
lägger till cmdletarna i modulen TestCmdlets i den aktuella sessionen. Kommandot kan köras i vilken session som helst när som helst.
Cmdleten Get-Help
får hjälp för cmdletar vars namn börjar med Test. När kommandona i en modul har lagts till i den aktuella sessionen kan du använda Get-Help
cmdletarna och Get-Command
för att lära dig mer om de importerade kommandona. Cmdleten Test-Files
exporterades från Server01-datorn och lades till i sessionen. Cmdleten Test-Files
körs i en fjärrsession på den dator som kommandot importerades från. PowerShell skapar en session från information som lagras i TestCmdlets-modulen.
Exempel 4: Export- och clobber-kommandon i den aktuella sessionen
I det här exemplet exporteras kommandon som lagras i en variabel till den aktuella sessionen.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
Det här Export-PSSession
kommandot exporterar alla kommandon och all formatering av data från PSSession i variabeln $S
till den aktuella sessionen. Parametern AllowClobber innehåller kommandon med samma namn som kommandon i den aktuella sessionen.
Exempel 5: Exportera kommandon från en stängd PSSession
Det här exemplet visar hur du kör de exporterade kommandona med särskilda alternativ när PSSessionen som skapade de exporterade kommandona stängs.
Om den ursprungliga fjärrsessionen stängs när en modul importeras använder modulen alla öppna fjärrsessioner som ansluter till den ursprungliga datorn. Om det inte finns någon aktuell session på den ursprungliga datorn kommer modulen att återupprätta en session.
Om du vill köra exporterade kommandon med särskilda alternativ i en fjärrsession måste du skapa en fjärrsession med dessa alternativ innan du importerar modulen. Använd cmdleten New-PSSession
med parametern SessionOption
$Options = New-PSSessionOption -NoMachineProfile
$S = New-PSSession -ComputerName Server01 -SessionOption $Options
Export-PSSession -Session $S -OutputModule Server01
Remove-PSSession $S
New-PSSession -ComputerName Server01 -SessionOption $Options
Import-Module Server01
Cmdleten New-PSSessionOption
skapar ett PSSessionOption-objekt och sparar objektet i variabeln $Options
. Kommandot New-PSSession
skapar en PSSession på Server01-datorn.
Parametern SessionOption använder objektet som lagras i $Options
. Sessionen lagras i variabeln $S
.
Cmdleten Export-PSSession
exporterar kommandon från PSSession i $S
till Server01-modulen.
Cmdleten Remove-PSSession
tar bort PSSession i variabeln $S
.
Cmdleten New-PSSession
skapar en ny PSSession som ansluter till Server01-datorn. Parametern SessionOption använder objektet som lagras i $Options
. Cmdleten Import-Module
importerar kommandona från Server01-modulen. Kommandona i modulen körs i PSSession på Server01-datorn.
Parametrar
-AllowClobber
Exporterar de angivna kommandona, även om de har samma namn som kommandon i den aktuella sessionen.
Om du exporterar ett kommando med samma namn som ett kommando i den aktuella sessionen döljer eller ersätter det exporterade kommandot de ursprungliga kommandona. Mer information finns i about_Command_Precedence.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ArgumentList
Exporterar varianten av kommandot som resulterar från att använda de angivna argumenten (parametervärden).
Om du till exempel vill exportera -varianten Get-Item
av kommandot i certifikatenheten (Cert:) i PSSession i $S
skriver du export-pssession -session $S -command get-item -argumentlist cert:
.
Type: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Certificate
Anger det klientcertifikat som används för att signera formatfilerna (*. Format.ps1xml) eller skriptmodulfiler (.psm1) i modulen som Export-PSSession
skapar. Ange en variabel som innehåller ett certifikat eller ett kommando eller uttryck som hämtar certifikatet.
Om du vill hitta ett certifikat använder du cmdleten Get-PfxCertificate
eller Get-ChildItem
cmdleten på certifikatenheten (Cert:). Om certifikatet inte är giltigt eller inte har tillräcklig behörighet misslyckas kommandot.
Type: | X509Certificate2 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandName
Exporterar endast kommandon med de angivna namnen eller namnmönstren. Jokertecken tillåts. Använd CommandName eller dess alias, Name.
Som standard Export-PSSession
exporterar alla kommandon från PSSession förutom kommandon som har samma namn som kommandon i den aktuella sessionen. Detta förhindrar att kommandon döljs eller ersätts av kommandon i den aktuella sessionen. Om du vill exportera alla kommandon, även de som döljer eller ersätter andra kommandon, använder du parametern AllowClobber .
Om du använder parametern CommandName exporteras inte formateringsfilerna för kommandona om du inte använder parametern FormatTypeName . På samma sätt exporteras inga kommandon om du inte använder parametern CommandName om du använder parametern FormatTypeName.
Type: | String[] |
Aliases: | Name |
Position: | 2 |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-CommandType
Exporterar endast de angivna typerna av kommandoobjekt. Använd CommandType eller dess alias, Typ.
Godkända värden för den här parametern är följande:
- Alias. Alla PowerShell-alias i den aktuella sessionen.
- Alla. Alla kommandotyper. Det motsvarar
Get-Command -Name *
. - Program. Alla andra filer än PowerShell-filer i sökvägar som anges i miljövariabeln Sökväg (
$env:path
), inklusive .txt, .exe och .dll filer. - Cmdlet. Cmdletarna i den aktuella sessionen. Cmdleten är standard.
- Konfiguration. En PowerShell-konfiguration. Mer information finns i about_Session_Configurations.
- ExternalScript. Alla .ps1 filer i sökvägarna som anges i miljövariabeln Sökväg (
$env:path
). - Filter och funktion. Alla PowerShell-funktioner.
- Skript. Skriptblock i den aktuella sessionen.
- Arbetsflöde. Ett PowerShell-arbetsflöde. Mer information finns i about_Workflows.
Type: | CommandTypes |
Aliases: | Type |
Accepted values: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
Position: | Named |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Anger typ av kodning för målfilen. Standardvärdet är UTF8.
Godkända värden för den här parametern är följande:
- ASCII Använder ASCII-teckenuppsättning (7-bitars).
- BigEndianUnicode Använder UTF-16 med den stora byteordningen.
- Standard Använder den kodning som motsvarar systemets aktiva kodsida.
- OEM Använder den kodning som motsvarar systemets aktuella OEM-kodsida.
- Unicode Använder UTF-16 med den lilla byteordningen.
- UTF7 Använder UTF-7.
- UTF8 Använder UTF-8.
- UTF32 Använder UTF-32 med den lilla byteordningen.
Type: | String |
Accepted values: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | UTF8 |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Skriver över en eller flera befintliga utdatafiler, även om filen har det skrivskyddade attributet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatTypeName
Exporterar endast formateringsinstruktioner för de angivna Microsoft .NET Framework-typerna. Ange typnamnen. Som standard Export-PSSession
exporteras formateringsinstruktioner för alla .NET Framework typer som inte finns i namnområdet System.Management.Automation.
Värdet för den här parametern måste vara namnet på en typ som returneras av ett Get-FormatData
kommando i den session som kommandona importeras från. Om du vill hämta alla formateringsdata i fjärrsessionen skriver du *
.
Om du använder parametern FormatTypeName exporteras inga kommandon om du inte använder parametern CommandName .
Om du använder parametern CommandName exporteras inte formateringsfilerna för kommandona om du inte använder parametern FormatTypeName .
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedModule
Anger moduler med namn som anges i form av ModuleSpecification-objekt . Se avsnittet Anmärkningar i ModuleSpecification Constructor (Hashtable).
Parametern FullyQualifiedModule accepterar till exempel ett modulnamn som anges i något av följande format:
@{ModuleName = "modulename"; ModuleVersion = "version_number"}
@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}
ModuleName och ModuleVersion krävs, men Guid är valfritt. Du kan inte ange parametern FullyQualifiedModule i samma kommando som en modulparameter . de två parametrarna är ömsesidigt uteslutande.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
Exporterar endast kommandona i de angivna PowerShell-snapin-modulerna och modulerna. Ange namnen på snapin-modulen och modulen. Jokertecken tillåts inte.
Mer information finns i Import-Module
och about_PSSnapins.
Type: | String[] |
Aliases: | PSSnapin |
Position: | Named |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputModule
Anger en valfri sökväg och ett namn för modulen som skapats av Export-PSSession
. Standardsökvägen är $home\Documents\WindowsPowerShell\Modules
. Den här parametern krävs.
Om modulunderkatalogen eller någon av filerna som Export-PSSession
skapar redan finns misslyckas kommandot. Om du vill skriva över befintliga filer använder du parametern Force .
Type: | String |
Aliases: | PSPath, ModuleName |
Position: | 1 |
Default value: | $home\Documents\WindowsPowerShell\Modules |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Anger PSSession som kommandona exporteras från. Ange en variabel som innehåller ett sessionsobjekt eller ett kommando som hämtar ett sessionsobjekt, till exempel ett Get-PSSession
kommando. Den här parametern krävs.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka objekt till Export-PSSession
.
Utdata
Export-PSSession
returnerar en lista med filer som utgör modulen som den skapade.
Kommentarer
Export-PSSession
förlitar sig på PowerShell-fjärrkommunikationsinfrastrukturen. Om du vill använda denna cmdlet måste datorn konfigureras för fjärrkommunikation. Mer information finns i about_Remote_Requirements.
Du kan inte använda Export-PSSession
för att exportera en PowerShell-provider.
Exporterade kommandon körs implicit i PSSession som de exporterades från. Informationen om att köra kommandona via fjärranslutning hanteras helt och hållet av PowerShell. Du kan köra de exporterade kommandona på samma sätt som du kör lokala kommandon.
Export-ModuleMember
samlar in och sparar information om PSSession i modulen som den exporterar. Om PSSession som kommandona exporterades från stängs när du importerar modulen och det inte finns några aktiva PSSessioner på samma dator, försöker kommandona i modulen återskapa PSSessionen. Om försöken att återskapa PSSession misslyckas körs inte de exporterade kommandona.
Sessionsinformationen som Export-ModuleMember
samlar in och sparar i modulen innehåller inte sessionsalternativ, till exempel de som du anger i $PSSessionOption
inställningsvariabeln eller genom att använda parametern SessionOption för New-PSSession
cmdletarna , Enter-PSSession
eller Invoke-Command
. Om den ursprungliga PSSessionen stängs när du importerar modulen använder modulen en annan PSSession till samma dator, om en är tillgänglig. Om du vill att de importerade kommandona ska köras i en korrekt konfigurerad session skapar du en PSSession med de alternativ som du vill använda innan du importerar modulen.
För att hitta de kommandon som ska exporteras Export-PSSession
använder cmdleten Invoke-Command
för att köra ett Get-Command
kommando i PSSession. För att hämta och spara formateringsdata för kommandona använder Get-FormatData
den cmdletarna och Export-FormatData
. Du kan se felmeddelanden från Invoke-Command
, Get-Command
, Get-FormatData
och Export-FormatData
när du kör ett Export-PSSession
kommando. Export-PSSession
Det går inte heller att exportera kommandon från en session som inte innehåller Get-Command
cmdletarna , Get-FormatData
, Select-Object
och Get-Help
.
Export-PSSession
använder cmdleten Write-Progress
för att visa förloppet för kommandot. Du kan se förloppsindikatorn när kommandot körs.
Exporterade kommandon har samma begränsningar som andra fjärrkommandon, inklusive oförmågan att starta ett program med ett användargränssnitt, till exempel Anteckningar.
Eftersom PowerShell-profiler inte körs i PSSessioner är de kommandon som en profil lägger till i en session inte tillgängliga för Export-PSSession
. Om du vill exportera kommandon från en profil använder du ett Invoke-Command
kommando för att köra profilen i PSSession manuellt innan du exporterar kommandon.
Modulen som Export-PSSession
skapar kan innehålla en formateringsfil, även om kommandot inte importerar formateringsdata. Om kommandot inte importerar formateringsdata innehåller formateringsfiler som skapas inte formateringsdata.