Receive-PSSession

Parancsok eredményeinek lekérdezése leválasztott munkamenetekben

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

Ez a parancsmag csak a Windows platformon érhető el.

A Receive-PSSession parancsmag lekéri a leválasztott PowerShell-munkamenetekben (PSSession) futó parancsok eredményeit. Ha a munkamenet jelenleg csatlakoztatva van, Receive-PSSession lekéri a munkamenet leválasztásakor futó parancsok eredményeit. Ha a munkamenet továbbra is megszakad, Receive-PSSession csatlakozik a munkamenethez, folytatja a felfüggesztett parancsokat, és megkapja a munkamenetben futó parancsok eredményeit.

Ezt a parancsmagot a PowerShell 3.0-ban vezettük be.

Parancsok mellett vagy helyett Connect-PSSession is használhatóReceive-PSSession. Receive-PSSession csatlakozhat a más munkamenetekben vagy más számítógépeken elindított leválasztott vagy újrakapcsolódó munkamenetekhez.

Receive-PSSessionA parancsmag vagy azDisconnect-PSSessionInvoke-CommandInDisconnectedSession paraméter használatával szándékosan leválasztott PSSesionokon működik. Vagy véletlenül hálózati megszakítással leválasztva.

Ha a Receive-PSSession parancsmaggal olyan munkamenethez csatlakozik, amelyben nincsenek parancsok futnak vagy függesztenek fel, Receive-PSSession csatlakozik a munkamenethez, de nem ad vissza kimenetet vagy hibákat.

A Leválasztott munkamenetek funkcióval kapcsolatos további információkért lásd : about_Remote_Disconnected_Sessions.

Néhány példa splatting használatával csökkenti a vonal hosszát és javítja az olvashatóságot. További információ: about_Splatting.

Példák

1. példa: PSSession Csatlakozás

Ez a példa egy távoli számítógépen futó munkamenethez csatlakozik, és lekéri a munkamenetben futó parancsok eredményeit.

Receive-PSSession -ComputerName Server01 -Name ITTask

A Receive-PSSession számítógépnév paraméterrel rendelkező távoli számítógépet adja meg. A Név paraméter azonosítja az ITTask-munkamenetet a Server01 számítógépen. A példa lekéri az ITTask-munkamenetben futó parancsok eredményeit.

Mivel a parancs nem használja az OutTarget paramétert, az eredmények megjelennek a parancssorban.

2. példa: Az összes parancs eredményének lekérése leválasztott munkameneteken

Ez a példa lekéri az összes olyan parancs eredményét, amely két távoli számítógépen futó összes leválasztott munkamenetben fut.

Ha egy munkamenet nem volt leválasztva, vagy nem futtat parancsokat, nem csatlakozik a munkamenethez, Receive-PSSession és nem ad vissza semmilyen kimenetet vagy hibát.

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

Get-PSSessionA Számítógépnév paraméter használatával adja meg a távoli számítógépeket. A rendszer elküldi az objektumokat a folyamatnak Receive-PSSession.

3. példa: Munkamenetben futó szkript eredményeinek lekérése

Ez a példa a Receive-PSSession parancsmagot használja egy távoli számítógép munkamenetében futó szkript eredményeinek lekéréséhez.

$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

A parancs a ComputerName és a Name paraméterekkel azonosítja a leválasztott munkamenetet. Az OutTarget paramétert egy Feladat értékkel használja az eredmények feladatként való visszaadásáhozReceive-PSSession. A JobName paraméter megadja a feladat nevét az újracsatlakoztatott munkamenetben. A hitelesítőadat-paraméter egy Receive-PSSession tartományi rendszergazda engedélyével futtatja a parancsot.

A kimenet azt mutatja, hogy Receive-PSSession az eredményeket feladatként adja vissza az aktuális munkamenetben. A feladat eredményeinek lekéréséhez használjon egy parancsot Receive-Job

4. példa: Eredmények lekérése hálózatkimaradás után

Ez a példa a Receive-PSSession parancsmagot használja egy feladat eredményeinek lekérésére, miután egy hálózati kimaradás megszakítja a munkamenet-kapcsolatot. A PowerShell automatikusan megkísérli másodpercenként egyszer újracsatlakozni a munkamenetet a következő négy percben, és csak akkor hagyja abba az erőfeszítést, ha a négyperces intervallum összes kísérlete sikertelen.

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

A New-PSSession parancsmag létrehoz egy munkamenetet a Server01 számítógépen, és menti a munkamenetet a $s változóban. A $s változó megjeleníti, hogy az állapot meg van nyitva, és a rendelkezésre állás elérhető. Ezek az értékek azt jelzik, hogy csatlakozik a munkamenethez, és parancsokat futtathat a munkamenetben.

A Invoke-Command parancsmag egy szkriptet futtat a változó munkamenetében $s . A szkript elkezdi futtatni és visszaadni az adatokat, de a munkamenetet megszakító hálózati kimaradás következik be. A felhasználónak ki kell lépnie a munkamenetből, és újra kell indítania a helyi számítógépet.

Amikor a számítógép újraindul, a felhasználó elindítja a PowerShellt, és futtat egy Get-PSSession parancsot a munkamenetek lekéréséhez a Server01 számítógépen. A kimenet azt mutatja, hogy az AD-munkamenet továbbra is létezik a Server01 számítógépen. Az állapot azt jelzi, hogy az AD-munkamenet megszakadt. A Nincs rendelkezésre állás értéke azt jelzi, hogy a munkamenet nincs ügyfél-munkamenetekhez csatlakoztatva.

A Receive-PSSession parancsmag újra csatlakozik az AD-munkamenethez , és lekéri a munkamenetben futtatott szkript eredményeit. A parancs az OutTarget paraméterrel kéri le az eredményeket egy ADJob nevű feladatban. A parancs egy feladatobjektumot ad vissza, és a kimenet azt jelzi, hogy a szkript még fut.

A Get-PSSession parancsmag a feladat állapotának ellenőrzésére szolgál. A kimenet megerősíti, hogy a Receive-PSSession parancsmag újra csatlakozik az AD-munkamenethez , amely most már nyitva van, és elérhető a parancsokhoz. A szkript pedig újraindult, és megkapja a szkript eredményeit.

5. példa: Csatlakozás leválasztott munkamenetekhez

Ez a példa a parancsmagot használja a Receive-PSSession szándékosan leválasztott munkamenetekhez való újracsatlakozáshoz, és a munkamenetekben futó feladatok eredményeinek lekéréséhez.

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

A Invoke-Command parancsmag egy szkriptet futtat három távoli számítógépen. Mivel a szkript több adatbázisból gyűjti és összegzi az adatokat, a szkript végrehajtása gyakran hosszabb időt vesz igénybe. A parancs az InDisconnectedSession paramétert használja, amely elindítja a szkripteket, majd azonnal leválasztja a munkameneteket. A SessionOption paraméter kibővíti a leválasztott munkamenet IdleTimeout értékét. A leválasztott munkamenetek a leválasztásuk pillanatától tétlennek minősülnek. Fontos, hogy a tétlen időtúllépést elég hosszú ideig állítsa be, hogy a parancsok befejeződhessenek, és újra kapcsolódhassunk a munkamenethez. Az IdleTimeoutot csak a PSSession létrehozásakor állíthatja be, és csak akkor módosíthatja, ha leválasztja róla. Nem módosíthatja az IdleTimeout értéket, ha PSSession-hez csatlakozik, vagy megkapja annak eredményeit. A parancs futtatása után a felhasználó kilép a PowerShellből, és bezárja a számítógépet.

Másnap a felhasználó folytatja a Windowst, elindítja a PowerShellt, és azokat a munkameneteket használja Get-PSSession , amelyeken a szkriptek futtak. A parancs azonosítja a munkameneteket a számítógép neve, a munkamenet neve és a munkamenet-konfiguráció neve alapján, és menti a munkameneteket a $s változóban. A változó értéke $s megjelenik, és azt mutatja, hogy a munkamenetek leválasztva vannak, de nem foglaltak.

A Receive-PSSession parancsmag csatlakozik a változó munkameneteihez, és megkapja az $s eredményeket. A parancs menti az eredményeket a $Results változóban. A $s változó megjelenik, és azt mutatja, hogy a munkamenetek csatlakoztatva vannak, és elérhetők a parancsokhoz.

A változó szkripteredményei $Results megjelennek a PowerShell-konzolon. Ha bármelyik eredmény váratlan, a felhasználó parancsokat futtathat a munkamenetekben a kiváltó ok vizsgálatához.

6. példa: Feladat futtatása leválasztott munkamenetben

Ez a példa bemutatja, mi történik egy leválasztott munkamenetben futó feladatsal.

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

A New-PSSession parancsmag létrehozza a Teszt munkamenetet a Server01 számítógépen. A parancs menti a munkamenetet a $s változóban.

A Invoke-Command parancsmag futtat egy parancsot a változó munkamenetében $s . A parancs az AsJob paraméterrel futtatja a parancsot feladatként, és létrehozza a feladatobjektumot az aktuális munkamenetben. A parancs visszaad egy feladatobjektumot, amely a $j változóban van mentve. A $j változó megjeleníti a feladatobjektumot.

A változó munkamenet-objektuma $s le lesz küldve a folyamatról Disconnect-PSSession , és a munkamenet megszakad.

A $j változó megjelenik, és megjeleníti a feladatobjektum leválasztásának hatását a $j változóban. A feladat állapota megszakadt.

A Receive-Job függvény a változóban lévő feladaton $j fut. A kimenet azt mutatja, hogy a feladat a munkamenet és a feladat leválasztása előtt kezdett eredményül adni.

A Connect-PSSession parancsmag ugyanabban az ügyfél-munkamenetben fut. A parancs újra csatlakozik a Teszt munkamenethez a Server01 számítógépen, és menti a munkamenetet a $s2 változóban.

A Receive-PSSession parancsmag lekéri a munkamenetben futó feladat eredményeit. Mivel a parancs ugyanabban a munkamenetben fut, alapértelmezés szerint feladatként adja vissza az eredményeket, Receive-PSSession és ugyanazt a feladatobjektumot használja újra. A parancs menti a feladatot a $j2 változóba. A Receive-Job parancsmag lekéri a feladat eredményeit a $j változóban.

Paraméterek

-AllowRedirection

Azt jelzi, hogy ez a parancsmag lehetővé teszi a kapcsolat átirányítását egy alternatív egységes erőforrás-azonosítóra (URI).

A Csatlakozás ionURI paraméter használatakor a távoli cél egy utasítást adhat vissza egy másik URI-ra való átirányításhoz. A PowerShell alapértelmezés szerint nem irányítja át a kapcsolatokat, de ezzel a paramétersel engedélyezheti a kapcsolat átirányítását.

A Maximális Csatlakozás ionRedirectionCount munkamenet beállításértékének módosításával azt is korlátozhatja, hogy a rendszer hányszor irányítsa át a kapcsolatot. Használja a parancsmag MaximumRedirection paraméterétNew-PSSessionOption, vagy állítsa be a beállításváltozó Maximum Csatlakozás ionRedirectionCount tulajdonságát$PSSessionOption. Az alapértelmezett érték 5.

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

-ApplicationName

Egy alkalmazást határoz meg. Ez a parancsmag csak a megadott alkalmazást használó munkamenetekhez csatlakozik.

Adja meg a kapcsolati URI alkalmazásnév-szegmensét. A következő kapcsolati URI-ban például a WSMan az alkalmazás neve: http://localhost:5985/WSMAN.

A munkamenet alkalmazásneve a Runspace.CsatlakozásA munkamenet ionInfo.AppName tulajdonsága.

A paraméter értéke a munkamenetek kiválasztására és szűrésére szolgál. Ez nem módosítja a munkamenet által használt alkalmazást.

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

-Authentication

Megadja a parancs felhasználói hitelesítő adatainak hitelesítéséhez használt mechanizmust a leválasztott munkamenethez való újracsatlakozáshoz. A paraméter elfogadható értékei a következők:

  • Alapértelmezett
  • Alap
  • Credssp
  • Digest
  • Kerberos
  • Tárgyalni
  • NegotiateWithImplicitCredential

Az alapértelmezett érték az Alapértelmezett érték.

A paraméter értékeivel kapcsolatos további információkért lásd : AuthenticationMechanism Enumeration.

Figyelemfelhívás

A hitelesítő adatok biztonsági támogatási szolgáltatójának (CredSSP) hitelesítése, amelyben a felhasználói hitelesítő adatok átadva vannak egy hitelesítendő távoli számítógépnek, olyan parancsokhoz készült, amelyek több erőforráson is hitelesítést igényelnek, például távoli hálózati megosztáshoz való hozzáféréshez. Ez a mechanizmus növeli a távoli művelet biztonsági kockázatát. Ha a távoli számítógép biztonsága sérül, a neki átadott hitelesítő adatokkal szabályozható a hálózati munkamenet.

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

Megadja egy olyan felhasználói fiók digitális nyilvános kulcsú tanúsítványát (X509), amely jogosult csatlakozni a leválasztott munkamenethez. Adja meg a tanúsítvány ujjlenyomatát.

A tanúsítványok az ügyféltanúsítvány-alapú hitelesítésben használatosak. A tanúsítványok csak helyi felhasználói fiókokra képezhetők le, és nem használhatók tartományi fiókokkal.

Tanúsítvány ujjlenyomatának lekéréséhez használjon egy vagy Get-ChildItem több Get-Item parancsot a PowerShell-meghajtónCert:.

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

-ComputerName

Azt a számítógépet adja meg, amelyen a leválasztott munkamenetet tárolja a rendszer. A munkamenetek a kiszolgálóoldali számítógépen vannak tárolva, vagy egy kapcsolat végét kapják. Alapértelmezés szerint a helyi számítógép.

Írja be egy számítógép NetBIOS-nevét, IP-címét vagy teljes tartománynevét (FQDN). A helyettesítő karakterek nem engedélyezettek. A helyi számítógép megadásához írja be a számítógép nevét, a pont (.) $env:COMPUTERNAMEvagy a localhost nevet.

Type:String
Aliases:Cn
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ConfigurationName

Megadja a munkamenet-konfiguráció nevét. Ez a parancsmag csak a megadott munkamenet-konfigurációt használó munkamenetekhez csatlakozik.

Adja meg a konfiguráció nevét vagy a munkamenet-konfiguráció teljes erőforrás-URI-címét. Ha csak a konfiguráció nevét adja meg, a rendszer a következő séma URI-ját előpendálta:

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

A munkamenet konfigurációs neve a munkamenet ConfigurationName tulajdonságában van tárolva.

A paraméter értéke a munkamenetek kiválasztására és szűrésére szolgál. Ez nem módosítja a munkamenet-konfigurációt, amelyet a munkamenet használ.

A munkamenet-konfigurációkkal kapcsolatos további tudnivalókért tekintse meg az about_Session_Configuration_Files című témakört.

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

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

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

-ConnectionUri

Megadja a leválasztott munkamenethez való újracsatlakozáshoz használt kapcsolati végpontot meghatározó URI-t.

Az URI-nak teljes mértékben minősítettnek kell lennie. A sztring formátuma a következő:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Az alapértelmezett érték a következő:

http://localhost:5985/WSMAN

Ha nem ad meg kapcsolati URI-t, a UseSSL, a ComputerName, a Port és az ApplicationName paraméterekkel megadhatja a kapcsolat URI-értékeit.

Az URI átviteli szegmensének érvényes értékei a HTTP és a HTTPS. Ha egy átviteli szegmenshez tartozó kapcsolati URI-t ad meg, de nem ad meg portot, a munkamenet szabványos portokkal jön létre: 80 HTTP-hez és 443 HTTPS-hez. A PowerShell-újraküldés alapértelmezett portjának használatához adja meg az 5985-ös portot a HTTP-hez, a HTTPS-hez pedig az 5986-os portot.

Ha a célszámítógép átirányítja a kapcsolatot egy másik URI-ra, a PowerShell megakadályozza az átirányítást, hacsak nem használja az AllowRedirection paramétert a parancsban.

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

-Credential

Olyan felhasználói fiókot ad meg, amely rendelkezik engedéllyel a leválasztott munkamenethez való csatlakozáshoz. Alapértelmezés szerint az aktuális felhasználó.

Írjon be egy felhasználónevet (például User01 vagy Domain01\User01), vagy írjon be egy PSCredential objektumot, amelyet a Get-Credential parancsmag hoz létre. Ha beír egy felhasználónevet, a rendszer kéri a jelszó megadását.

A hitelesítő adatokat PSCredential objektum tárolja, a jelszót pedig SecureStringként tárolja a rendszer.

Feljegyzés

További információ a SecureString adatvédelemről: Mennyire biztonságos a SecureString?.

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

-Id

Egy leválasztott munkamenet azonosítóját adja meg. Az Azonosító paraméter csak akkor működik, ha a leválasztott munkamenet korábban csatlakozott az aktuális munkamenethez.

Ez a paraméter érvényes, de nem érvényes, ha a munkamenet a helyi számítógépen van tárolva, de nem csatlakozott az aktuális munkamenethez.

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

-InstanceId

Megadja a leválasztott munkamenet példányazonosítóját. A példányazonosító egy GUID, amely egyedileg azonosítja a PSSessiont egy helyi vagy távoli számítógépen. A példányazonosító a PSSession InstanceID tulajdonságában van tárolva.

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

-JobName

A visszaadott feladat Receive-PSSession rövid nevét adja meg.

Receive-PSSession Egy feladatot ad vissza, ha az OutTarget paraméter értéke Feladat, vagy a leválasztott munkamenetben futó feladat az aktuális munkamenetben indult el.

Ha a leválasztott munkamenetben futó feladat az aktuális munkamenetben indult el, a PowerShell újra felhasználja az eredeti feladatobjektumot a munkamenetben, és figyelmen kívül hagyja a JobName paraméter értékét.

Ha a leválasztott munkamenetben futó feladat egy másik munkamenetben indult el, a PowerShell létrehoz egy új feladatobjektumot. Alapértelmezett nevet használ, de ezzel a paraméterrel módosíthatja a nevet.

Ha az OutTarget paraméter alapértelmezett vagy explicit értéke nem Feladat, a parancs sikeres, de a JobName paraméternek nincs hatása.

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

-Name

A leválasztott munkamenet rövid nevét adja meg.

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

-OutTarget

Meghatározza a munkamenet eredményeinek visszaadott módját. A paraméter elfogadható értékei a következők:

  • Feladat. Az eredményeket aszinkron módon adja vissza egy feladatobjektumban. A JobName paraméterrel megadhatja a feladat nevét vagy új nevét.
  • Gazdagép. Az eredményeket a parancssorba adja vissza (szinkronban). Ha a parancs folytatása folyamatban van, vagy az eredmények nagy számú objektumból állnak, a válasz késhet.

Az OutTarget paraméter alapértelmezett értéke a Gazdagép. Ha a leválasztott munkamenetben fogadott parancs az aktuális munkamenetben indult el, az OutTarget paraméter alapértelmezett értéke az az űrlap, amelyben a parancs elindult. Ha a parancsot feladatként indították el, alapértelmezés szerint feladatként adja vissza. Ellenkező esetben alapértelmezés szerint visszakerül a gazdagépprogramba.

A gazdaprogram általában késedelem nélkül jeleníti meg a visszaadott objektumokat a parancssorban, de ez a viselkedés eltérő lehet.

Type:OutTarget
Accepted values:Default, Host, Job
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

Megadja a távoli számítógép hálózati portját, amely a munkamenethez való újracsatlakozáshoz használatos. Távoli számítógéphez való csatlakozáshoz a kapcsolat által használt portot kell figyelnie. Az alapértelmezett portok az 5985, amely a HTTP WinRM-portja, és az 5986, amely a HTTPS WinRM-portja.

Egy másik port használata előtt konfigurálnia kell a WinRM-figyelőt a távoli számítógépen a port figyelésére. A figyelő konfigurálásához írja be a következő két parancsot a PowerShell-parancssorba:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Csak akkor használja a Port paramétert, ha szükséges. A parancsban beállított port minden olyan számítógépre vagy munkamenetre vonatkozik, amelyen a parancs fut. Egy másik portbeállítás megakadályozhatja, hogy a parancs minden számítógépen fusson.

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

-Session

A leválasztott munkamenetet adja meg. Adjon meg egy változót, amely tartalmazza a PSSessiont , vagy egy olyan parancsot, amely létrehozza vagy lekéri a PSSessiont, például egy parancsot Get-PSSession .

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

-SessionOption

A munkamenet speciális beállításait adja meg. Adjon meg egy SessionOption objektumot, például a parancsmaggal New-PSSessionOption létrehozott objektumot, vagy egy kivonattáblát, amelyben a kulcsok munkamenet-beállításnevek, az értékek pedig munkamenet-beállításértékek.

A beállítások alapértelmezett értékeit a $PSSessionOption beállítási változó értéke határozza meg, ha be van állítva. Ellenkező esetben az alapértelmezett értékeket a munkamenet-konfigurációban megadott beállítások állítják be.

A munkamenet-beállításértékek elsőbbséget élveznek a beállításváltozóban és a $PSSessionOption munkamenet-konfigurációban beállított munkamenetek alapértelmezett értékeivel szemben. A munkamenet-konfigurációban beállított maximális értékek, kvóták és korlátok azonban nem elsőbbséget élveznek.

Az alapértelmezett értékeket tartalmazó munkamenet-beállítások leírását lásd: New-PSSessionOption. A $PSSessionOption beállítási változóval kapcsolatos információkért lásd: about_Preference_Variables. A munkamenet-konfigurációkkal kapcsolatos további tudnivalókért tekintse meg az about_Session_Configuration_Files című témakört.

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

-UseSSL

Azt jelzi, hogy ez a parancsmag a Secure Sockets Layer (SSL) protokollt használja a leválasztott munkamenethez való csatlakozáshoz. Alapértelmezés szerint az SSL nem használatos.

A WS-Management a hálózaton keresztül továbbított összes PowerShell-tartalmat titkosítja. A UseSSL egy további védelem, amely HTTP-kapcsolat helyett HTTPS-kapcsolaton keresztül küldi az adatokat.

Ha ezt a paramétert használja, és az SSL nem érhető el a parancshoz használt porton, a parancs meghiúsul.

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

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

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

Bevitelek

PSSession

A parancsmaghoz munkamenet-objektumokat helyezhet el, például a Get-PSSession parancsmag által visszaadott objektumokat.

Int32

Ehhez a parancsmaghoz a munkamenet-azonosítókat is be lehet csövezni.

Guid

A parancsmagban futtathatja a munkamenetek példányazonosítóit.

String

A parancsmaghoz a munkamenetek neveit is be lehet csövezni.

Kimenetek

Job

Ha az OutTarget paraméter értéke vagy alapértelmezett értéke, JobReceive-PSSession egy feladatobjektumot ad vissza.

PSObject

Ez a parancsmag a leválasztott munkamenetben futtatott parancsok eredményeit adja vissza, ha vannak ilyenek.

Jegyzetek

A PowerShell a következő aliasokat Receive-PSSessiontartalmazza:

  • Minden platform:
    • rcsn

Ez a parancsmag csak Windows-platformokon érhető el.

Receive-PSSession csak a leválasztott munkamenetek eredményei lesznek lekérve. Csak a PowerShell 3.0-s vagy újabb verzióit futtató számítógépekhez csatlakozó vagy ott végződő munkamenetek kapcsolhatók le és kapcsolhatók újra.

Ha a leválasztott munkamenetben futó parancsok nem hoztak létre eredményeket, vagy ha az eredményeket már visszaadták egy másik munkamenetbe, Receive-PSSession nem hoz létre kimenetet.

A munkamenet kimeneti pufferelési módja határozza meg, hogy a munkamenet parancsai hogyan kezelik a kimenetet a munkamenet leválasztásakor. Ha a munkamenet OutputBufferingMode beállításának értéke Drop, és a kimeneti puffer megtelt, a parancs elkezdi törölni a kimenetet. Receive-PSSession nem tudja helyreállítani ezt a kimenetet. A kimeneti pufferelési mód beállításával kapcsolatos további információkért tekintse meg a New-PSSessionOption és a New-PSTransportOption parancsmagok súgócikkeit.

A PSSession tétlen időtúllépési értékét nem módosíthatja, ha csatlakozik a PSSessionhez, vagy eredményeket fogad. A SessionOption paraméter Receive-PSSession egy IdleTimeout értékkel rendelkező SessionOption objektumot vesz fel. A SessionOption objektum IdleTimeout értéke és a $PSSessionOption változó IdleTimeout értéke azonban figyelmen kívül lesz hagyva, amikor PSSession-hezcsatlakozik, vagy eredményeket fogad.

  • A PSSession létrehozásakor, a parancsmagok vagy Invoke-Command parancsmagok használatávalNew-PSSession, valamint a PSSession-ről való leválasztáskor beállíthatja és módosíthatja a PSSession tétlen időtúllépését.
  • A PSSession IdleTimeout tulajdonsága kritikus fontosságú a leválasztott munkamenetek szempontjából, mivel meghatározza, hogy mennyi ideig tart fenn a leválasztott munkamenet a távoli számítógépen. A leválasztott munkamenetek inaktívnak minősülnek attól a pillanattól kezdve, amikor le vannak választva, még akkor is, ha a parancsok a leválasztott munkamenetben futnak.

Ha egy távoli munkamenetben a parancsmag AsJob paraméterével Invoke-Command indít el egy feladatot, a feladatobjektum az aktuális munkamenetben jön létre, annak ellenére, hogy a feladat a távoli munkamenetben fut. Ha leválasztja a távoli munkamenetet, az aktuális munkamenet feladatobjektuma le lesz választva a feladatról. A feladatobjektum tartalmazza a visszaadott eredményeket, de nem kap új eredményeket a feladattól a leválasztott munkamenetben.

Ha egy másik ügyfél csatlakozik a futó feladatot tartalmazó munkamenethez, az eredeti munkamenetben az eredeti feladatobjektumnak küldött eredmények nem érhetők el az újonnan csatlakoztatott munkamenetben. Az újracsatlakoztatott munkamenetben csak azok az eredmények érhetők el, amelyek nem lettek kézbesítve az eredeti feladatobjektumnak.

Hasonlóképpen, ha egy munkamenetben elindít egy szkriptet, majd leválasztja a munkamenetről, a szkript által a munkamenethez a leválasztás előtt elért eredmények nem érhetők el a munkamenethez csatlakozó másik ügyfél számára.

A leválasztani kívánt munkamenetek adatvesztésének megelőzéséhez használja a parancsmag InDisconnectedSession paraméterét Invoke-Command . Mivel ez a paraméter megakadályozza, hogy az eredmények visszakerüljenek az aktuális munkamenetbe, a munkamenet újracsatlakozásakor minden eredmény elérhető lesz.

Az adatvesztést úgy is megakadályozhatja, hogy a Invoke-Command parancsmaggal futtat egy Start-Job parancsot a távoli munkamenetben. Ebben az esetben a feladatobjektum a távoli munkamenetben jön létre. A feladat eredményeinek Receive-PSSession lekéréséhez nem használhatja a parancsmagot. Ehelyett a Connect-PSSession parancsmaggal csatlakozzon a munkamenethez, majd a Invoke-Command parancsmag használatával futtasson egy Receive-Job parancsot a munkamenetben.

Ha egy futó feladatot tartalmazó munkamenet megszakad, majd újracsatlakozik, a rendszer csak akkor használja újra az eredeti feladatobjektumot, ha a feladat leválasztva van, és újra csatlakozik ugyanahhoz a munkamenethez, és az újrakapcsolódási parancs nem ad meg új feladatnevet. Ha a munkamenet egy másik ügyfél-munkamenethez csatlakozik, vagy új feladatnév van megadva, a PowerShell létrehoz egy új feladatobjektumot az új munkamenethez.

A PSSession leválasztásakor a munkamenet állapota megszakad, a rendelkezésre állás pedig Nincs.

  • Az Állapot tulajdonság értéke az aktuális munkamenethez viszonyítva van. A leválasztott érték azt jelenti, hogy a PSSession nincs csatlakoztatva az aktuális munkamenethez. Ez azonban nem jelenti azt, hogy a PSSession leválasztva van az összes munkamenetről. Lehet, hogy egy másik munkamenethez csatlakozik. Annak megállapításához, hogy csatlakozhat-e a munkamenethez, vagy újracsatlakozhat-e, használja a Rendelkezésre állás tulajdonságot .
  • A Nincs rendelkezésre állás értéke azt jelzi, hogy csatlakozhat a munkamenethez. A Foglalt érték azt jelzi, hogy nem tud csatlakozni a PSSessionhoz , mert egy másik munkamenethez van csatlakoztatva.
  • A munkamenetek State tulajdonságának értékeiről további információt a RunspaceState-ben talál.
  • A munkamenetek rendelkezésre állási tulajdonságának értékeiről további információt a RunspaceAvailability című témakörben talál.