Receive-PSSession
Získá výsledky příkazů v odpojených relacích.
Syntaxe
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Tato rutina je dostupná jenom na platformě Windows.
Rutina Receive-PSSession
získá výsledky příkazů spuštěných v relacích PowerShellu (PSSession), které byly odpojeny. Pokud je relace aktuálně připojená, Receive-PSSession
získá výsledky příkazů, které byly spuštěny při odpojení relace. Pokud je relace stále odpojená, Receive-PSSession
se připojí k relaci, obnoví všechny příkazy, které byly pozastaveny, a získá výsledky příkazů spuštěných v relaci.
Tento cmdlet byl představen v PowerShellu 3.0.
Kromě příkazu Receive-PSSession
můžete použít také příkaz Connect-PSSession
nebo místo něj.
Receive-PSSession
se může připojit k jakékoli odpojené nebo znovu připojené relaci, která byla spuštěna v jiných relacích nebo v jiných počítačích.
Receive-PSSession
funguje na PSSessions, které byly záměrně odpojeny pomocí příkazu Disconnect-PSSession
nebo parametru Invoke-Command
InDisconnectedSession. Nebo se neúmyslně odpojilo přerušením sítě.
Pokud se pomocí rutiny Receive-PSSession
připojíte k relaci, ve které nejsou spuštěny nebo pozastaveny žádné příkazy, Receive-PSSession
se připojí k relaci, ale nevrátí žádný výstup nebo chyby.
Další informace o funkci Odpojené relace naleznete v tématu about_Remote_Disconnected_Sessions.
Některé příklady používají techniku splatting ke zkrácení délky řádku a zlepšení čitelnosti. Další informace naleznete v tématu about_Splatting.
Příklady
Příklad 1: Připojení k psSession
Tento příklad se připojí k relaci ve vzdáleném počítači a získá výsledky příkazů spuštěných v relaci.
Receive-PSSession -ComputerName Server01 -Name ITTask
Receive-PSSession
určuje vzdálený počítač s parametrem ComputerName. Parametr Name identifikuje relaci ITTask na počítači Server01. Příklad získává výsledky příkazů, které byly spuštěny v pracovní relaci ITTask.
Protože příkaz nepoužívá parametr OutTarget, výsledky se zobrazí na příkazovém řádku.
Příklad 2: Získání výsledků všech příkazů v odpojených relacích
Tento příklad získá výsledky všech příkazů spuštěných ve všech odpojených relacích na dvou vzdálených počítačích.
Pokud žádná relace nebyla odpojená a nespouští příkazy, Receive-PSSession
se k relaci nepřipojí a nevrací žádné výstupy ani chyby.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession
k určení vzdálených počítačů používá parametr ComputerName. Objekty se odesílají do kanálu Receive-PSSession
.
Příklad 3: Získání výsledků skriptu spuštěného v relaci
Tento příklad používá cmdlet Receive-PSSession
k získání výsledků skriptu, který byl spuštěn v relaci na vzdáleném počítači.
$parms = @{
ComputerName = "Server01"
Name = "ITTask"
OutTarget = "Job"
JobName = "ITTaskJob01"
Credential = "Domain01\Admin01"
}
Receive-PSSession @parms
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ITTaskJob01 Running True Server01
Příkaz používá parametry ComputerName a Name k identifikaci odpojené relace.
Pomocí parametru OutTarget s hodnotou Job směruje Receive-PSSession
k vrácení výsledků jako úlohy. Parametr JobName určuje název úlohy ve znovupřipojené relaci.
Parametr přihlašovacích údajů spustí příkaz Receive-PSSession
pomocí oprávnění správce domény.
Výstup ukazuje, že Receive-PSSession
vrátil výsledky jako úlohu v aktuální relaci. Pokud chcete získat výsledky úlohy, použijte příkaz Receive-Job
.
Příklad 4: Získání výsledků po výpadku sítě
Tento příklad používá rutinu Receive-PSSession
k získání výsledků úlohy po výpadku sítě, který přerušil připojení relace. PowerShell se automaticky pokusí znovu připojit relaci jednou za sekundu za další čtyři minuty a zruší úsilí pouze v případě, že všechny pokusy v čtyřminutovém intervalu selžou.
PS> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
8 AD Server01 Opened ADEndpoint Available
PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1
Running "New-ADResolve.ps1"
# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell None
8 AD Server01 Disconnected ADEndpoint None
PS> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ADJob Running True Server01
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell Busy
8 AD Server01 Opened ADEndpoint Available
Rutina New-PSSession
vytvoří relaci na počítači Serveru01 a uloží relaci do proměnné $s
. Proměnná $s
zobrazuje, že stav je otevřený a dostupnost je k dispozici. Tyto hodnoty označují, že jste připojeni k relaci a můžete v relaci spouštět příkazy.
Příkaz Invoke-Command
spustí skript v relaci uložený v proměnné $s
. Skript začne spouštět a vracet data, ale dojde k výpadku sítě, který přeruší relaci. Uživatel musí ukončit relaci a restartovat místní počítač.
Když se počítač restartuje, uživatel otevře PowerShell a spustí příkaz Get-PSSession
pro získání relací na počítači Server01. Výstup ukazuje, že relace AD stále existuje na počítači Server01. Stav označuje, že relace AD je odpojená. Hodnota Availability none (Žádná) značí, že relace není připojená k žádným klientským relacím.
Rutina Receive-PSSession
se znovu připojí k relaci AD a získává výsledky skriptu, který byl spuštěn v této relaci. Příkaz používá parametr OutTarget k vyžádání výsledků úlohy s názvem ADJob. Příkaz vrátí objekt úlohy a výstup indikuje, že skript je stále spuštěný.
Cmdlet Get-PSSession
slouží ke kontrole stavu úlohy. Výstup potvrdí, že se rutina Receive-PSSession
znovu připojila k relaci AD, která je teď otevřená a dostupná pro příkazy. A následně skript pokračuje v provádění a získává výsledky skriptu.
Příklad 5: Opětovné připojení k odpojeným relacím
Tento příklad používá rutinu Receive-PSSession
k opětovnému připojení k relacím, které byly záměrně odpojeny, a získá výsledky úloh spuštěných v relacích.
PS> $parms = @{
InDisconnectedSession = $true
ComputerName = "Server01", "Server02", "Server30"
FilePath = "\\Server12\Scripts\SharedScripts\Get-BugStatus.ps1"
Name = "BugStatus"
SessionOption = @{IdleTimeout = 86400000}
ConfigurationName = "ITTasks"
}
PS> Invoke-Command @parms
PS> exit
PS> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
8 ITTask Server02 Disconnected ITTasks None
2 ITTask Server30 Disconnected ITTasks None
PS> $Results = Receive-PSSession -Session $s
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Opened ITTasks Available
8 ITTask Server02 Opened ITTasks Available
2 ITTask Server30 Opened ITTasks Available
PS> $Results
Bug Report - Domain 01
----------------------
ComputerName BugCount LastUpdated
-------------- --------- ------------
Server01 121 Friday, December 30, 2011 5:03:34 PM
Rutina Invoke-Command
spustí skript na třech vzdálených počítačích. Vzhledem k tomu, že skript shromažďuje a shrnuje data z více databází, často trvá dokončení skriptu delší dobu. Příkaz používá InDisconnectedSession parametr, který spouští skripty a okamžitě odpojí relace. Parametr SessionOption rozšiřuje hodnotu IdleTimeout odpojené relace. Odpojené relace se považují za nečinné od okamžiku, kdy jsou odpojené. Je důležité nastavit časový limit nečinnosti dostatečně dlouho, aby se příkazy mohly dokončit a znovu se připojit k relaci.
IdleTimeout můžete nastavit pouze při vytváření PSSession a změnit jej můžete pouze, když se od něj odpojíte. Hodnotu IdleTimeout nemůžete změnit, když se připojujete k PSSession nebo přijímáte její výsledky. Po spuštění příkazu uživatel ukončí PowerShell a počítač zavře.
Následující den uživatel obnoví Windows, spustí PowerShell a použije Get-PSSession
k získání relací, ve kterých byly spuštěné skripty. Příkaz identifikuje relace podle názvu počítače, názvu relace a názvu konfigurace relace a uloží relace do proměnné $s
. Hodnota proměnné $s
je zobrazena a ukazuje, že relace jsou odpojené, ale nejsou zatíženy.
Cmdlet Receive-PSSession
se připojuje k relacím v proměnné $s
a získává jejich výsledky.
Příkaz uloží výsledky do proměnné $Results
. Proměnná $s
je zobrazena a ukazuje, že relace jsou připojené a dostupné pro příkazy.
Výsledky skriptu v proměnné $Results
jsou zobrazeny v konzoli PowerShell. Pokud je některý z výsledků neočekávaný, může uživatel spustit příkazy v relacích a prozkoumat původní příčinu.
Příklad 6: Spuštění úlohy v odpojené relaci
Tento příklad ukazuje, co se stane s úkolem spuštěným v odpojené relaci.
PS> $s = New-PSSession -ComputerName Server01 -Name Test
PS> $j = Invoke-Command -Session $s { 1..1500 | ForEach-Object {"Return $_"; sleep 30}} -AsJob
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Running True Server01
PS> $s | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server01 Disconnected Microsoft.PowerShell None
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Disconnected True Server01
PS> Receive-Job $j -Keep
Return 1
Return 2
PS> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
PS> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS> Receive-Job $j
Return 3
Return 4
Cmdlet New-PSSession
vytvoří testovací relaci na počítači Server01. Příkaz uloží relaci do proměnné $s
.
Cmdlet Invoke-Command
spustí příkaz v relaci proměnné $s
. Příkaz používá parametr AsJob ke spuštění příkazu jako úlohy a vytvoří objekt úlohy v aktuálním sezení.
Příkaz vrátí objekt úlohy uložený v proměnné $j
. Proměnná $j
zobrazí objekt úlohy.
Objekt relace v proměnné $s
se odešle do kanálu do Disconnect-PSSession
a následně se relace odpojí.
Zobrazí se proměnná $j
a zobrazí účinek odpojení objektu úlohy v proměnné $j
. Stav úlohy je nyní odpojen.
Receive-Job
se spustí jako úloha pomocí proměnné $j
. Výstup ukazuje, že úloha začala vracet výstup před tím, než byly relace a úloha odpojeny.
Cmdlet Connect-PSSession
se spouští ve stejné relaci klienta. Příkaz se znovu připojí k testovací relaci na počítači Server01 a uloží relaci do proměnné $s2
.
Cmdlet Receive-PSSession
získá výsledky úlohy, která byla spuštěna v relaci. Vzhledem k tomu, že se příkaz spustí ve stejné relaci, Receive-PSSession
vrátí výsledky jako úlohu automaticky a použije znovu stejný objekt úlohy. Příkaz uloží úlohu do proměnné $j2
. Cmdlet Receive-Job
získá výsledky úlohy v proměnné $j
.
Parametry
-AllowRedirection
Označuje, že tato rutina umožňuje přesměrování tohoto připojení na alternativní identifikátor URI (Uniform Resource Identifier).
Pokud použijete parametr ConnectionURI, vzdálený cíl může vrátit pokyn k přesměrování na jiný identifikátor URI. PowerShell ve výchozím nastavení nesměruje připojení, ale pomocí tohoto parametru ho můžete přesměrovat.
Můžete také omezit počet přesměrování připojení změnou nastavení hodnoty možnosti MaximumConnectionRedirectionCount relace. Použijte parametr MaximumRedirection rutiny New-PSSessionOption
nebo nastavte vlastnost MaximumConnectionRedirectionCount proměnné předvolby $PSSessionOption
. Výchozí hodnota je 5.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ApplicationName
Specifikuje aplikaci. Tato rutina se připojí pouze k relacím, které používají zadanou aplikaci.
Zadejte segment názvu aplikace jako URI pro připojení. Například v následující adrese URI připojení je WSMan jménem aplikace: http://localhost:5985/WSMAN
.
Název aplikace relace je uložen v Runspace.ConnectionInfo.AppName vlastnost relace.
Hodnota parametru slouží k výběru a filtrování relací. Nezmění aplikaci, kterou relace používá.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Authentication
Určuje mechanismus, který se používá k ověření přihlašovacích údajů uživatele v příkazu, aby se znovu připojil k odpojené relaci. Přijatelné hodnoty pro tento parametr jsou:
- Výchozí
- Základní
- Credssp
- Přehled
- Kerberos
- Vyjednávat
- NegotiateWithImplicitCredential
Výchozí hodnota je Default.
Další informace o hodnotách tohoto parametru naleznete v tématu AuthenticationMechanism – výčet.
Opatrnost
Ověřování pomocí zprostředkovatele podpory zabezpečení přihlašovacích údajů (CredSSP), kdy jsou přihlašovací údaje uživatele předány vzdálenému počítači pro ověření, je navrženo pro příkazy, které vyžadují ověření pro více než jeden prostředek, například při přístupu k vzdálenému síťovému sdílenému úložišti. Tento mechanismus zvyšuje riziko zabezpečení vzdálené operace. Pokud dojde k ohrožení zabezpečení vzdáleného počítače, dají se k řízení síťové relace použít přihlašovací údaje, které jsou mu předány.
Typ: | AuthenticationMechanism |
Přípustné hodnoty: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Default |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-CertificateThumbprint
Určuje certifikát digitálního veřejného klíče (X509) uživatelského účtu, který má oprávnění k připojení k odpojené relaci. Zadejte kryptografický otisk certifikátu.
Certifikáty se používají při ověřování na základě klientských certifikátů. Certifikáty je možné mapovat jenom na místní uživatelské účty a nepracují s účty domény.
Pokud chcete získat kryptografický otisk certifikátu, použijte příkaz Get-Item
nebo Get-ChildItem
na jednotce PowerShellu Cert:
.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ComputerName
Určuje počítač, na kterém je uložena odpojená relace. Relace se ukládají na počítači, který je na straně serveru, nebo na přijímajícím koncovém zařízení připojení. Výchozí hodnota je místní počítač.
Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény (FQDN) jednoho počítače.
Zástupné znaky nejsou povolené. Chcete-li zadat místní počítač, zadejte název počítače, tečku (.
), $Env:COMPUTERNAME
nebo localhost.
Typ: | String |
Aliasy: | Cn |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-ConfigurationName
Určuje název konfigurace relace. Tato rutina se připojuje pouze k relacím, které používají zadanou konfiguraci relace.
Zadejte název konfigurace nebo plně kvalifikovanou URI prostředku pro konfiguraci relace. Pokud zadáte pouze název konfigurace, předzálohuje se následující identifikátor URI schématu:
http://schemas.microsoft.com/powershell
.
Název konfigurace relace je uložen v ConfigurationName vlastnosti relace.
Hodnota parametru slouží k výběru a filtrování relací. Nezmění konfiguraci relace, kterou relace používá.
Další informace o konfiguracích relací najdete v tématu about_Session_Configurations.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Confirm
Před spuštěním cmdletu vás vyzve k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-ConnectionUri
Určuje identifikátor URI, který definuje koncový bod připojení, který se použije k opětovnému připojení k odpojené relaci.
Identifikátor URI musí být plně kvalifikovaný. Formát řetězce je následující:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Výchozí hodnota je následující:
http://localhost:5985/WSMAN
Pokud nezadáte identifikátor URI připojení, můžete použít parametry UseSSL, ComputerName, Porta ApplicationName k určení hodnot URI připojení.
Platné hodnoty pro segment Transport identifikátoru URI jsou HTTP a HTTPS. Pokud zadáte identifikátor URI připojení s přenosovým segmentem, ale nezadáte port, relace se vytvoří se standardními porty: 80 pro HTTP a 443 pro HTTPS. Pokud chcete použít výchozí porty pro vzdálené komunikace PowerShellu, zadejte port 5985 pro HTTP nebo 5986 pro HTTPS.
Pokud cílový počítač přesměruje připojení na jiný identifikátor URI, PowerShell zabrání přesměrování, pokud v příkazu nepoužijete parametr AllowRedirection.
Typ: | Uri |
Aliasy: | URI, CU |
Position: | 0 |
Default value: | http://localhost:5985/WSMAN |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Credential
Určuje uživatelský účet, který má oprávnění k připojení k odpojené relaci. Výchozí hodnota je aktuální uživatel.
Zadejte uživatelské jméno, například User01 nebo Domain01\User01, nebo zadejte objekt PSCredential vygenerovaný rutinou Get-Credential
. Pokud zadáte uživatelské jméno, zobrazí se výzva k zadání hesla.
Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.
Poznámka
Další informace o ochraně dat SecureString najdete v tématu Jak zabezpečený je SecureString?.
Typ: | PSCredential |
Position: | Named |
Default value: | Current user |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Id
Určuje ID relace, která byla odpojena. Parametr ID funguje pouze v případech, kdy byla odpojená relace dříve připojena k aktuální relaci.
Tento parametr je platný, ale není efektivní, pokud je relace uložena v místním počítači, ale nebyla připojena k aktuální relaci.
Typ: | Int32 |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-InstanceId
Určuje ID instance odpojené relace. ID instance je identifikátor GUID, který jednoznačně identifikuje PSSession na místním nebo vzdáleném počítači. ID instance je uloženo v InstanceId vlastnost PSSession.
Typ: | Guid |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-JobName
Určuje přívětivý název úlohy, kterou Receive-PSSession
vrátí.
Receive-PSSession
vrátí úlohu, když hodnota parametru OutTarget je Úloha nebo úloha spuštěná v odpojené relaci byla spuštěna v aktuální relaci.
Pokud byla úloha spuštěná v odpojené relaci spuštěna v aktuální relaci, PowerShell znovu použije původní objekt úlohy v relaci a ignoruje hodnotu JobName parametru.
Pokud byla úloha spuštěná v odpojené relaci spuštěna v jiné relaci, PowerShell vytvoří nový objekt úlohy. Používá výchozí název, ale tento parametr můžete použít ke změně názvu.
Pokud výchozí hodnota nebo explicitní hodnota parametru OutTarget není Job, příkaz bude úspěšný, ale JobName parametr nemá žádný vliv.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Name
Určuje přátelský název odpojené relace.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-OutTarget
Určuje způsob vrácení výsledků relace. Přijatelné hodnoty pro tento parametr jsou:
- práce. Vrátí výsledky asynchronně v objektu úlohy. Pomocí parametru JobName můžete zadat název nebo nový název úlohy.
- hostitele . Vrátí výsledky na příkazový řádek (synchronně). Pokud se příkaz obnoví nebo se výsledky skládají z velkého počtu objektů, může se odpověď zpozdit.
Výchozí hodnota parametru OutTarget je Host. Pokud byl příkaz přijatý v odpojené relaci spuštěn v aktuální relaci, výchozí hodnota parametru OutTarget je formulář, ve kterém byl příkaz spuštěn. Pokud se příkaz spustil jako úloha, ve výchozím nastavení se vrátí jako úloha. V opačném případě se ve výchozím nastavení vrátí do hostitelského programu.
Hostitelský program obvykle zobrazuje vrácené objekty na příkazovém řádku bez zpoždění, ale toto chování se může lišit.
Typ: | OutTarget |
Přípustné hodnoty: | Default, Host, Job |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Port
Určuje síťový port vzdáleného počítače, který se používá k opětovnému připojení k relaci. Aby se bylo možné připojit ke vzdálenému počítači, musí tento počítač naslouchat na portu, který připojení používá. Výchozí porty jsou 5985, což je port WinRM pro HTTP a 5986, což je port WinRM pro HTTPS.
Před použitím alternativního portu musíte nakonfigurovat naslouchací proces WinRM na vzdáleném počítači tak, aby naslouchal na tomto portu. Pokud chcete nakonfigurovat naslouchací proces, na příkazovém řádku PowerShellu zadejte následující dva příkazy:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Nepoužívejte parametr Port, pokud to není nutné. Port nastavený v příkazu se vztahuje na všechny počítače nebo relace, na kterých se příkaz spouští. Alternativní nastavení portu může zabránit spuštění příkazu na všech počítačích.
Typ: | Int32 |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Session
Určuje odpojenou relaci. Zadejte proměnnou, která obsahuje PSSession, nebo příkaz, který vytvoří nebo získá PSSession, například příkaz Get-PSSession
.
Typ: | PSSession |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-SessionOption
Určuje pokročilé možnosti relace. Zadejte objekt SessionOption, například objekt, který vytvoříte pomocí příkazu New-PSSessionOption
, nebo tabulku hash, kde jsou klíče názvy možností relace a hodnoty jsou hodnoty možností relace.
Výchozí hodnoty možností jsou určeny hodnotou proměnné předvoleb $PSSessionOption
, pokud je nastavená. V opačném případě se výchozí hodnoty vytvoří pomocí možností nastavených v konfiguraci relace.
Hodnoty možností relace mají přednost před výchozími hodnotami relace nastavenými v proměnné předvoleb $PSSessionOption
a v konfiguraci relace. Nemají však přednost před maximálními hodnotami, kvótami nebo limity nastavenými v konfiguraci relace.
Popis možností relace, které obsahují výchozí hodnoty, najdete v tématu New-PSSessionOption
. Informace o proměnné předvoleb $PSSessionOption najdete v dokumentu about_Preference_Variables. Další informace o konfiguracích relací najdete v tématu about_Session_Configurations.
Typ: | PSSessionOption |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseSSL
Označuje, že tato rutina používá protokol SSL (Secure Sockets Layer) pro připojení k odpojené relaci. Ve výchozím nastavení se ssl nepoužívá.
WS-Management šifruje veškerý obsah PowerShellu přenášený přes síť. useSSL je další ochrana, která odesílá data přes připojení HTTPS místo připojení HTTP.
Pokud použijete tento parametr a ssl není k dispozici na portu, který se používá pro příkaz, příkaz selže.
Typ: | SwitchParameter |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co se stane, když se cmdlet spustí. Cmdlet se nespustil.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Objekty relace můžete této rutině předat, například objekty vrácené rutinou Get-PSSession
.
Id relací můžete do tohoto cmdletu přesměrovat.
Pomocí této rutiny můžete předávat ID instancí relací.
Do této rutiny můžete generovat názvy relací.
Výstupy
Pokud je hodnota nebo výchozí hodnota parametru OutTargetJob
, Receive-PSSession
vrátí objekt úlohy.
Tato rutina vrátí výsledky příkazů, které byly spuštěny v odpojené relaci, pokud nějaké existují.
Poznámky
PowerShell obsahuje následující aliasy pro Receive-PSSession
:
- Všechny platformy:
rcsn
Tento cmdlet je dostupný jenom na platformách Windows.
Receive-PSSession
získá výsledky pouze z relací, které byly odpojeny. Odpojit a znovu připojit je možné pouze relace, které jsou spojeny s počítači provozujícími PowerShell 3.0 nebo novější verze, případně na nich končí.
Pokud příkazy spuštěné v odpojené relaci negenerovaly výsledky nebo pokud se výsledky už vrátily do jiné relace, Receive-PSSession
nevygeneruje žádný výstup.
Režim ukládání výstupu relace do vyrovnávací paměti určuje, jak příkazy v relaci spravují výstup při odpojení relace. Pokud je hodnota možnosti relace OutputBufferingMode nastavena na Drop a výstupní vyrovnávací paměť je plná, příkaz začne odstraňovat výstup.
Receive-PSSession
tento výstup nejde obnovit. Další informace o možnosti režimu vyrovnávací paměti výstupu najdete v článcích nápovědy pro rutiny New-PSSessionOption a New-PSTransportOption.
Hodnotu časového limitu nečinnosti u PSSession nemůžete změnit, když se připojíte k PSSession nebo obdržíte výsledky. Parametr SessionOption u Receive-PSSession
bere objekt SessionOption, který má hodnotu IdleTimeout. Hodnota IdleTimeout objektu SessionOption a hodnota IdleTimeout proměnné $PSSessionOption
se však ignorují, když se připojí k PSSession nebo obdrží výsledky.
- Při vytváření PSSessionmůžete nastavit a změnit časový limit nečinnosti PSSession, pomocí rutin
New-PSSession
neboInvoke-Command
, a také při odpojení od PSSession. - Vlastnost IdleTimeout u PSSession je pro odpojené relace klíčová, protože určuje, jak dlouho je odpojená relace udržována na vzdáleném počítači. Odpojené relace se považují za nečinné od okamžiku, kdy jsou odpojené, i když jsou příkazy spuštěné v odpojené relaci.
Pokud spustíte úlohu ve vzdálené relaci pomocí parametru AsJob rutiny Invoke-Command
, objekt úlohy se vytvoří v aktuální relaci, i když úloha běží ve vzdálené relaci. Pokud vzdálenou relaci odpojíte, objekt úlohy v aktuální relaci se od úlohy odpojí. Objekt úlohy obsahuje všechny výstupy, které do něj byly vráceny, ale z úlohy v odpojené relaci neobdrží nové výstupy.
Pokud se k relaci, která obsahuje spuštěnou úlohu, připojí jiný klient, výsledky doručované do původního objektu úlohy v původní relaci nebudou v nově připojené relaci k dispozici. V relaci opětovného připojení jsou k dispozici pouze výsledky, které nebyly doručeny do původního objektu úlohy.
Podobně platí, že pokud spustíte skript v relaci a pak se odpojíte, výsledky, které skript doručí do relace před odpojením, nebudou k dispozici jinému klientovi, který se k relaci připojí.
Pokud chcete zabránit ztrátě dat v relacích, které chcete odpojit, použijte parametr InDisconnectedSession cmdletu Invoke-Command
. Vzhledem k tomu, že tento parametr brání vrácení výsledků do aktuální relace, jsou při opětovném připojení relace k dispozici všechny výsledky.
Kromě toho můžete ztrátě dat zabránit použitím rutiny Invoke-Command
ke spuštění příkazu Start-Job
ve vzdálené relaci. V tomto případě se objekt úlohy vytvoří ve vzdálené relaci. K získání výsledků úlohy nemůžete použít rutinu Receive-PSSession
. Místo toho se pomocí rutiny Connect-PSSession
připojte k relaci a pak pomocí rutiny Invoke-Command
spusťte v relaci příkaz Receive-Job
.
Pokud je relace obsahující spuštěnou úlohu odpojena a znovu připojena, původní objekt úlohy se znovu použije pouze v případě, že je úloha odpojena a znovu připojena ke stejné relaci a příkaz k opětovnému připojení nezadá nový název úlohy. Pokud se relace znovu připojí k jiné relaci klienta nebo je zadán nový název úlohy, PowerShell pro novou relaci vytvoří nový objekt úlohy.
Když odpojíte PSSession, stav relace je Odpojený a dostupnost je Žádná.
- Hodnota vlastnosti State je vázaná na aktuální relaci. Hodnota Odpojeno znamená, že PSSession není připojen k aktuální relaci. Neznamená to ale, že PSSession je odpojený ze všech relací. Může být připojeno k jiné relaci. Pokud chcete zjistit, jestli se k relaci můžete připojit nebo znovu připojit, použijte vlastnost Availability.
- Hodnota Dostupnost None znamená, že se můžete připojit k relaci. Hodnota Zaneprázdněn označuje, že se nemůžete připojit k PSSession , protože je připojen k jiné relaci.
- Další informace o hodnotách State vlastnost relace naleznete v tématu RunspaceState.
- Další informace o hodnotách vlastnosti Availability relací naleznete v tématu RunspaceAvailability.