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 zobrazí se 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 příkazy, které byly pozastaveny, a získá výsledky příkazů spuštěných v relaci.

Tato rutina byla představena v PowerShellu 3.0.

Můžete použít Receive-PSSession kromě příkazu nebo místo Connect-PSSession příkazu. 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í Disconnect-PSSession rutiny nebo Invoke-CommandInDisconnectedSession parametr. 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, připojí se k relaci, Receive-PSSession ale nevrátí žádné výstupy nebo chyby.

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

Některé příklady používají k zmenš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 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

Určuje Receive-PSSession vzdálený počítač s parametrem ComputerName . Parametr Name identifikuje relaci ITTask na počítači Serveru01. Příklad získá výsledky příkazů, které byly spuštěny v 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 nebyla žádná relace odpojená nebo nespouštět příkazy, Receive-PSSession nepřipojuje se k relaci a nevrací žádné výstupy ani chyby.

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

Get-PSSessionpoužívá parametr ComputerName k určení vzdálených počítačů. Objekty se odesílají do kanálu do 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 spuštěného 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 k identifikaci odpojené relace používá parametry ComputerName a Name . Pomocí parametru OutTarget s hodnotou Job nasměruje Receive-PSSession výsledky jako úlohu. Parametr JobName určuje název úlohy v znovu připojené relaci. Parametr Credential spustí Receive-PSSession příkaz pomocí oprávnění správce domény.

Výstup ukazuje, že Receive-PSSession výsledky vrátily jako úlohu v aktuální relaci. Pokud chcete získat výsledky úlohy, použijte Receive-Job příkaz

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í 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 Server01 a uloží relaci do $s proměnné. Proměnná $s zobrazí, že je stav 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.

Rutina Invoke-Command spustí skript v relaci v $s proměnné. 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 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 na počítači se serverem Server01. Stav označuje, že je relace AD odpojená. Hodnota Dostupnost žádné značí, že relace není připojená k žádným relacím klienta.

Rutina Receive-PSSession se znovu připojí k relaci AD a získá výsledky skriptu spuštěného v relaci. Příkaz použije 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 slouží ke kontrole stavu úlohy. Výstup potvrdí, že se Receive-PSSession rutina 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á 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á parametr InDisconnectedSession , 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 ho pouze v době, 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 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 $s proměnné. Zobrazí se hodnota $s proměnné a ukáže, ž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ýsledkem skriptu je $Results proměnná 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 pomocí parametru AsJob spustí příkaz jako úlohu a vytvoří objekt úlohy v aktuální relaci. Příkaz vrátí objekt úlohy uložený v $j proměnné. Proměnná $j zobrazí objekt úlohy.

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

Tato $j proměnná se zobrazí a zobrazí účinek odpojení objektu úlohy v $j proměnné. Stav úlohy je nyní odpojen.

Spustí se Receive-Job v ú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 spustí 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 se příkaz spustí ve stejné relaci, Receive-PSSession vrátí výsledky jako úlohu ve výchozím nastavení 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).

Pokud použijete parametr Připojení ionURI, vzdálený cíl může vrátit instrukce pro 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.

Počet přesměrování připojení můžete také omezit změnou hodnoty parametru relace Maximum Připojení ionRedirectionCount. Použijte parametr MaximumRedirection rutiny New-PSSessionOption nebo nastavte Vlastnost $PSSessionOption Maximum Připojení ionRedirectionCount proměnné předvolby. Výchozí hodnota je 5.

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

-ApplicationName

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

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

Název aplikace relace je uložen v runspace.Připojení ionInfo.AppName vlastnost relace.

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

Type:String
Position:Named
Default value:None
Required:False
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, aby se znovu připojil k odpojené relaci. Tento parametr přijímá tyto hodnoty:

  • Výchozí
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Vyjednávat
  • NegotiateWithImplicitCredential

Výchozí hodnota je Default.

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

Upozornění

Ověřování zprostředkovatele podpory zabezpečení přihlašovacích údajů (CredSSP), ve kterém jsou přihlašovací údaje uživatele předány vzdálenému počítači, který se má ověřit, je určený pro příkazy, které vyžadují ověření u více než jednoho prostředku, například pro přístup ke vzdálené síťové sdílené složce. 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.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:Default
Required:False
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í 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 v jednotce PowerShellu Cert: příkaz nebo Get-ChildItem hoGet-Item.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 konci připojení. Ve výchozím nastavení je to 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
Required:True
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ředzálohuje 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 slouží 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
Required:False
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
Required: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átorů URI připojení použít parametry UseSSL, ComputerName, Port a ApplicationName .

Platné hodnoty pro segment přenosu 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 .

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

-Credential

Určuje uživatelský účet, který má oprávnění k 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ý rutinouGet-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 naleznete v tématu Jak zabezpečený je SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
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í efektivní, pokud je relace uložena v místním počítači, ale nebyla připojena k aktuální relaci.

Type:Int32
Position:0
Default value:None
Required:True
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 psSession na místním nebo vzdáleném počítači. ID instance je uloženo ve vlastnosti InstanceID PSSession.

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

-JobName

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

Receive-PSSession vrátí úlohu, když hodnota parametru OutTarget je Job 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 parametru JobName .

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 parametr JobName nemá žádný vliv.

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

-Name

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

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

-OutTarget

Určuje způsob vrácení výsledků relace. Tento parametr přijímá tyto hodnoty:

  • Práce. 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 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.

Type:OutTarget
Accepted values:Default, Host, Job
Position:Named
Default value:None
Required:False
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, 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\>

Parametr Port nepoužívejte, pokud není potřeba. 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.

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

-Session

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

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

-SessionOption

Určuje upřesňující možnosti relace. 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žností relace.

Výchozí hodnoty pro možnosti jsou určeny hodnotou $PSSessionOption proměnné předvoleb, pokud je nastavena. 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 pro relace nastavené v $PSSessionOption proměnné předvoleb 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, naleznete v tématu New-PSSessionOption. Informace o proměnné předvoleb $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
Required:False
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 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.

Type:SwitchParameter
Position:Named
Default value:False
Required: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

PSSession

Objekty relace můžete řadit do této rutiny, například objekty vrácené rutinou Get-PSSession .

Int32

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

Guid

Tuto rutinu můžete inkasovat ID instancí relací.

String

Do této rutiny můžete generovat názvy relací.

Výstupy

Job

Pokud je hodnota nebo výchozí hodnota parametru OutTarget je Job, Receive-PSSession vrátí objekt úlohy.

PSObject

Tato rutina vrátí výsledky příkazů spuštěných v odpojené relaci( pokud existuje).

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 se připojit můžou jenom relace připojené k počítačům s PowerShellem 3.0 nebo novějšími verzemi, které jsou připojené nebo ukončené.

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 OutputBufferingMode relace 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 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 psSession nemůžete změnit, když se připojíte k psSession nebo obdržíte výsledky. Parametr SessionOptionReceive-PSSession přebírá SessionOption objekt, který má hodnotu IdleTimeout . Hodnota IdleTimeout objektu SessionOption a hodnota $PSSessionOption IdleTimeout proměnné jsou však ignorovány při připojení k PSSession nebo příjmu výsledků.

  • Při vytváření psSession můžete nastavit a změnit časový limit nečinnosti při vytváření psSession, pomocí New-PSSession rutin nebo Invoke-Command rutin a při odpojení od psSession.
  • Vlastnost IdleTimeout relace PSSession je důležitá pro odpojené relace, protože určuje, jak dlouho se odpojená relace udržuje ve 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 Invoke-Command AsJob rutiny, 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ýsledky, které byly do ní vráceny, ale neobdrží nové výsledky z úlohy v odpojené relaci.

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 od relace, všechny výsledky, které skript před odpojením do relace před odpojením nedoručí, nebudou k dispozici jinému klientovi, který se připojí k relaci.

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 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.

Ztrátě dat můžete také zabránit 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 se pomocí této rutiny Connect-PSSession připojte k relaci a pak pomocí Invoke-Command této rutiny spusťte Receive-Job příkaz v relaci.

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 relaci PSSession, stav relace je odpojen a dostupnost je None.

  • Hodnota vlastnosti State je relativní vzhledem k aktuální relaci. Hodnota Odpojeno znamená, že psSession není připojen k aktuální relaci. Neznamená to ale, že psSession je odpojený od všech relací. Může se připojit k jiné relaci. Chcete-li zjistit, zda se můžete připojit nebo znovu připojit k relaci, použijte vlastnost Dostupnost .
  • Hodnota Dostupnost none označuje, ž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 vlastnosti State relací naleznete v tématu RunspaceState.
  • Další informace o hodnotách vlastnosti Availability relací naleznete v tématu RunspaceAvailability.