Sdílet prostřednictvím


Export-PSSession

Exportuje příkazy z jiné relace a uloží je do modulu PowerShellu.

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

Rutina Export-PSSession získá rutiny, funkce, aliasy a další typy příkazů z jiné relace PowerShellu (PSSession) na místním nebo vzdáleném počítači a uloží je do modulu PowerShellu. Pokud chcete přidat příkazy z modulu do aktuální relace, použijte rutinu Import-Module .

Na rozdíl od příkazu Import-PSSession, který importuje příkazy z jiného nástroje PSSession do aktuální relace, Export-PSSession ukládá příkazy v modulu. Příkazy se neimportují do aktuální relace.

Pokud chcete exportovat příkazy, vytvořte pomocí New-PSSession rutiny PSSession, která obsahuje příkazy, které chcete exportovat. Pak pomocí rutiny Export-PSSession exportujte příkazy.

Aby nedocházelo ke konfliktům názvů příkazů, výchozí hodnota pro Export-PSSession je exportovat všechny příkazy s výjimkou příkazů, které existují v aktuální relaci. Pomocí parametru CommandName můžete určit příkazy, které chcete exportovat.

Rutina Export-PSSession používá funkci implicitní vzdálené komunikace PowerShellu. Když importujete příkazy do aktuální relace, spustí se implicitně v původní relaci nebo v podobné relaci na původním počítači.

Příklady

Příklad 1: Export příkazů z PSSession

Tento příklad vytvoří novou instanci PSSession z místního počítače do počítače Server01. Všechny příkazy s výjimkou těch, které existují v aktuální relaci, se exportují do modulu s názvem Server01 v místním počítači. Export obsahuje data formátování příkazů.

$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01

Příkaz New-PSSession vytvoří pssession na počítači Server01. PsSession je uložena v $S proměnné. Příkaz Export-PSSession exportuje $S příkazy proměnné a data formátování do modulu Server01.

Příklad 2: Export příkazů Get a Set

Tento příklad exportuje Get všechny příkazy a Set ze serveru.

$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

Tyto příkazy exportují Get příkazy a Set z modulu snap-in Microsoft Exchange Server na vzdáleném počítači do modulu Exchange v $pshomeadresáři \Modules na místním počítači. Umístěním modulu do $pshomeadresáře \Modules ho zpřístupníte všem uživatelům počítače.

Příklad 3: Export příkazů ze vzdáleného počítače

Tento příklad exportuje rutiny ze služby PSSession na vzdáleném počítači a uloží je do modulu v místním počítači. Rutiny z modulu se přidají do aktuální relace, aby je bylo možné použít.

$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

Příkaz New-PSSession vytvoří pssession v počítači Server01 a uloží ho do $S proměnné. Příkaz Export-PSSession exportuje rutiny, jejichž názvy začínají na Test z PSSession v $S modulu TestCmdlets v místním počítači.

Rutina Remove-PSSession odstraní PSSession in $S z aktuální relace. Tento příkaz ukazuje, že pssession nemusí být aktivní, aby bylo možné používat příkazy importované z relace. Rutina Import-Module přidá rutiny v modulu TestCmdlets do aktuální relace. Příkaz lze kdykoli spustit v libovolné relaci.

Rutina Get-Help získá nápovědu pro rutiny, jejichž názvy začínají na Test. Po přidání příkazů v modulu do aktuální relace můžete pomocí Get-Help rutin a Get-Command získat informace o importovaných příkazech. Rutina Test-Files byla exportována z počítače Server01 a přidána do relace. Rutina se Test-Files spouští ve vzdálené relaci na počítači, ze kterého byl příkaz importován. PowerShell vytvoří relaci z informací uložených v modulu TestCmdlets.

Příklad 4: Příkazy exportu a clobber v aktuální relaci

Tento příklad exportuje příkazy uložené v proměnné do aktuální relace.

Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands

Tento Export-PSSession příkaz exportuje všechny příkazy a všechna formátovací data z PSSession v $S proměnné do aktuální relace. Parametr AllowClobber obsahuje příkazy se stejnými názvy jako příkazy v aktuální relaci.

Příklad 5: Export příkazů z uzavřeného nástroje PSSession

Tento příklad ukazuje, jak spustit exportované příkazy se speciálními možnostmi při zavření nástroje PSSession, který vytvořil exportované příkazy.

Pokud je původní vzdálená relace ukončena při importu modulu, modul použije jakoukoli otevřenou vzdálenou relaci, která se připojuje k původnímu počítači. Pokud neexistuje žádná aktuální relace s původním počítačem, modul znovu vytvoří relaci.

Pokud chcete spustit exportované příkazy se speciálními možnostmi ve vzdálené relaci, musíte před importem modulu vytvořit vzdálenou relaci s těmito možnostmi. Použití rutiny New-PSSession s parametrem 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

Rutina New-PSSessionOption vytvoří objekt PSSessionOption a uloží objekt do $Options proměnné. Příkaz New-PSSession vytvoří pssession na počítači Server01. Parametr SessionOption používá objekt uložený v $Options. Relace je uložena $S v proměnné.

Rutina Export-PSSession exportuje příkazy z modulu PSSession do $S modulu Server01. Rutina Remove-PSSession odstraní PSSession v $S proměnné.

Rutina New-PSSession vytvoří novou instanci PSSession, která se připojí k počítači Server01. Parametr SessionOption používá objekt uložený v $Options. Rutina Import-Module importuje příkazy z modulu Server01. Příkazy v modulu se spouští v nástroji PSSession na počítači Server01.

Parametry

-AllowClobber

Exportuje zadané příkazy, i když mají stejné názvy jako příkazy v aktuální relaci.

Pokud exportujete příkaz se stejným názvem jako příkaz v aktuální relaci, exportovaný příkaz skryje nebo nahradí původní příkazy. Další informace najdete v tématu about_Command_Precedence.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ArgumentList

Exportuje variantu příkazu, která je výsledkem použití zadaných argumentů (hodnot parametrů).

Pokud chcete například exportovat variantu Get-Item příkazu v jednotce certifikátu (Cert:) v nástroji PSSession v $S, zadejte 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

Určuje klientský certifikát, který se používá k podepsání formátových souborů (*. Format.ps1xml) nebo soubory modulu skriptu (.psm1) v modulu, který Export-PSSession vytváří. Zadejte proměnnou, která obsahuje certifikát nebo příkaz nebo výraz, který certifikát získá.

Pokud chcete najít certifikát, použijte rutinu Get-PfxCertificate nebo rutinu Get-ChildItem na jednotce Certificate (Cert:). Pokud certifikát není platný nebo nemá dostatečnou autoritu, příkaz se nezdaří.

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandName

Exportuje pouze příkazy se zadanými názvy nebo vzory názvů. Jsou povoleny zástupné y. Použijte CommandName nebo jeho alias Name.

Ve výchozím nastavení Export-PSSession exportuje všechny příkazy z PSSession s výjimkou příkazů, které mají stejné názvy jako příkazy v aktuální relaci. Zabráníte tak skrytí příkazů nebo jejich nahrazení příkazy v aktuální relaci. Pokud chcete exportovat všechny příkazy, i ty, které skrývají nebo nahrazují jiné příkazy, použijte parametr AllowClobber .

Pokud použijete parametr CommandName , soubory formátování pro příkazy se neexportují, pokud nepoužijete parametr FormatTypeName . Podobně platí, že pokud použijete parametr FormatTypeName , neexportují se žádné příkazy, pokud nepoužijete parametr CommandName .

Type:String[]
Aliases:Name
Position:2
Default value:All commands in the session.
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-CommandType

Exportuje pouze zadané typy objektů příkazů. Použijte CommandType nebo jeho alias Type.

Přijatelné hodnoty pro tento parametr jsou následující:

  • Alias. Všechny aliasy PowerShellu v aktuální relaci
  • Všechny. Všechny typy příkazů. Je to ekvivalent .Get-Command -Name *
  • Aplikace. Všechny soubory kromě souborů PowerShellu v cestách uvedených v proměnné prostředí Path ($env:path), včetně souborů .txt, .exe a .dll.
  • Rutina. Rutiny v aktuální relaci. Výchozí je rutina.
  • Konfigurace. Konfigurace PowerShellu. Další informace najdete v tématu about_Session_Configurations.
  • ExternalScript. Všechny .ps1 soubory v cestách uvedených v proměnné prostředí Path ($env:path).
  • Filtr a funkce. Všechny funkce PowerShellu
  • Skript. Bloky skriptů v aktuální relaci.
  • Pracovního postupu. Pracovní postup PowerShellu. Další informace najdete v tématu 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

Určuje typ kódování cílového souboru. Výchozí hodnota je UTF8.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ASCII Používá znakovou sadu ASCII (7bitová).
  • BigEndianUnicode Používá UTF-16 s pořadím bajtů big-endian.
  • Výchozí Používá kódování, které odpovídá aktivní znakové stránce systému.
  • OEM Použije kódování, které odpovídá aktuální znakové stránce výrobce OEM systému.
  • Unicode Používá UTF-16 s pořadím bajtů little-endian.
  • UTF7 Používá UTF-7.
  • UTF8 Používá UTF-8.
  • UTF32 Používá UTF-32 s pořadím bajtů little-endian.
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

Přepíše jeden nebo více existujících výstupních souborů, a to i v případě, že soubor má atribut jen pro čtení.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatTypeName

Exportuje pokyny k formátování pouze pro zadané typy rozhraní Microsoft .NET Framework. Zadejte názvy typů. Ve výchozím nastavení Export-PSSession exportuje pokyny k formátování pro všechny typy rozhraní .NET Framework, které nejsou v oboru názvů System.Management.Automation .

Hodnota tohoto parametru musí být název typu, který je vrácen příkazem Get-FormatData v relaci, ze které se příkazy importují. Pokud chcete získat všechna formátovací data ve vzdálené relaci, zadejte *.

Pokud použijete parametr FormatTypeName , neexportují se žádné příkazy, pokud nepoužijete parametr CommandName .

Pokud použijete parametr CommandName , soubory formátování pro příkazy se neexportují, pokud nepoužijete parametr FormatTypeName .

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

-FullyQualifiedModule

Určuje moduly s názvy, které jsou zadány ve formě ModuleSpecification objekty. Viz část Poznámky modulu ModuleSpecification – konstruktor (hashtable).

Například parametr FullyQualifiedModule přijímá název modulu, který je zadaný v některém z těchto formátů:

@{ModuleName = "modulename"; ModuleVersion = "version_number"}

@{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}

ModuleName a ModuleVersion jsou povinné, ale identifikátor GUID je volitelný. Nelze zadat parametr FullyQualifiedModule ve stejném příkazu jako module parametr; oba parametry se vzájemně vylučují.

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

-Module

Exportuje jenom příkazy v zadaných modulech snap-in a modulech PowerShellu. Zadejte názvy modulů a modulů. Zástupné cardy nejsou povoleny.

Další informace najdete v tématu Import-Module a 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

Určuje volitelnou cestu a název modulu vytvořeného nástrojem Export-PSSession. Výchozí cesta je $home\Documents\WindowsPowerShell\Modules. Tento parametr je povinný.

Pokud podadresář modulu nebo některý ze souborů, které vytvoří již Export-PSSession existují, příkaz selže. Pokud chcete přepsat existující soubory, použijte parametr 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

Určuje pssession, ze kterého se příkazy exportují. Zadejte proměnnou, která obsahuje objekt relace nebo příkaz, který získá objekt relace, například Get-PSSession příkaz. Tento parametr je povinný.

Type:PSSession
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

None

Objekty nelze převést do objektu Export-PSSession.

Výstupy

FileInfo

Export-PSSession vrátí seznam souborů, které tvoří modul, který vytvořil.

Poznámky

Export-PSSession využívá infrastrukturu vzdálené komunikace PowerShellu. Pokud chcete použít tuto rutinu, musí být počítač nakonfigurovaný pro vzdálené komunikace. Další informace najdete v tématu about_Remote_Requirements.

Nelze použít Export-PSSession k exportu zprostředkovatele PowerShellu.

Exportované příkazy se spouští implicitně v nástroji PSSession, ze kterého byly exportovány. Podrobnosti o vzdáleném spuštění příkazů zpracovává výhradně PowerShell. Exportované příkazy můžete spouštět stejně jako místní příkazy.

Export-ModuleMember zachytává a ukládá informace o psSession v modulu, který exportuje. Pokud je při importu modulu ukončena operace PSSession, ze které byly příkazy exportovány, a na stejném počítači nejsou žádné aktivní nástroje PSSession, příkazy v modulu se pokusí znovu vytvořit nástroj PSSession. Pokud se pokus o opětovné vytvoření PSSession nezdaří, exportované příkazy se nespustí.

Informace o relaci, které Export-ModuleMember zachytí a uloží v modulu, nezahrnují možnosti relace, například ty, které zadáte v $PSSessionOption proměnné předvoleb nebo pomocí parametru New-PSSessionSessionOption rutin , Enter-PSSessionneboInvoke-Command. Pokud se při importu modulu zavře původní psSession, modul použije jinou nástroj PSSession na stejném počítači, pokud je k dispozici. Pokud chcete povolit spuštění importovaných příkazů ve správně nakonfigurované relaci, vytvořte před importem modulu pssession s požadovanými možnostmi.

Pokud chcete najít příkazy k exportu, Export-PSSession pomocí rutiny Invoke-Command spustíte Get-Command příkaz v PSSession. K získání a uložení formátovacích dat pro příkazy používá rutiny Get-FormatData a Export-FormatData . Při spuštění příkazu se můžou zobrazit chybové zprávy z Invoke-Commandadresy , Get-CommandGet-FormatData, a Export-FormatData .Export-PSSession Nelze také exportovat příkazy z relace, Export-PSSession která neobsahuje Get-Commandrutiny , Get-FormatDataSelect-Object, a Get-Help .

Export-PSSession pomocí rutiny Write-Progress zobrazí průběh příkazu. Indikátor průběhu se může zobrazit, když je příkaz spuštěný.

Exportované příkazy mají stejná omezení jako jiné vzdálené příkazy, včetně nemožnosti spustit program pomocí uživatelského rozhraní, například Poznámkový blok.

Vzhledem k tomu, že profily PowerShellu nejsou spuštěné v nástroji PSSessions, nejsou příkazy, které profil přidá do relace, dostupné pro Export-PSSession. Pokud chcete exportovat příkazy z profilu, spusťte před exportem Invoke-Command příkazů pomocí příkazu profil v nástroji PSSession ručně.

Modul, který Export-PSSession vytvoří, může obsahovat formátovací soubor, i když příkaz neimportuje data formátování. Pokud příkaz neimportuje data formátování, nebudou žádné vytvořené formátovací soubory obsahovat data formátování.