Receive-PSSession

Získá výsledky příkazů v odpojených relacích.

Syntax

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 připojí se k relaci, obnoví všechny pozastavené příkazy a získá výsledky příkazů spuštěných v relaci.

Tato rutina byla zavedena v PowerShellu 3.0.

Kromě příkazu nebo místo něj Connect-PSSession můžete použít Receive-PSSession příkaz. 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 na jiných počítačích.

Receive-PSSession funguje na psSessions , které byly záměrně odpojeny pomocí Disconnect-PSSession rutiny nebo parametru Invoke-CommandInDisconnectedSession . Nebo se neúmyslně odpojí přerušením sítě.

Pokud se pomocí rutiny Receive-PSSession připojíte k relaci, ve které nejsou spuštěné nebo pozastavené žádné příkazy, Receive-PSSession připojí se k relaci, ale nevrátí žádný výstup nebo chyby.

Další informace o funkci Odpojené relace najdete v tématu about_Remote_Disconnected_Sessions.

Některé příklady používají splatting ke snížení délky čáry a zlepšení čitelnosti. Další informace najdete v tématu about_Splatting.

Příklady

Příklad 1: Připojení k PSSession

Tento příklad se připojí k relaci na 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

Určuje Receive-PSSession vzdálený počítač pomocí parametru ComputerName . Parametr Name identifikuje relaci ITTask na počítači Server01. Příklad získá výsledky příkazů, které byly spuštěny v relaci ITTask.

Vzhledem k tomu, že příkaz nepoužívá parametr OutTarget , zobrazí se výsledky 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 některá relace nebyla odpojena nebo nespouštět příkazy, Receive-PSSession nepřipojí se k relaci a nevrací žádný výstup ani chyby.

Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession

Get-PSSession používá parametr ComputerName k určení vzdálených počítačů. Objekty se posí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á rutinu Receive-PSSession k získání výsledků skriptu, který byl spuštěný v relaci vzdáleného počítače.

$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. Používá parametr OutTarget s hodnotou Job k nasměrování Receive-PSSession , aby vrátil výsledky jako úlohu. Parametr JobName určuje název úlohy v znovupřipojené relaci. Parametr Credential spustí Receive-PSSession příkaz pomocí oprávnění správce domény.

Výstup ukazuje, že Receive-PSSession se v aktuální relaci vrátily výsledky jako úloha. 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 poté, co výpadek sítě naruší připojení relace. PowerShell se automaticky pokusí relaci znovu připojit jednou za sekundu po dobu následujících čtyř minut a tuto snahu opustí pouze v případě, že všechny pokusy ve č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 Server01 a uloží relaci do $s proměnné. Proměnná $s zobrazí, že stav je Otevřený a Dostupnost je K dispozici. Tyto hodnoty označují, že jste připojení k relaci a můžete v relaci spouštět příkazy.

Rutina Invoke-Command spustí skript v relaci v $s proměnné. Skript se 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 spustí PowerShell a spustí Get-PSSession příkaz pro získání relací na počítači Server01. Výstup ukazuje, že relace AD stále existuje v počítači Server01. Stav označuje, že relace AD je odpojená. Hodnota Dostupnost None označuje, že relace není připojená k žádným klientským relacím.

Rutina se Receive-PSSession znovu připojí k relaci AD a získá výsledky skriptu, který se spustil v relaci. Příkaz používá parametr OutTarget k vyžádání výsledků v úloze s názvem ADJob. Příkaz vrátí objekt úlohy a výstup indikuje, že skript je stále spuštěný.

Rutina Get-PSSession se používá 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 skript obnovil 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ání výsledků ú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í, jeho dokončení často trvá delší dobu. Příkaz použije parametr InDisconnectedSession , který spustí 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 na dostatečně dlouhou dobu, aby se příkazy mohly dokončit a mohli se znovu připojit k relaci. IdleTimeout můžete nastavit jenom při vytváření psSession a změnit ho, jenom když se od něj odpojíte. Hodnotu IdleTimeout nemůžete změnit, když se připojíte k psSession nebo obdržíte její výsledky. Po spuštění příkazu uživatel ukončí PowerShell a zavře počítač.

Další den uživatel obnoví Windows, spustí PowerShell a použije Get-PSSession k získání relací, ve kterých byly skripty spuštěné. Příkaz identifikuje relace podle názvu počítače, názvu relace a názvu konfigurace relace a uloží relace do $s proměnné. Zobrazí se $s hodnota proměnné, která ukazuje, že relace jsou odpojené, ale nejsou zaneprázdněné.

Rutina Receive-PSSession se připojí k relacím v $s proměnné a získá jejich výsledky. Příkaz uloží výsledky do $Results proměnné. Proměnná $s se zobrazí a ukazuje, že relace jsou připojené a dostupné pro příkazy.

Výsledek skriptu v $Results proměnné se zobrazí v konzole PowerShellu. 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 úlohou spuštěnou 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

Rutina New-PSSession vytvoří testovací relaci na počítači Server01. Příkaz uloží relaci do $s proměnné.

Rutina Invoke-Command spustí příkaz v relaci v $s proměnné. Příkaz použije parametr AsJob ke spuštění příkazu jako úlohy a vytvoří objekt úlohy v aktuální relaci. Příkaz vrátí objekt úlohy, který je uložen v $j proměnné. Proměnná $j zobrazí objekt úlohy.

Objekt relace v $s proměnné se odešle do kanálu a Disconnect-PSSession relace se odpojí.

Proměnná $j se zobrazí a zobrazí efekt odpojení objektu úlohy v $j proměnné. Stav úlohy je teď Odpojeno.

Spustí Receive-Job se na úloze v $j proměnné. Výstup ukazuje, že úloha začala vracet výstup před relací a úloha byla odpojena.

Rutina 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 $s2 proměnné.

Rutina Receive-PSSession získá výsledky úlohy, která byla spuštěna v relaci. Vzhledem k tomu, že příkaz se spouští ve stejné relaci, Receive-PSSession vrátí výsledky ve výchozím nastavení jako úlohu a znovu použije stejný objekt úlohy. Příkaz uloží úlohu do $j2 proměnné. Rutina Receive-Job získá výsledky úlohy v $j proměnné.

Parametry

-AllowRedirection

Označuje, že tato rutina umožňuje přesměrování tohoto připojení na alternativní identifikátor URI (Uniform Resource Identifier).

Při použití parametru ConnectionURI může vzdálený cíl vrátit pokyn k přesměrování na jiný identifikátor URI. PowerShell ve výchozím nastavení nepřesměrovává připojení, ale pomocí tohoto parametru ho můžete povolit k přesměrování připojení.

Můžete také omezit počet přesměrování připojení změnou hodnoty možnosti relace MaximumConnectionRedirectionCount . Použijte parametr MaximumRedirection rutiny New-PSSessionOption nebo nastavte vlastnost $PSSessionOptionMaximumConnectionRedirectionCount proměnné předvolby. Výchozí hodnota je 5.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Určuje aplikaci. Tato rutina se připojuje pouze k relacím, které používají zadanou aplikaci.

Zadejte segment názvu aplikace v identifikátoru URI připojení. Například v následujícím identifikátoru URI připojení je WSMan název aplikace: http://localhost:5985/WSMAN.

Název aplikace relace je uložen ve vlastnosti Runspace.ConnectionInfo.AppName relace.

Hodnota parametru se používá k výběru a filtrování relací. Nemění aplikaci, kterou relace používá.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Určuje mechanismus, který se používá k ověření přihlašovacích údajů uživatele v příkazu pro opětovné připojení k odpojené relaci. Tento parametr přijímá tyto hodnoty:

  • Výchozí
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Výchozí hodnota je Výchozí.

Další informace o hodnotách tohoto parametru najdete v tématu AuthenticationMechanism – výčet.

Upozornění

Ověřování CredSSP (Credential Security Support Provider), při kterém se předávají přihlašovací údaje uživatele do vzdáleného počítače k ověření, je určeno pro příkazy, které vyžadují ověření u více než jednoho prostředku, jako je například přístup ke vzdálené sdílené síťové složce. Tento mechanismus zvyšuje bezpečnostní riziko vzdálené operace. Pokud dojde k ohrožení zabezpečení vzdáleného počítače, mohou být k řízení síťové relace použity přihlašovací údaje, které jsou mu předány.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Určuje certifikát digitálního veřejného klíče (X509) uživatelského účtu, který má oprávnění pro 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 se dají mapovat jenom na místní uživatelské účty a nefungují s doménovými účty.

Kryptografický otisk certifikátu získáte pomocí Get-Item příkazu nebo Get-ChildItem na jednotce PowerShellu Cert: .

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Určuje počítač, ve kterém je odpojená relace uložena. Relace se ukládají na počítač, který je na straně serveru nebo na straně příjemce připojení. Výchozí hodnotou 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:COMPUTERNAMEnebo localhost.

Type:String
Aliases:Cn
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters: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ě kvalifikovaný identifikátor URI prostředku pro konfiguraci relace. Pokud zadáte pouze název konfigurace, předsadí se následující identifikátor URI schématu:

http://schemas.microsoft.com/powershell.

Název konfigurace relace je uložen ve vlastnosti ConfigurationName relace.

Hodnota parametru se používá k výběru a filtrování relací. Nezmění konfiguraci relace, kterou relace používá.

Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

Type:String
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters: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 k zadání hodnot identifikátoru URI připojení použít parametry UseSSL, ComputerName, Port a ApplicationName .

Platné hodnoty pro segment Transport v identifikátoru URI jsou HTTP a HTTPS. Pokud zadáte identifikátor URI připojení se segmentem Přenos, ale nezadáte port, vytvoří se relace se standardními porty: 80 pro HTTP a 443 pro HTTPS. Pokud chcete pro vzdálené komunikace PowerShellu použít výchozí porty, 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 ho zabrání, pokud v příkazu nepoužijete parametr AllowRedirection .

Type:Uri
Aliases:URI, CU
Position:0
Default value:http://localhost:5985/WSMAN
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Určuje uživatelský účet, který má oprávnění pro připojení k odpojené relaci. Ve výchozím nastavení je to 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?.

Type:PSCredential
Position:Named
Default value:Current user
Accept pipeline input:False
Accept wildcard characters:False

-Id

Určuje ID odpojené relace. 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í platný, pokud je relace uložená v místním počítači, ale nebyla připojená k aktuální relaci.

Type:Int32
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Určuje ID instance odpojené relace. ID instance je identifikátor GUID, který jednoznačně identifikuje instanci PSSession na místním nebo vzdáleném počítači. ID instance je uloženo ve vlastnosti InstanceIDrelace PSSession.

Type:Guid
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-JobName

Určuje popisný název úlohy, která Receive-PSSession se vrátí.

Receive-PSSession vrátí úlohu, pokud hodnota parametru OutTarget je Job nebo pokud byla úloha spuštěná v odpojené relaci spuštěná v aktuální relaci.

Pokud se úloha spuštěná v odpojené relaci spustila v aktuální relaci, PowerShell znovu použije původní objekt úlohy v relaci a ignoruje hodnotu parametru JobName .

Pokud se úloha spuštěná v odpojené relaci spustila 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 parametr JobName nemá žádný vliv.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Name

Určuje popisný název odpojené relace.

Type:String
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-OutTarget

Určuje, jak se vrátí výsledky relace. Tento parametr přijímá tyto hodnoty:

  • Úloha. Vrátí výsledky asynchronně v objektu úlohy. Pomocí parametru JobName můžete zadat název nebo nový název úlohy.
  • Hostitel. Vrátí výsledky do příkazového řádku (synchronně). Pokud se příkaz obnovuje nebo se výsledky skládají z velkého počtu objektů, může být odpověď zpožděná.

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í hodnotou 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. Jinak se ve výchozím nastavení vrátí do hostitelského programu.

Obvykle hostitelský program zobrazí vrácené objekty na příkazovém řádku bez zpoždění, ale toto chování se může lišit.

Type:OutTarget
Accepted values:Default, Host, Job
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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. Pokud se chcete připojit ke vzdálenému počítači, musí 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, zadejte na příkazovém řádku PowerShellu 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\>

Pokud to není nutné, nepoužívejte parametr Port . 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 bránit spuštění příkazu na všech počítačích.

Type:Int32
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Session

Určuje odpojenou relaci. Zadejte proměnnou, která obsahuje instanci PSSession , nebo příkaz, který vytvoří nebo získá instanci PSSession, například Get-PSSession příkaz .

Type:PSSession
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Určuje upřesňující možnosti pro relaci. Zadejte objekt SessionOption , například objekt, který vytvoříte pomocí New-PSSessionOption rutiny, nebo tabulku hash, ve které jsou klíče názvy možností relace a hodnoty jsou hodnoty možnosti relace.

Výchozí hodnoty možností jsou určeny hodnotou $PSSessionOption proměnné předvoleb, pokud je nastavená. V opačném případě jsou výchozí hodnoty stanoveny možnostmi nastavenými v konfiguraci relace.

Hodnoty možností relace mají přednost před výchozími hodnotami pro relace nastavené v $PSSessionOption proměnné předvoleb a v konfiguraci relace. Nemají ale přednost před maximálními hodnotami, kvótami nebo limity nastavenými v konfiguraci relace.

Popis možností relace, které zahrnují výchozí hodnoty, najdete v tématu New-PSSessionOption. Informace o proměnné předvolby $PSSessionOption najdete v tématu about_Preference_Variables. Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

Type:PSSessionOption
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters: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 protokol SSL nepoužívá.

WS-Management šifruje veškerý obsah PowerShellu přenášený přes síť. UseSSL je dodatečná ochrana, která odesílá data přes připojení HTTPS místo připojení HTTP.

Pokud použijete tento parametr a na portu, který se používá pro příkaz, není k dispozici SSL, příkaz selže.

Type:SwitchParameter
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSSession

Do této rutiny můžete připojit objekty relace, například objekty vrácené rutinou Get-PSSession .

Int32

Id relace můžete do této rutiny převést.

Guid

Id instancí relací můžete zadat pomocí této rutiny.

String

Do této rutiny můžete převést názvy relací.

Výstupy

System.Management.Automation.Job or PSObject

Tato rutina vrátí výsledky příkazů, které se spustily v odpojené relaci, pokud nějaké byly. Pokud je hodnota nebo výchozí hodnota parametru OutTarget Job, Receive-PSSession vrátí objekt úlohy. V opačném případě vrátí objekty, které představují výsledky daného příkazu.

Poznámky

PowerShell obsahuje následující aliasy pro Receive-PSSession:

  • Všechny platformy:
    • rcsn

Tato rutina je dostupná jenom na platformách Windows.

Receive-PSSession získá výsledky pouze z relací, které byly odpojeny. Odpojit a znovu připojit se dají jenom relace, které jsou připojené k počítačům s PowerShellem 3.0 nebo novějšími verzemi nebo na kterých 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 nevygenerují žá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. Když hodnota OutputBufferingMode relace je Drop a výstupní vyrovnávací paměť je plná, příkaz začne odstraňovat výstup. Receive-PSSession Nemůže obnovit tento výstup. Další informace o možnosti režimu ukládání výstupu do vyrovnávací paměti najdete v článcích nápovědy pro rutiny New-PSSessionOption a New-PSTransportOption .

Hodnotu časového limitu nečinnosti relace PSSession nemůžete změnit, když se připojíte k pssession nebo obdržíte výsledky. SessionOption parametr přebírá Receive-PSSessionSessionOption objekt, který má hodnotu IdleTimeout. Hodnota IdleTimeout objektu SessionOption a hodnota$PSSessionOption IdleTimeout proměnné jsou ignorovány, když se připojí k PSSession nebo obdrží výsledky.

  • Časový limit nečinnosti relace PSSession můžete nastavit a změnit, když vytvoříte relaci PSSession, pomocí New-PSSession rutin nebo Invoke-Command a když se od této relace odpojíte.
  • Vlastnost IdleTimeoutrelace PSSession je důležitá pro odpojené relace, protože určuje, jak dlouho je odpojená relace udržována ve vzdáleném počítači. Odpojené relace se považují od okamžiku, kdy jsou odpojeny, za nečinné, a to i v případě, že v odpojené relaci běží příkazy.

Pokud spustíte úlohu ve vzdálené relaci pomocí parametru AsJob rutiny Invoke-Command , objekt úlohy se vytvoří v aktuální relaci, i když se úloha spustí ve vzdálené relaci. Pokud vzdálenou relaci odpojíte, objekt úlohy v aktuální relaci se odpojí od úlohy. Objekt úlohy obsahuje všechny výsledky, které se do něj vrátily, ale nepřijme nové výsledky z úlohy v odpojené relaci.

Pokud se k relaci, která obsahuje spuštěnou úlohu, připojí jiný klient, nebudou v nově připojené relaci k dispozici výsledky, které byly doručeny do původního objektu úlohy v původní relaci. V znovupřipojené relaci 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 od relace odpojíte, nebudou žádné výsledky, které skript před odpojením doručí relaci, k dispozici jinému klientovi, který se k relaci připojuje.

Pokud chcete zabránit ztrátě dat v relacích, které chcete odpojit, použijte parametr InDisconnectedSession rutiny Invoke-Command . Vzhledem k tomu, že tento parametr zabraňuje vrácení výsledků do aktuální relace, jsou při opětovném připojení relace k dispozici všechny výsledky.

Ztrátě dat můžete zabránit také spuštěním Start-Job příkazu ve vzdálené relaci pomocí Invoke-Command rutiny . V tomto případě se objekt úlohy vytvoří ve vzdálené relaci. K získání výsledků úlohy nemůžete použít Receive-PSSession rutinu . Místo toho použijte rutinu Connect-PSSession pro připojení k relaci a pak pomocí rutiny Invoke-Command spusťte Receive-Job příkaz v relaci.

Když se relace obsahující spuštěnou úlohu odpojí a pak se znovu připojí, 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 pro opětovné připojení neurčí nový název úlohy. Pokud je relace znovu připojena k jiné relaci klienta nebo je zadán nový název úlohy, PowerShell vytvoří pro novou relaci nový objekt úlohy.

Když odpojíte relaci PSSession, stav relace je Odpojeno a dostupnost je Žádná.

  • Hodnota vlastnosti State je relativní vzhledem k aktuální relaci. Hodnota Odpojeno znamená, že relace PSSession není připojená k aktuální relaci. Neznamená to ale, že je relace PSSession odpojená od všech relací. Může být připojená k jiné relaci. Pokud chcete zjistit, jestli se můžete připojit nebo znovu připojit k relaci, použijte vlastnost Availability (Dostupnost ).
  • Hodnota Dostupnost None označuje, že se můžete připojit k relaci. Hodnota Busy (Zaneprázdněn) označuje, že se nemůžete připojit k relaci PSSession , protože je připojená k jiné relaci.
  • Další informace o hodnotách vlastnosti State relací naleznete v tématu RunspaceState.
  • Další informace o hodnotách vlastnosti Availability relací naleznete v tématu RunspaceAvailability.