Export-PSSession
Exportuje příkazy z jiné relace a uloží je do modulu PowerShellu.
Syntax
Export-PSSession
[-OutputModule] <String>
[-Force]
[-Encoding <Encoding>]
[[-CommandName] <String[]>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-FormatTypeName] <String[]>]
[-Certificate <X509Certificate2>]
[-Session] <PSSession>
[<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
příkazu, 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
exportujte příkazy.
Chcete-li zabránit konfliktům názvů příkazů, výchozí možností Export-PSSession
je exportovat všechny příkazy s výjimkou příkazů, které existují v aktuální relaci. Pomocí parametru CommandName můžete zadat příkazy k exportu.
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ří 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 naformátuje data do modulu Server01.
Příklad 2: Export příkazů Get and Set
Tento příklad exportuje všechny Get
příkazy ze Set
serveru.
$S = New-PSSession -ConnectionUri https://exchange.microsoft.com/mailbox -Credential exchangeadmin01@hotmail.com -Authentication Negotiate
Export-PSSession -Session $S -Module exch* -CommandName Get-*, Set-* -FormatTypeName * -OutputModule $PSHOME\Modules\Exchange -Encoding ASCII
Tyto příkazy exportují Get
příkazy Set
z modulu snap-in Microsoft Exchange Server na vzdáleném počítači do modulu Exchange v $PSHOME\Modules
adresáři na místním počítači.
Umístěním modulu do $PSHOME\Modules
adresáře 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.
$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ří na počítači Server01 psSession a uloží ho $S
do proměnné. Příkaz Export-PSSession
exportuje rutiny, jejichž názvy začínají testem z psSession do $S
modulu TestCmdlets na místním počítači.
Rutina Remove-PSSession
odstraní psSession z $S
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 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í testem. Jakmile se příkazy v modulu přidají do aktuální relace, můžete použít Get-Help
rutiny a Get-Command
seznámit se s importovanými příkazy. Rutina Test-Files
byla exportována z počítače Server01 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 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é 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 $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 PSSession $S
do modulu Server01.
Rutina Remove-PSSession
odstraní psSession v $S
proměnné.
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.
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ů).
Chcete-li například exportovat variantu Get-Item
příkazu v jednotce certifikátu (Cert:) v 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í 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.
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é cardy. Použijte CommandNamenebo jeho alias, Název.
Ve výchozím nastavení Export-PSSession
exportuje 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é skryjí nebo nahrazují jiné příkazy, použijte parametr AllowClobber .
Pokud použijete parametr CommandName , formátovací soubory pro příkazy 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.
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.All
: Všechny typy příkazů. Je to ekvivalent .Get-Command -Name *
Application
: Všechny jiné soubory než soubory PowerShellu v cestách uvedených v proměnné prostředí Cesta ($env:path
), včetně .txt, .exe a .dll souborů.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 .ps1 v cestách uvedených v proměnné prostředí Path ($env:path
).Filter
aFunction
: Všechny funkce PowerShellu.Script
Bloky skriptu v aktuální relaciWorkflow
Pracovní postup PowerShellu Další informace najdete v tématu about_Workflows.
Tyto hodnoty jsou definovány jako výčet založený na příznaku. 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 použít pro hodnoty dokončování tabulátoru.
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 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 kódovou stránku ANSI aktuální jazykové verze. Tato možnost byla přidána v PowerShellu 7.4.bigendianunicode
: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.bigendianutf32
: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.oem
: Používá výchozí kódování pro MS-DOS a konzolové programy.unicode
: Kóduje ve formátu UTF-16 pomocí malého bajtového pořadí.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 Kódování také číselná ID registrovaných znakových stránek (jako -Encoding 1251
) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"
). Další informace najdete v dokumentaci k .NET pro Encoding.CodePage.
Počínaje PowerShellem 7.4 můžete hodnotu parametru Encoding použít Ansi
k předání číselného ID pro znakovou stránku ANSI aktuální jazykové verze, aniž byste ji museli zadávat ručně.
Poznámka:
UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se při zadání parametru Encoding zapíše utf7
upozornění.
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
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ů, i když má soubor 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í. 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 , formátovací soubory pro příkazy se neexportují, pokud nepoužíváte parametr FormatTypeName .
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 vyhledá zadaný modul v psModulePath .
Specifikace modulu je hashovatelná tabulka s následujícími klíči.
ModuleName
- Povinný argument Určuje název modulu.GUID
- Volitelné určuje identifikátor GUID modulu.- Je také povinné zadat aspoň jeden ze tří následujících 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 FullyQualifiedModule nelze zadat ve stejném příkazu jako parametr Module. 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 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.
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 modulem 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
už existují, příkaz selže. K přepsání existujících souborů 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é se příkazy exportují. Zadejte proměnnou obsahující 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
Do této rutiny nemůžete roušit objekty.
Výstupy
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 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 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 $PSSessionOption
proměnné předvoleb nebo pomocí parametru SessionOption parametru New-PSSession
, Enter-PSSession
nebo Invoke-Command
rutin. 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
pomocí Invoke-Command
rutiny spustí Get-Command
příkaz v psSession. K získání a uložení formátovacích dat pro příkazy se používají rutiny Get-FormatData
a Export-FormatData
rutiny. Při spuštění příkazu se můžou zobrazit chybové zprávy z Invoke-Command
, Get-Command
Get-FormatData
, a Export-FormatData
když spustíte Export-PSSession
příkaz. Nelze také exportovat příkazy z relace, Export-PSSession
která neobsahuje Get-Command
rutiny , Get-FormatData
, Select-Object
a Get-Help
rutiny.
Export-PSSession
používá rutinu Write-Progress
k zobrazení průběhu 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 například Poznámkový blok.
Vzhledem k tomu, že se profily PowerShellu nespouštějí v psSessions, nejsou příkazy, které profil přidá do relace, k dispozici Export-PSSession
. Pokud chcete exportovat příkazy z profilu, před exportem příkazů použijte Invoke-Command
příkaz ke spuštění profilu v nástroji PSSession.
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.