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 $pshome
adresáři \Modules na místním počítači.
Umístěním modulu do $pshome
adresář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
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-PSSession
SessionOption rutin , Enter-PSSession
neboInvoke-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-Command
adresy , Get-Command
Get-FormatData
, a Export-FormatData
.Export-PSSession
Nelze také exportovat příkazy z relace, Export-PSSession
která neobsahuje Get-Command
rutiny , Get-FormatData
Select-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í.