Export-PSSession
Exportuje příkazy z jiné relace a uloží je do modulu PowerShellu.
Syntaxe
All
Export-PSSession
[-OutputModule] <String>
[[-CommandName] <String[]>]
[[-FormatTypeName] <String[]>]
[-Session] <PSSession>
[-Force]
[-Encoding <Encoding>]
[-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 Import-PSSession, který importuje příkazy z jiné psSession do aktuální relace, Export-PSSession uloží příkazy v modulu. Příkazy se neimportují do aktuální relace.
K exportu příkazů použijte rutinu New-PSSession k vytvoření psSession s příkazy, které chcete exportovat. Pak pomocí rutiny Export-PSSession příkazy exportujte.
Chcete-li zabránit 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. K určení příkazů k exportu můžete použít parametr CommandName.
Rutina Export-PSSession používá implicitní funkci 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 psSession z místního počítače do počítače Server01. Všechny příkazy kromě příkazů, které existují v aktuální relaci, se exportují do modulu s názvem Server01 na místním počítači. Export obsahuje formátovací data pro příkazy.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Příkaz New-PSSession vytvoří na počítači se serverem Server01 příkaz PSSession. PsSession je uložena v $S proměnné. Příkaz Export-PSSession exportuje příkazy $S proměnné a naformátuje data do modulu Server01.
Příklad 2: Export příkazů Get and Set
Tento příklad exportuje všechny příkazy Get a Set ze serveru.
$newSession = @{
ConnectionUri = 'https://exchange.microsoft.com/mailbox'
Credential = 'exchangeadmin01@hotmail.com'
Authentication = 'Negotiate'
}
$S = New-PSSession @newSession
$exportSession = @{
Session = $S
Module = 'exch*'
CommandName = 'Get-*', 'Set-*'
FormatTypeName = '*'
OutputModule = "$PSHOME\Modules\Exchange"
Encoding = 'ascii'
}
Export-PSSession @exportSession
Tyto příkazy exportují příkazy Get a Set z modulu snap-in Microsoft Exchange Server na vzdáleném počítači do modulu Exchange v adresáři $PSHOME\Modules v místním počítači.
Umístěním modulu do adresáře $PSHOME\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 vzdáleného počítače ze vzdáleného počítače a uloží je do modulu na místním počítači. Rutiny z modulu se přidají do aktuální relace, aby je bylo možné použít.
$newSession = @{
ComputerName = 'Server01'
Credential = 'Server01\User01'
}
$S = New-PSSession @newSession
$exportSession = @{
Session = $S
OutputModule = 'TestCmdlets'
Type = 'Cmdlet'
CommandName = '*test*'
FormatTypeName = '*'
}
Export-PSSession @exportSession
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
Příkaz New-PSSession vytvoří na počítači se serverem Server01 psSession a uloží ho do proměnné $S. Příkaz Export-PSSession exportuje rutiny, jejichž názvy začínají testem z psSession v $S do modulu TestCmdlets v místním počítači.
Rutina Remove-PSSession odstraní psSession v $S z aktuální relace. Tento příkaz ukazuje, že příkaz PSSession nemusí být aktivní, pokud chcete použít příkazy importované z relace. Rutina Import-Module přidá rutiny do aktuální relace v modulu TestCmdlets. Příkaz lze kdykoli spustit v libovolné relaci.
Rutina Get-Help získá nápovědu pro rutiny, jejichž názvy začínají testem. Po přidání příkazů v modulu do aktuální relace můžete k získání informací o importovaných příkazech použít Get-Help a Get-Command rutiny. Rutina Test-Files byla exportována z počítače Serveru01 a přidána do relace. Rutina Test-Files běží 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: Export a clobber příkazy 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 příkaz Export-PSSession exportuje všechny příkazy a všechna formátovací data z psSession v proměnné $S 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é psSession
Tento příklad ukazuje, jak spustit exportované příkazy se speciálními možnostmi při zavření psSession, která vytvořila exportované příkazy.
Pokud se původní vzdálená relace při importu modulu zavře, použije modul libovolnou otevřenou vzdálenou relaci, která se připojí k původnímu počítači. Pokud k původnímu počítači neexistuje žádná aktuální relace, modul znovu vytvoří relaci.
Pokud chcete spouštět 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 proměnné $Options. Příkaz New-PSSession vytvoří na počítači se serverem Server01 příkaz PSSession.
Parametr SessionOption používá objekt uložený v $Options. Relace je uložena v proměnné $S.
Rutina Export-PSSession exportuje příkazy z psSession v $S do modulu Server01.
Rutina Remove-PSSession odstraní psSession v proměnné $S.
Rutina New-PSSession vytvoří novou 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 jsou spouštěny v 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.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-ArgumentList
Exportuje variantu příkazu, která je výsledkem použití zadaných argumentů (hodnot parametrů).
Pokud chcete například exportovat variantu příkazu Get-Item v jednotce certifikátu (Cert:) v psSession v $S, zadejte Export-PSSession -Session $S -Command Get-Item -ArgumentList Cert:.
Vlastnosti parametru
| Typ: | Object[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Argumenty |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Certificate
Určuje klientský certifikát, který se používá k podepsání souborů formátu (*. Format.ps1xml) nebo soubory modulu skriptu (.psm1) v modulu, který Export-PSSession vytvoří. Zadejte proměnnou obsahující 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 použijte rutinu Get-ChildItem na jednotce Certificate (Cert:). Pokud certifikát není platný nebo nemá dostatečnou autoritu, příkaz selže.
Vlastnosti parametru
| Typ: | X509Certificate2 |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-CommandName
Exportuje pouze příkazy se zadanými názvy nebo vzory názvů. Jsou povoleny zástupné symboly. Použijte CommandName nebo jeho alias, Název.
Ve výchozím nastavení Export-PSSession exportují všechny příkazy z psSession s výjimkou příkazů se stejnými názvy jako příkazy v aktuální relaci. Tím zabráníte skrytí nebo nahrazení příkazů 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í příkazů se neexportují, pokud nepoužíváte parametr FormatTypeName. Podobně pokud použijete parametr FormatTypeName, nebudou exportovány žádné příkazy, pokud nepoužíváte parametr CommandName.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | All commands in the session. |
| Podporuje zástupné znaky: | True |
| DontShow: | False |
| Aliasy: | Název |
Sady parametrů
(All)
| Position: | 2 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-CommandType
Exportuje pouze zadané typy objektů příkazů. Použijte CommandType nebo jeho alias, Typ.
Přijatelné hodnoty pro tento parametr jsou následující:
-
Alias: Všechny aliasy PowerShellu v aktuální relaci. -
All: Všechny typy příkazů. Je to ekvivalentGet-Command -Name *. -
Application: Všechny jiné soubory než soubory PowerShellu v cestách uvedených v proměnné prostředí PATH ($Env:PATH), včetně .txt, .exea souborů .dll. -
Cmdlet: Rutiny v aktuální relaci. Rutina je výchozí. -
Configuration: Konfigurace PowerShellu. Další informace najdete v tématu about_Session_Configurations. -
ExternalScript: Všechny soubory.ps1v cestách uvedených v proměnné prostředí PATH ($Env:PATH). -
FilteraFunction: Všechny funkce PowerShellu -
Scriptbloky skriptu v aktuální relaci. -
Workflowpracovního postupu PowerShellu. Další informace najdete v tématu about_Workflows.
Tyto hodnoty jsou definovány jako výčtové hodnoty na bázi příznaků. Pomocí tohoto parametru můžete zkombinovat více hodnot a nastavit více příznaků. Hodnoty lze předat parametru CommandType jako pole hodnot nebo jako řetězec oddělený čárkami těchto hodnot. Rutina zkombinuje hodnoty pomocí binární operace OR. Předání hodnot jako pole je nejjednodušší možností a také umožňuje využít automatické doplňování pomocí klávesy Tab pro hodnoty.
Vlastnosti parametru
| Typ: | CommandTypes |
| Default value: | All commands in the session. |
| Přípustné hodnoty: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | Typ |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Encoding
Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.
Přijatelné hodnoty pro tento parametr jsou následující:
-
ascii: Používá kódování znakové sady ASCII (7bitová). -
ansi: Používá kódování pro znakovou stránku ANSI aktuální kultury. Tato možnost byla přidána v PowerShellu 7.4. -
bigendianunicode: Kóduje ve formátu UTF-16 s použitím pořadí bajtů big-endian. -
bigendianutf32: Kóduje ve formátu UTF-32 s použitím big-endian bajtového pořadí. -
oem: Používá výchozí kódování pro MS-DOS a konzolové programy. -
unicode: Kóduje ve formátu UTF-16 pomocí pořadí malých bajtů. -
utf7: Kóduje ve formátu UTF-7. -
utf8: Kóduje ve formátu UTF-8. -
utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM) -
utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM) -
utf32: Kóduje ve formátu UTF-32.
Počínaje PowerShellem 6.2 umožňuje parametr Encoding také číselné ID registrovaných znakových stránek (například -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace naleznete v dokumentaci .NET pro Encoding.CodePage.
Od verze PowerShell 7.4 můžete použít hodnotu Ansi parametru Encoding a předat číselné ID pro znakovou stránku ANSI aktuální kultury, aniž by bylo nutné ji zadávat ručně.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se zapíše upozornění, pokud pro parametr utf7 zadáte .
Vlastnosti parametru
| Typ: | Encoding |
| Default value: | UTF8NoBOM |
| Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Force
Přepíše jeden nebo více existujících výstupních souborů, i když má soubor atribut jen pro čtení.
Vlastnosti parametru
| Typ: | SwitchParameter |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | 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í. Chcete-li získat všechna formátovací data ve vzdálené relaci, zadejte *.
Pokud použijete parametr FormatTypeName, nebudou exportovány žádné příkazy, pokud nepoužíváte parametr CommandName.
Pokud použijete parametr CommandName, soubory formátování příkazů se neexportují, pokud nepoužíváte parametr FormatTypeName.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 3 |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-FullyQualifiedModule
Hodnota může být název modulu, úplná specifikace modulu nebo cesta k souboru modulu.
Pokud je hodnota cesta, může být cesta plně kvalifikovaná nebo relativní. Relativní cesta je vyřešena vzhledem ke skriptu, který obsahuje příkaz using.
Pokud je hodnota název nebo specifikace modulu, PowerShell prohledá PSModulePath zadaného modulu.
Specifikace modulu je hashovatelná tabulka s následujícími klíči.
-
ModuleName- Povinný Určuje název modulu. -
GUID- Volitelné Určuje identifikátor GUID modulu. - Je také Povinné zadat aspoň jeden z následujících tří klíčů.
-
ModuleVersion– Určuje minimální přijatelnou verzi modulu. -
MaximumVersion– Určuje maximální přijatelnou verzi modulu. -
RequiredVersion– Určuje přesnou požadovanou verzi modulu. Tuto možnost nelze použít s jinými klíči verze.
-
Parametr FullyQualifiedMod ule nemůžete zadat ve stejném příkazu jako parametr Module. oba parametry se vzájemně vylučují.
Vlastnosti parametru
| Typ: | |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Module
Exportuje pouze příkazy v zadaných modulech a modulech PowerShellu. Zadejte názvy modulů a modulů. Zástupné dokumentace nejsou povoleny.
Další informace najdete v tématu Import-Module a about_PSSnapins.
Vlastnosti parametru
| Typ: | String[] |
| Default value: | All commands in the session. |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSSnapin |
Sady parametrů
(All)
| Position: | Named |
| Povinné: | False |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-OutputModule
Určuje volitelnou cestu a název modulu vytvořeného Export-PSSession. Výchozí cesta je $HOME\Documents\WindowsPowerShell\Modules. Tento parametr je povinný.
Pokud podadresář modulu nebo některý ze souborů, které Export-PSSession již existují, příkaz selže. K přepsání existujících souborů použijte parametr Force.
Vlastnosti parametru
| Typ: | String |
| Default value: | $HOME\Documents\WindowsPowerShell\Modules |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
| Aliasy: | PSPath, ModuleName |
Sady parametrů
(All)
| Position: | 1 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
-Session
Určuje psSession, ze které se příkazy exportují. Zadejte proměnnou obsahující objekt relace nebo příkaz, který získá objekt relace, například příkaz Get-PSSession. Tento parametr je povinný.
Vlastnosti parametru
| Typ: | PSSession |
| Default value: | None |
| Podporuje zástupné znaky: | False |
| DontShow: | False |
Sady parametrů
(All)
| Position: | 0 |
| Povinné: | True |
| Hodnota z kanálu: | False |
| Hodnota z kanálu podle názvu vlastnosti: | False |
| Hodnota ze zbývajících argumentů: | False |
CommonParameters
Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.
Vstupy
None
Do tohoto cmdletu nemůžete předávat objekty.
Výstupy
FileInfo
Tato rutina vrátí seznam souborů, které tvoří modul, který vytvořil.
Poznámky
Export-PSSession spoléhá na infrastrukturu vzdálené komunikace PowerShellu. Pokud chcete tuto rutinu použít, musí být počítač nakonfigurovaný pro vzdálené komunikace. Další informace naleznete v tématu about_Remote_Requirements.
K exportu zprostředkovatele PowerShellu nemůžete použít Export-PSSession.
Exportované příkazy se spouští implicitně v psSession, ze které byly exportovány. Podrobnosti o vzdáleném spuštění příkazů se zpracovávají výhradně pomocí PowerShellu. Exportované příkazy můžete spustit stejně jako místní příkazy.
Export-ModuleMember zaznamenává a ukládá informace o psSession v modulu, který exportuje. Pokud při importu modulu dojde k zavření psSession, ze které byly příkazy exportovány, a neexistují žádné aktivní psSessions do stejného počítače, příkazy v modulu se pokusí znovu vytvořit psSession. Pokud se pokusí znovu vytvořit příkaz PSSession, 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 proměnné předvoleb $PSSessionOption nebo pomocí parametru SessionOption rutin New-PSSession, Enter-PSSessionnebo Invoke-Command. Pokud při importu modulu dojde k zavření původní psSession, modul použije jinou psSession do stejného počítače, pokud je k dispozici. Pokud chcete povolit spuštění importovaných příkazů v správně nakonfigurované relaci, vytvořte před importem modulu příkaz PSSession s požadovanými možnostmi.
Pokud chcete najít příkazy k exportu, Export-PSSession používá rutinu Invoke-Command ke spuštění příkazu Get-Command v příkazu PSSession. K získání a uložení formátovacích dat pro příkazy se používají rutiny Get-FormatData a Export-FormatData. Při spuštění příkazu Invoke-Command se můžou zobrazovat chybové zprávy z Get-Command, Get-FormatData, Export-FormatDataa Export-PSSession.
Export-PSSession také nelze exportovat příkazy z relace, která neobsahuje rutiny Get-Command, Get-FormatData, Select-Objecta Get-Help.
Export-PSSession pomocí rutiny Write-Progress zobrazí průběh příkazu. Během spuštění příkazu se může zobrazit indikátor průběhu.
Exportované příkazy mají stejná omezení jako jiné vzdálené příkazy, včetně nemožnosti spustit program s uživatelským rozhraním, jako je Třeba Poznámkový blok.
Vzhledem k tomu, že profily PowerShellu nejsou spuštěny v psSessions, příkazy, které profil přidá do relace, nejsou k dispozici pro Export-PSSession. Pokud chcete exportovat příkazy z profilu, před exportem příkazů použijte příkaz Invoke-Command ke spuštění profilu v psSession ručně.
Modul, který Export-PSSession vytvoří, může obsahovat formátovací soubor, i když příkaz neimportuje formátovaná data. Pokud příkaz neimportuje formátovací data, nebudou žádné vytvořené soubory formátování obsahovat formátovací data.