Export-PSSession
Eksportuje polecenia z innej sesji i zapisuje je w module programu PowerShell.
Składnia
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>]
Opis
Polecenie Export-PSSession
cmdlet pobiera polecenia cmdlet, funkcje, aliasy i inne typy poleceń z innej sesji programu PowerShell (PSSession) na komputerze lokalnym lub zdalnym i zapisuje je w module programu PowerShell. Aby dodać polecenia z modułu do bieżącej sesji, użyj Import-Module
polecenia cmdlet .
W przeciwieństwie do Import-PSSession
metody , która importuje polecenia z innej sesji PSSession do bieżącej sesji, Export-PSSession
zapisuje polecenia w module. Polecenia nie są importowane do bieżącej sesji.
Aby wyeksportować polecenia, użyj New-PSSession
polecenia cmdlet , aby utworzyć plik PSSession zawierający polecenia, które chcesz wyeksportować. Następnie użyj polecenia cmdlet , Export-PSSession
aby wyeksportować polecenia .
Aby zapobiec konfliktom nazw poleceń, wartością domyślną jest Export-PSSession
wyeksportowanie wszystkich poleceń, z wyjątkiem poleceń, które istnieją w bieżącej sesji. Możesz użyć parametru CommandName , aby określić polecenia do wyeksportowania.
Polecenie Export-PSSession
cmdlet używa niejawnej funkcji komunikacji zdalnej programu PowerShell. Podczas importowania poleceń do bieżącej sesji są one uruchamiane niejawnie w oryginalnej sesji lub w podobnej sesji na komputerze źródłowym.
Przykłady
Przykład 1. Eksportowanie poleceń z programu PSSession
W tym przykładzie zostanie utworzona nowa usługa PSSession z komputera lokalnego na komputer Server01. Wszystkie polecenia, z wyjątkiem tych, które istnieją w bieżącej sesji, są eksportowane do modułu o nazwie Server01 na komputerze lokalnym. Eksport zawiera dane formatowania poleceń.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Polecenie New-PSSession
tworzy pssession na komputerze Server01. Plik PSSession jest przechowywany w zmiennej $S
. Polecenie Export-PSSession
eksportuje polecenia zmiennej $S
i formatuje dane do modułu Server01.
Przykład 2. Eksportowanie poleceń Get and Set
W tym przykładzie eksportuje wszystkie Get
polecenia i Set
z serwera.
$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
Te polecenia eksportują Get
polecenia i Set
z przystawki programu Microsoft Exchange Server na komputerze zdalnym do modułu programu Exchange w $PSHOME\Modules
katalogu na komputerze lokalnym.
Umieszczenie modułu $PSHOME\Modules
w katalogu sprawia, że jest dostępny dla wszystkich użytkowników komputera.
Przykład 3. Eksportowanie poleceń z komputera zdalnego
Ten przykład eksportuje polecenia cmdlet z programu PSSession na komputerze zdalnym i zapisuje je w module na komputerze lokalnym. Polecenia cmdlet z modułu są dodawane do bieżącej sesji, aby można było ich używać.
$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
Polecenie New-PSSession
tworzy pssession na komputerze Server01 i zapisuje go w zmiennej $S
. Polecenie Export-PSSession
eksportuje polecenia cmdlet, których nazwy zaczynają się od Testuj z programu PSSession do $S
modułu TestCmdlets na komputerze lokalnym.
Polecenie Remove-PSSession
cmdlet usuwa program PSSession z $S
bieżącej sesji. To polecenie pokazuje, że sesja PSSession nie musi być aktywna, aby używać poleceń zaimportowanych z sesji. Polecenie Import-Module
cmdlet dodaje polecenia cmdlet w module TestCmdlets do bieżącej sesji. Polecenie można uruchomić w dowolnej sesji w dowolnym momencie.
Polecenie Get-Help
cmdlet otrzymuje pomoc dotyczącą poleceń cmdlet, których nazwy zaczynają się od testu. Po dodaniu poleceń w module do bieżącej sesji możesz użyć Get-Help
poleceń cmdlet i Get-Command
, aby dowiedzieć się więcej o zaimportowanych poleceniach. Polecenie Test-Files
cmdlet zostało wyeksportowane z komputera Server01 i dodane do sesji. Polecenie Test-Files
cmdlet jest uruchamiane w sesji zdalnej na komputerze, z którego zostało zaimportowane polecenie. Program PowerShell tworzy sesję na podstawie informacji przechowywanych w module TestCmdlets.
Przykład 4. Eksportowanie i klonowanie poleceń w bieżącej sesji
Ten przykład eksportuje polecenia przechowywane w zmiennej do bieżącej sesji.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
To Export-PSSession
polecenie eksportuje wszystkie polecenia i wszystkie dane formatowania z psSession w zmiennej $S
do bieżącej sesji. Parametr AllowClobber zawiera polecenia o takich samych nazwach jak polecenia w bieżącej sesji.
Przykład 5. Eksportowanie poleceń z zamkniętego programu PSSession
W tym przykładzie pokazano, jak uruchomić wyeksportowane polecenia z opcjami specjalnymi, gdy program PSSession, który utworzył wyeksportowane polecenia, zostanie zamknięty.
Jeśli oryginalna sesja zdalna zostanie zamknięta po zaimportowaniu modułu, moduł użyje dowolnej otwartej sesji zdalnej łączącej się z komputerem źródłowym. Jeśli nie ma bieżącej sesji na komputerze źródłowym, moduł ponownie opublikuje sesję.
Aby uruchomić wyeksportowane polecenia z opcjami specjalnymi w sesji zdalnej, należy utworzyć sesję zdalną z tymi opcjami przed zaimportowanie modułu. New-PSSession
Używanie polecenia cmdlet z 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
Polecenie New-PSSessionOption
cmdlet tworzy obiekt PSSessionOption i zapisuje obiekt w zmiennej $Options
. Polecenie New-PSSession
tworzy pssession na komputerze Server01.
Parametr SessionOption używa obiektu przechowywanego w pliku $Options
. Sesja jest przechowywana w zmiennej $S
.
Polecenie Export-PSSession
cmdlet eksportuje polecenia z programu PSSession do $S
modułu Server01.
Polecenie Remove-PSSession
cmdlet usuwa plik PSSession w zmiennej $S
.
Polecenie New-PSSession
cmdlet tworzy nową konsolę PSSession łączącą się z komputerem Server01. Parametr SessionOption używa obiektu przechowywanego w pliku $Options
. Polecenie Import-Module
cmdlet importuje polecenia z modułu Server01. Polecenia w module są uruchamiane w programie PSSession na komputerze Server01.
Parametry
-AllowClobber
Eksportuje określone polecenia, nawet jeśli mają takie same nazwy jak polecenia w bieżącej sesji.
Jeśli eksportujesz polecenie o takiej samej nazwie jak polecenie w bieżącej sesji, wyeksportowane polecenie ukrywa lub zastępuje oryginalne polecenia. Aby uzyskać więcej informacji, zobacz about_Command_Precedence.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ArgumentList
Eksportuje wariant polecenia, który wynika z używania określonych argumentów (wartości parametrów).
Aby na przykład wyeksportować wariant Get-Item
polecenia na dysku certyfikatu (Cert:) w programie PSSession w pliku $S
, wpisz 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
Określa certyfikat klienta używany do podpisywania plików formatu (*). Format.ps1xml) lub pliki modułów skryptu (psm1) w utworzonym module Export-PSSession
. Wprowadź zmienną zawierającą certyfikat lub polecenie lub wyrażenie, które pobiera certyfikat.
Aby znaleźć certyfikat, użyj Get-PfxCertificate
polecenia cmdlet lub użyj Get-ChildItem
polecenia cmdlet na dysku Certyfikat (Cert:). Jeśli certyfikat jest nieprawidłowy lub nie ma wystarczającego urzędu, polecenie kończy się niepowodzeniem.
Type: | X509Certificate2 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandName
Eksportuje tylko polecenia z określonymi nazwami lub wzorcami nazw. Dozwolone są symbole wieloznaczne. Użyj polecenia CommandName lub jego aliasu, Name.
Domyślnie Export-PSSession
eksportuje wszystkie polecenia z psSession z wyjątkiem poleceń, które mają takie same nazwy jak polecenia w bieżącej sesji. Zapobiega to ukrywaniu lub zastępowaniu poleceń w bieżącej sesji. Aby wyeksportować wszystkie polecenia, nawet te, które ukrywają lub zastępują inne polecenia, użyj parametru AllowClobber .
Jeśli używasz parametru CommandName, pliki formatowania dla poleceń nie zostaną wyeksportowane, chyba że zostanie użyty parametr FormatTypeName. Podobnie, jeśli używasz parametru FormatTypeName , żadne polecenia nie są eksportowane, chyba że używasz parametru 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
Eksportuje tylko określone typy obiektów poleceń. Użyj parametru CommandType lub jego aliasu, Wpisz.
Dopuszczalne wartości tego parametru są następujące:
Alias
: wszystkie aliasy programu PowerShell w bieżącej sesji.All
: wszystkie typy poleceń. Jest to odpowiednik .Get-Command -Name *
Application
: wszystkie pliki inne niż pliki programu PowerShell w ścieżkach wymienionych w zmiennej środowiskowej Path ($env:path
), w tym .txt, .exe i .dll plików.Cmdlet
: polecenia cmdlet w bieżącej sesji. Polecenie cmdlet jest wartością domyślną.Configuration
: Konfiguracja programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Session_Configurations.ExternalScript
: Wszystkie pliki .ps1 w ścieżkach wymienionych w zmiennej środowiskowej Path ($env:path
).Filter
iFunction
: Wszystkie funkcje programu PowerShell.Script
Bloki skryptu w bieżącej sesji.Workflow
Przepływ pracy programu PowerShell. Aby uzyskać więcej informacji, zobacz about_Workflows.
Te wartości są definiowane jako wyliczenie oparte na flagach. Możesz połączyć wiele wartości ze sobą, aby ustawić wiele flag przy użyciu tego parametru. Wartości można przekazać do parametru CommandType jako tablicę wartości lub jako ciąg rozdzielany przecinkami tych wartości. Polecenie cmdlet połączy wartości przy użyciu operacji binary-OR. Przekazywanie wartości jako tablicy jest najprostszą opcją, a także umożliwia użycie uzupełniania tabulatorów na wartościach.
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
Określa typ kodowania dla pliku docelowego. Domyślna wartość to UTF8
.
Dopuszczalne wartości tego parametru są następujące:
ASCII
: używa zestawu znaków ASCII (7-bitowego).BigEndianUnicode
: używa formatu UTF-16 z kolejnością bajtów big-endian.Default
; Używa kodowania odpowiadającego aktywnej stronie kodu systemu.OEM
: używa kodowania odpowiadającego bieżącej stronie kodowej producenta OEM systemu.Unicode
: używa formatu UTF-16 z kolejnością bajtów little-endian.UTF7
: używa protokołu UTF-7.UTF8
: używa protokołu UTF-8.UTF32
: używa formatu UTF-32 z kolejnością bajtów 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
Zastępuje co najmniej jeden istniejący plik wyjściowy, nawet jeśli plik ma atrybut tylko do odczytu.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatTypeName
Eksportuje instrukcje formatowania tylko dla określonych typów programu Microsoft .NET Framework. Wprowadź nazwy typów. Domyślnie Export-PSSession
eksportuje instrukcje formatowania dla wszystkich typów programu .NET Framework, które nie znajdują się w przestrzeni nazw System.Management.Automation .
Wartość tego parametru musi być nazwą typu zwracanego przez Get-FormatData
polecenie w sesji, z której importowane są polecenia. Aby pobrać wszystkie dane formatowania w sesji zdalnej, wpisz *
.
Jeśli używasz parametru FormatTypeName , żadne polecenia nie są eksportowane, chyba że używasz parametru CommandName .
Jeśli używasz parametru CommandName, pliki formatowania dla poleceń nie zostaną wyeksportowane, chyba że zostanie użyty parametr FormatTypeName.
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedModule
Wartość może być nazwą modułu, pełną specyfikacją modułu lub ścieżką do pliku modułu.
Gdy wartość jest ścieżką, ścieżka może być w pełni kwalifikowana lub względna. Ścieżka względna jest rozpoznawana względem skryptu zawierającego instrukcję using.
Gdy wartość jest nazwą lub specyfikacją modułu, program PowerShell przeszukuje element PSModulePath dla określonego modułu.
Specyfikacja modułu to tabela skrótu zawierająca następujące klucze.
ModuleName
- Required Określa nazwę modułu.GUID
- Opcjonalnie Określa identyfikator GUID modułu.- Wymagane jest również określenie co najmniej jednego z trzech poniższych kluczy.
ModuleVersion
- Określa minimalną akceptowalną wersję modułu.MaximumVersion
- Określa maksymalną akceptowalną wersję modułu.RequiredVersion
- Określa dokładną, wymaganą wersję modułu. Nie można tego używać z innymi kluczami wersji.
Nie można określić parametru FullyQualifiedModule w tym samym poleceniu co parametr modułu. te dwa parametry wykluczają się wzajemnie.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
Eksportuje tylko polecenia w określonych przystawkach i modułach programu PowerShell. Wprowadź nazwy przystawki i modułów. Symbole wieloznaczne nie są dozwolone.
Aby uzyskać więcej informacji, zobacz Import-Module
i 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
Określa opcjonalną ścieżkę i nazwę modułu utworzonego przez Export-PSSession
program . Domyślna ścieżka to $HOME\Documents\WindowsPowerShell\Modules
. Ten parametr jest wymagany.
Jeśli podkatalog modułu lub którykolwiek z plików, które Export-PSSession
już istnieją, polecenie zakończy się niepowodzeniem. Aby zastąpić istniejące pliki, użyj parametru 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
Określa pssession, z którego polecenia są eksportowane. Wprowadź zmienną zawierającą obiekt sesji lub polecenie, które pobiera obiekt sesji, na przykład Get-PSSession
polecenie. Ten parametr jest wymagany.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
None
Nie można potokować obiektów do tego polecenia cmdlet.
Dane wyjściowe
To polecenie cmdlet zwraca listę plików składających się na utworzony moduł.
Uwagi
Program Windows PowerShell zawiera następujące aliasy dla programu Export-PSSession
:
epsn
Export-PSSession
korzysta z infrastruktury komunikacji zdalnej programu PowerShell. Aby użyć tego polecenia cmdlet, komputer musi być skonfigurowany do komunikacji zdalnie. Aby uzyskać więcej informacji, zobacz about_Remote_Requirements.
Nie można użyć Export-PSSession
polecenia , aby wyeksportować dostawcę programu PowerShell.
Wyeksportowane polecenia są uruchamiane niejawnie w programie PSSession, z którego zostały wyeksportowane. Szczegóły uruchamiania poleceń zdalnie są obsługiwane w całości przez program PowerShell. Wyeksportowane polecenia można uruchamiać tak samo, jak w przypadku uruchamiania poleceń lokalnych.
Export-ModuleMember
przechwytuje i zapisuje informacje o psSession w module, który eksportuje. Jeśli moduł PSSession, z którego wyeksportowano polecenia, zostanie zamknięty podczas importowania modułu i nie ma żadnych aktywnych psSessions na tym samym komputerze, polecenia w module próbują ponownie utworzyć psSession. Jeśli próba ponownego utworzenia pliku PSSession zakończy się niepowodzeniem, wyeksportowane polecenia nie zostaną uruchomione.
Informacje o sesji, które Export-ModuleMember
przechwytują i zapisuje w module, nie zawierają opcji sesji, takich jak te określone w $PSSessionOption
zmiennej preferencji lub przy użyciu parametru New-PSSession
SessionOption polecenia cmdlet , Enter-PSSession
lub Invoke-Command
. Jeśli oryginalne narzędzie PSSession zostanie zamknięte podczas importowania modułu, moduł użyje innego programu PSSession na tym samym komputerze, jeśli jest dostępny. Aby włączyć zaimportowane polecenia do uruchamiania w poprawnie skonfigurowanej sesji, utwórz sesję PSSession z opcjami, które chcesz wykonać przed zaimportowaniem modułu.
Aby znaleźć polecenia do wyeksportowania, Export-PSSession
użyj Invoke-Command
polecenia cmdlet , aby uruchomić Get-Command
polecenie w programie PSSession. Aby pobrać i zapisać dane formatowania dla poleceń, używa poleceń Get-FormatData
cmdlet i Export-FormatData
. Podczas uruchamiania polecenia mogą być wyświetlane komunikaty o błędach z Invoke-Command
poleceń , Get-Command
, Get-FormatData
i Export-FormatData
.Export-PSSession
Export-PSSession
Ponadto nie można wyeksportować poleceń z sesji, która nie zawiera Get-Command
poleceń cmdlet , Get-FormatData
, Select-Object
i Get-Help
.
Export-PSSession
Write-Progress
używa polecenia cmdlet do wyświetlania postępu polecenia . Może zostać wyświetlony pasek postępu, gdy polecenie jest uruchomione.
Wyeksportowane polecenia mają takie same ograniczenia jak inne polecenia zdalne, w tym brak możliwości uruchomienia programu za pomocą interfejsu użytkownika, na przykład Notatnik.
Ponieważ profile programu PowerShell nie są uruchamiane w programie PSSessions, polecenia, które dodaje profil do sesji, nie są dostępne dla Export-PSSession
programu . Aby wyeksportować polecenia z profilu, użyj Invoke-Command
polecenia , aby uruchomić profil w programie PSSession ręcznie przed wyeksportowaniem poleceń.
Utworzony moduł Export-PSSession
może zawierać plik formatowania, nawet jeśli polecenie nie importuje danych formatowania. Jeśli polecenie nie importuje danych formatowania, żadne utworzone pliki formatowania nie będą zawierać danych formatowania.