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
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-PSSession
A parancsmag vagy az Disconnect-PSSession
Invoke-Command
InDisconnectedSession 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: Csatlakozás PSSession-hez
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-PSSession
A 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 ConnectionURI 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 MaximumConnectionRedirectionCount 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ét New-PSSessionOption
, vagy állítsa be a beállításváltozó MaximumConnectionRedirectionCount tulajdonságát $PSSessionOption
. Az alapértelmezett érték 5.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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ásnevét a rendszer a munkamenet Runspace.ConnectionInfo.AppName tulajdonságában tárolja.
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.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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
- Emészt
- Kerberos
- Tárgyal
- 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.
Típus: | AuthenticationMechanism |
Elfogadott értékek: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Alapértelmezett érték: | Default |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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:
.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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:COMPUTERNAME
vagy a localhost nevet.
Típus: | String |
Aliasok: | Cn |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
-Confirm
Jóváhagyást kér a parancsmag futtatása előtt.
Típus: | SwitchParameter |
Aliasok: | cf |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | Uri |
Aliasok: | URI, CU |
Position: | 0 |
Alapértelmezett érték: | http://localhost:5985/WSMAN |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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?.
Típus: | PSCredential |
Position: | Named |
Alapértelmezett érték: | Current user |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | Int32 |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | Guid |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Name
A leválasztott munkamenet rövid nevét adja meg.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | OutTarget |
Elfogadott értékek: | Default, Host, Job |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | Int32 |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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
.
Típus: | PSSession |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | 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.
Típus: | PSSessionOption |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | 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.
Típus: | SwitchParameter |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-WhatIf
Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.
Típus: | SwitchParameter |
Aliasok: | wi |
Position: | Named |
Alapértelmezett érték: | False |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
A parancsmaghoz munkamenet-objektumokat helyezhet el, például a Get-PSSession
parancsmag által visszaadott objektumokat.
Ehhez a parancsmaghoz a munkamenet-azonosítókat is be lehet csövezni.
A parancsmagban futtathatja a munkamenetek példányazonosítóit.
A parancsmaghoz a munkamenetek neveit is be lehet csövezni.
Kimenetek
Ha az OutTarget paraméter értéke vagy alapértelmezett értéke, Job
Receive-PSSession
egy feladatobjektumot ad vissza.
Ez a parancsmag a leválasztott munkamenetben futtatott parancsok eredményeit adja vissza, ha vannak ilyenek.
Jegyzetek
A Windows PowerShell a következő aliasokat Receive-PSSession
tartalmazza:
rcsn
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-hez csatlakozik, 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.