Receive-PSSession
Hämtar resultat av kommandon i frånkopplade sessioner
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
Cmdleten Receive-PSSession
hämtar resultatet av kommandon som körs i PowerShell-sessioner (PSSession) som var frånkopplade. Om sessionen är ansluten Receive-PSSession
hämtar du resultatet av kommandon som kördes när sessionen kopplades från. Om sessionen fortfarande är frånkopplad Receive-PSSession
ansluter du till sessionen, återupptar alla kommandon som har pausats och hämtar resultatet av kommandon som körs i sessionen.
Den här cmdleten introducerades i PowerShell 3.0.
Du kan använda en Receive-PSSession
utöver eller i stället för ett Connect-PSSession
kommando.
Receive-PSSession
kan ansluta till alla frånkopplade eller återanslutna sessioner som startades i andra sessioner eller på andra datorer.
Receive-PSSession
fungerar på PSSessioner som avsiktligt kopplades från med hjälp av cmdleten Disconnect-PSSession
eller parametern Invoke-Command
InDisconnectedSession . Eller kopplas från oavsiktligt av ett nätverksavbrott.
Om du använder cmdleten Receive-PSSession
för att ansluta till en session där inga kommandon körs eller pausas Receive-PSSession
ansluter du till sessionen, men returnerar inga utdata eller fel.
Mer information om funktionen Frånkopplade sessioner finns i about_Remote_Disconnected_Sessions.
Vissa exempel använder splatting för att minska linjelängden och förbättra läsbarheten. Mer information finns i about_Splatting.
Exempel
Exempel 1: Anslut till en PSSession
Det här exemplet ansluter till en session på en fjärrdator och hämtar resultatet av kommandon som körs i en session.
Receive-PSSession -ComputerName Server01 -Name ITTask
Receive-PSSession
Anger fjärrdatorn med parametern ComputerName. Parametern Namn identifierar ITTask-sessionen på Server01-datorn. Exemplet hämtar resultatet av kommandon som kördes i ITTask-sessionen.
Eftersom kommandot inte använder parametern OutTarget visas resultatet på kommandoraden.
Exempel 2: Hämta resultat av alla kommandon på frånkopplade sessioner
Det här exemplet hämtar resultatet av alla kommandon som körs i alla frånkopplade sessioner på två fjärrdatorer.
Om någon session inte har kopplats från eller inte kör kommandon ansluter Receive-PSSession
du inte till sessionen och returnerar inga utdata eller fel.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession
använder parametern ComputerName för att ange fjärrdatorerna. Objekten skickas ned i pipelinen till Receive-PSSession
.
Exempel 3: Hämta resultatet av ett skript som körs i en session
I det här exemplet används cmdleten Receive-PSSession
för att hämta resultatet av ett skript som kördes i en fjärrdators session.
$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
Kommandot använder parametrarna ComputerName och Name för att identifiera den frånkopplade sessionen.
Den använder parametern OutTarget med värdet Jobb för att dirigera Receive-PSSession
för att returnera resultatet som ett jobb. Parametern JobName anger ett namn för jobbet i den återanslutna sessionen.
Parametern Credential kör Receive-PSSession
kommandot med en domänadministratörs behörigheter.
Utdata visar att Receive-PSSession
returnerade resultatet som ett jobb i den aktuella sessionen. Om du vill hämta jobbresultatet använder du ett Receive-Job
kommando
Exempel 4: Hämta resultat efter ett nätverksfel
I det här exemplet används cmdleten Receive-PSSession
för att hämta resultatet av ett jobb efter ett nätverksavbrott som stör en sessionsanslutning. PowerShell försöker automatiskt återansluta sessionen en gång per sekund under de kommande fyra minuterna och avger bara ansträngningen om alla försök i fyraminutersintervallet misslyckas.
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
Cmdleten New-PSSession
skapar en session på Server01-datorn och sparar sessionen i variabeln $s
. Variabeln $s
visar att tillståndet är Öppet och att tillgängligheten är tillgänglig. Dessa värden anger att du är ansluten till sessionen och kan köra kommandon i sessionen.
Cmdleten Invoke-Command
kör ett skript i sessionen i variabeln $s
. Skriptet börjar köra och returnera data, men ett nätverksavbrott inträffar som avbryter sessionen. Användaren måste avsluta sessionen och starta om den lokala datorn.
När datorn startas om startar användaren PowerShell och kör ett Get-PSSession
kommando för att hämta sessioner på Server01-datorn. Utdata visar att AD-sessionen fortfarande finns på Server01-datorn. Tillståndet anger att AD-sessionen är frånkopplad. Tillgänglighetsvärdet Ingen anger att sessionen inte är ansluten till några klientsessioner.
Cmdleten Receive-PSSession
återansluter till AD-sessionen och hämtar resultatet av skriptet som kördes i sessionen. Kommandot använder parametern OutTarget för att begära resultatet i ett jobb med namnet ADJob. Kommandot returnerar ett jobbobjekt och utdata anger att skriptet fortfarande körs.
Cmdleten Get-PSSession
används för att kontrollera jobbtillståndet. Utdata bekräftar att cmdleten Receive-PSSession
återansluter till AD-sessionen , som nu är öppen och tillgänglig för kommandon. Och skriptet återupptog körningen och får skriptresultatet.
Exempel 5: Återanslut till frånkopplade sessioner
I det här exemplet används cmdleten Receive-PSSession
för att återansluta till sessioner som avsiktligt kopplades från och få resultatet av jobb som kördes i sessionerna.
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
Cmdleten Invoke-Command
kör ett skript på tre fjärrdatorer. Eftersom skriptet samlar in och sammanfattar data från flera databaser tar det ofta längre tid att slutföra skriptet. Kommandot använder parametern InDisconnectedSession som startar skripten och sedan omedelbart kopplar från sessionerna. Parametern SessionOption utökar värdet IdleTimeout för den frånkopplade sessionen. Frånkopplade sessioner anses vara inaktiva från det ögonblick de kopplas från. Det är viktigt att ange tidsgränsen för inaktivitet tillräckligt länge så att kommandona kan slutföras och du kan återansluta till sessionen. Du kan bara ange IdleTimeout när du skapar PSSession och bara ändra den när du kopplar från den. Du kan inte ändra värdet IdleTimeout när du ansluter till en PSSession eller får dess resultat. När kommandot har körts avslutar användaren PowerShell och stänger datorn.
Nästa dag återupptar användaren Windows, startar PowerShell och använder Get-PSSession
för att hämta de sessioner där skripten kördes. Kommandot identifierar sessionerna efter datornamn, sessionsnamn och namnet på sessionskonfigurationen och sparar sessionerna i variabeln $s
. Värdet för variabeln $s
visas och visar att sessionerna är frånkopplade, men inte är upptagna.
Cmdleten Receive-PSSession
ansluter till sessionerna i variabeln $s
och hämtar sina resultat.
Kommandot sparar resultatet i variabeln $Results
. Variabeln $s
visas och visar att sessionerna är anslutna och tillgängliga för kommandon.
Skriptresultatet i variabeln $Results
visas i PowerShell-konsolen. Om något av resultaten är oväntat kan användaren köra kommandon i sessionerna för att undersöka rotorsaken.
Exempel 6: Köra ett jobb i en frånkopplad session
Det här exemplet visar vad som händer med ett jobb som körs i en frånkopplad session.
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
Cmdleten New-PSSession
skapar testsessionen på Server01-datorn. Kommandot sparar sessionen i variabeln $s
.
Cmdleten Invoke-Command
kör ett kommando i sessionen i variabeln $s
. Kommandot använder parametern AsJob för att köra kommandot som ett jobb och skapar jobbobjektet i den aktuella sessionen.
Kommandot returnerar ett jobbobjekt som sparas i variabeln $j
. Variabeln $j
visar jobbobjektet.
Sessionsobjektet i variabeln $s
skickas ned i pipelinen till Disconnect-PSSession
och sessionen kopplas från.
Variabeln $j
visas och visar effekten av att koppla från jobbobjektet i variabeln $j
. Jobbtillståndet är nu frånkopplat.
Receive-Job
körs på jobbet i variabeln$j
. Utdata visar att jobbet började returnera utdata innan sessionen och jobbet kopplades från.
Cmdleten Connect-PSSession
körs i samma klientsession. Kommandot återansluter till testsessionen på Server01-datorn och sparar sessionen i variabeln $s2
.
Cmdleten Receive-PSSession
hämtar resultatet av jobbet som kördes i sessionen. Eftersom kommandot körs i samma session Receive-PSSession
returnerar resultatet som ett jobb som standard och återanvänder samma jobbobjekt. Kommandot sparar jobbet i variabeln $j2
. Cmdleten Receive-Job
hämtar resultatet av jobbet i variabeln $j
.
Parametrar
-AllowRedirection
Anger att den här cmdleten tillåter omdirigering av den här anslutningen till en alternativ URI (Uniform Resource Identifier).
När du använder parametern ConnectionURI kan fjärrmålet returnera en instruktion för att omdirigera till en annan URI. Som standard omdirigerar Inte PowerShell anslutningar, men du kan använda den här parametern för att göra det möjligt för den att omdirigera anslutningen.
Du kan också begränsa antalet gånger anslutningen omdirigeras genom att ändra sessionsalternativvärdet MaximumConnectionRedirectionCount . Använd parametern MaximumRedirection för cmdleten New-PSSessionOption
eller ange egenskapen MaximumConnectionRedirectionCount för inställningsvariabeln$PSSessionOption
. Standardvärdet är 5.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ApplicationName
Anger ett program. Den här cmdleten ansluter endast till sessioner som använder det angivna programmet.
Ange programnamnssegmentet för anslutnings-URI:n. I följande anslutnings-URI är WSMan till exempel programnamnet: http://localhost:5985/WSMAN
.
Programnamnet för en session lagras i egenskapen Runspace.ConnectionInfo.AppName för sessionen.
Parameterns värde används för att välja och filtrera sessioner. Det ändrar inte programmet som sessionen använder.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Authentication
Anger den mekanism som används för att autentisera användarautentiseringsuppgifterna i kommandot för att återansluta till en frånkopplad session. De acceptabla värdena för den här parametern är:
- Standardvärde
- Grundläggande
- Credssp
- Smälta
- Kerberos
- Förhandla
- NegotiateWithImplicitCredential
Standardvärdet är Standard.
Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration.
Varning
CredSSP-autentisering (CredSSP), där användarautentiseringsuppgifterna skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på mer än en resurs, till exempel åtkomst till en fjärrnätverksresurs. Den här mekanismen ökar säkerhetsrisken för fjärråtgärden. Om fjärrdatorn komprometteras kan de autentiseringsuppgifter som skickas till den användas för att styra nätverkssessionen.
Typ: | AuthenticationMechanism |
Godkända värden: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Standardvärde: | Default |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-CertificateThumbprint
Anger det digitala offentliga nyckelcertifikatet (X509) för ett användarkonto som har behörighet att ansluta till den frånkopplade sessionen. Ange certifikatets tumavtryck.
Certifikat används i klientcertifikatbaserad autentisering. Certifikat kan endast mappas till lokala användarkonton och fungerar inte med domänkonton.
Om du vill hämta ett tumavtryck för certifikat använder du ett Get-Item
eller Get-ChildItem
-kommando på PowerShell-enheten Cert:
.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ComputerName
Anger den dator där den frånkopplade sessionen lagras. Sessioner lagras på den dator som finns på serversidan eller tar emot slutet av en anslutning. Standard är den lokala datorn.
Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn (FQDN) på en dator.
Jokertecken tillåts inte. Om du vill ange den lokala datorn skriver du datornamnet, en punkt (.
), $env:COMPUTERNAME
eller localhost.
Typ: | String |
Alias: | Cn |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-ConfigurationName
Anger namnet på en sessionskonfiguration. Den här cmdleten ansluter endast till sessioner som använder den angivna sessionskonfigurationen.
Ange ett konfigurationsnamn eller den fullständigt kvalificerade resurs-URI:n för en sessionskonfiguration. Om du bara anger konfigurationsnamnet förbereds följande schema-URI:
http://schemas.microsoft.com/powershell
.
Konfigurationsnamnet för en session lagras i configurationName-egenskapen för sessionen.
Parameterns värde används för att välja och filtrera sessioner. Det ändrar inte sessionskonfigurationen som sessionen använder.
För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Typ: | SwitchParameter |
Alias: | cf |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ConnectionUri
Anger en URI som definierar anslutningsslutpunkten som används för att återansluta till den frånkopplade sessionen.
URI:n måste vara fullständigt kvalificerad. Strängens format är följande:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Standardvärdet är följande:
http://localhost:5985/WSMAN
Om du inte anger en anslutnings-URI kan du använda parametrarna UseSSL, ComputerName, Port och ApplicationName för att ange anslutnings-URI-värdena.
Giltiga värden för transportsegmentet för URI:n är HTTP och HTTPS. Om du anger en anslutnings-URI med ett transportsegment, men inte anger någon port, skapas sessionen med standardportar: 80 för HTTP och 443 för HTTPS. Om du vill använda standardportarna för PowerShell-fjärrkommunikation anger du port 5985 för HTTP eller 5986 för HTTPS.
Om måldatorn omdirigerar anslutningen till en annan URI förhindrar PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.
Typ: | Uri |
Alias: | URI, CU |
Position: | 0 |
Standardvärde: | http://localhost:5985/WSMAN |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-Credential
Anger ett användarkonto som har behörighet att ansluta till den frånkopplade sessionen. Standard är den aktuella användaren.
Ange ett användarnamn, till exempel User01 eller Domain01\User01, eller ange ett PSCredential-objekt som genereras av cmdleten Get-Credential
. Om du skriver ett användarnamn uppmanas du att ange lösenordet.
Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.
Kommentar
Mer information om SecureString-dataskydd finns i Hur säker är SecureString?.
Typ: | PSCredential |
Position: | Named |
Standardvärde: | Current user |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Id
Anger ID för en frånkopplad session. Parametern ID fungerar bara när den frånkopplade sessionen tidigare var ansluten till den aktuella sessionen.
Den här parametern är giltig, men inte effektiv, när sessionen lagras på den lokala datorn, men inte var ansluten till den aktuella sessionen.
Typ: | Int32 |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-InstanceId
Anger instans-ID för den frånkopplade sessionen. Instans-ID:t är ett GUID som unikt identifierar en PSSession på en lokal dator eller fjärrdator. Instans-ID:t lagras i egenskapen InstanceID för PSSession.
Typ: | Guid |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-JobName
Anger ett eget namn för jobbet som Receive-PSSession
returneras.
Receive-PSSession
returnerar ett jobb när värdet för parametern OutTarget är Jobb eller jobbet som körs i den frånkopplade sessionen startades i den aktuella sessionen.
Om jobbet som körs i den frånkopplade sessionen startades i den aktuella sessionen återanvänder PowerShell det ursprungliga jobbobjektet i sessionen och ignorerar värdet för parametern JobName .
Om jobbet som körs i den frånkopplade sessionen startades i en annan session skapar PowerShell ett nytt jobbobjekt. Den använder ett standardnamn, men du kan använda den här parametern för att ändra namnet.
Om standardvärdet eller det explicita värdet för parametern OutTarget inte är Jobb lyckas kommandot, men parametern JobName har ingen effekt.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Name
Anger det egna namnet på den frånkopplade sessionen.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-OutTarget
Avgör hur sessionsresultatet returneras. De acceptabla värdena för den här parametern är:
- Jobb. Returnerar resultatet asynkront i ett jobbobjekt. Du kan använda parametern JobName för att ange ett namn eller ett nytt namn för jobbet.
- Värd. Returnerar resultatet till kommandoraden (synkront). Om kommandot återupptas eller om resultatet består av ett stort antal objekt kan svaret fördröjas.
Standardvärdet för parametern OutTarget är Värd. Om kommandot som tas emot i en frånkopplad session startades i den aktuella sessionen är standardvärdet för parametern OutTarget det formulär där kommandot startades. Om kommandot startades som ett jobb returneras det som standard som ett jobb. Annars returneras den som standard till värdprogrammet.
Normalt visar värdprogrammet returnerade objekt på kommandoraden utan fördröjning, men det här beteendet kan variera.
Typ: | OutTarget |
Godkända värden: | Default, Host, Job |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Port
Anger fjärrdatorns nätverksport som används för att återansluta till sessionen. Om du vill ansluta till en fjärrdator måste den lyssna på porten som anslutningen använder. Standardportarna är 5985, som är WinRM-porten för HTTP och 5986, som är WinRM-porten för HTTPS.
Innan du använder en alternativ port måste du konfigurera WinRM-lyssnaren på fjärrdatorn så att den lyssnar på den porten. Om du vill konfigurera lyssnaren skriver du följande två kommandon i PowerShell-prompten:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Använd inte portparametern om det inte är nödvändigt. Porten som anges i kommandot gäller för alla datorer eller sessioner där kommandot körs. En alternativ portinställning kan förhindra att kommandot körs på alla datorer.
Typ: | Int32 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Session
Anger den frånkopplade sessionen. Ange en variabel som innehåller PSSession eller ett kommando som skapar eller hämtar PSSession, till exempel ett Get-PSSession
kommando.
Typ: | PSSession |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-SessionOption
Anger avancerade alternativ för sessionen. Ange ett SessionOption-objekt , till exempel ett objekt som du skapar med hjälp av cmdleten New-PSSessionOption
eller en hash-tabell där nycklarna är sessionsalternativnamn och värdena är sessionsalternativvärden.
Standardvärdena för alternativen bestäms av värdet för $PSSessionOption
inställningsvariabeln, om den har angetts. Annars upprättas standardvärdena av de alternativ som anges i sessionskonfigurationen.
Sessionsalternativvärdena har företräde framför standardvärden för sessioner som anges i inställningsvariabeln $PSSessionOption
och i sessionskonfigurationen. De har dock inte företräde framför maximala värden, kvoter eller gränser som anges i sessionskonfigurationen.
En beskrivning av sessionsalternativen som innehåller standardvärdena finns i New-PSSessionOption
. Information om $PSSessionOption-inställningsvariabeln finns i about_Preference_Variables. För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.
Typ: | PSSessionOption |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-UseSSL
Anger att den här cmdleten använder SSL-protokollet (Secure Sockets Layer) för att ansluta till den frånkopplade sessionen. Som standard används inte SSL.
WS-Management krypterar allt PowerShell-innehåll som överförs via nätverket. UseSSL är ett ytterligare skydd som skickar data över en HTTPS-anslutning i stället för en HTTP-anslutning.
Om du använder den här parametern och SSL inte är tillgängligt på porten som används för kommandot misslyckas kommandot.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Typ: | SwitchParameter |
Alias: | wi |
Position: | Named |
Standardvärde: | False |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
Du kan skicka sessionsobjekt till den här cmdleten, till exempel objekt som returneras av cmdleten Get-PSSession
.
Du kan skicka sessions-ID:t till den här cmdleten.
Du kan skicka instans-ID:t för sessioner med den här cmdleten.
Du kan skicka sessionsnamn till den här cmdleten.
Utdata
Om värdet eller standardvärdet för parametern OutTarget är Job
returnerar Receive-PSSession
ett jobbobjekt.
Den här cmdleten returnerar resultatet av kommandon som kördes i den frånkopplade sessionen, om några.
Kommentarer
Windows PowerShell innehåller följande alias för Receive-PSSession
:
rcsn
Receive-PSSession
hämtar endast resultat från sessioner som har kopplats från. Endast sessioner som är anslutna till eller avslutas på datorer som kör PowerShell 3.0 eller senare versioner kan kopplas från och återanslutas.
Om kommandona som kördes i den frånkopplade sessionen inte genererade resultat eller om resultaten redan returnerades till en annan session Receive-PSSession
genererar inga utdata.
En sessions utdatabuffertningsläge avgör hur kommandon i sessionen hanterar utdata när sessionen kopplas från. När värdet för alternativet OutputBufferingMode för sessionen är Drop och utdatabufferten är full, börjar kommandot ta bort utdata. Receive-PSSession
det går inte att återställa dessa utdata. Mer information om alternativet för utdatabuffertningsläge finns i hjälpartiklarna för cmdletarna New-PSSessionOption och New-PSTransportOption .
Du kan inte ändra tidsgränsvärdet för inaktivitet för en PSSession när du ansluter till PSSession eller får resultat. Parametern Receive-PSSession
SessionOption i tar ett SessionOption-objekt som har ett IdleTimeout-värde. Värdet IdleTimeout för Objektet SessionOption och värdet IdleTimeout för variabeln $PSSessionOption
ignoreras dock när det ansluter till en PSSession eller tar emot resultat.
- Du kan ange och ändra tidsgränsen för inaktivitet för en PSSession när du skapar PSSession, med hjälp
New-PSSession
av cmdletarna ellerInvoke-Command
och när du kopplar från PSSession. - Egenskapen IdleTimeout för en PSSession är viktig för frånkopplade sessioner eftersom den avgör hur länge en frånkopplad session underhålls på fjärrdatorn. Frånkopplade sessioner anses vara inaktiva från den tidpunkt då de kopplas från, även om kommandon körs i den frånkopplade sessionen.
Om du startar ett jobb i en fjärrsession med hjälp av parametern AsJob för cmdleten Invoke-Command
skapas jobbobjektet i den aktuella sessionen, även om jobbet körs i fjärrsessionen. Om du kopplar från fjärrsessionen kopplas jobbobjektet i den aktuella sessionen från jobbet. Jobbobjektet innehåller alla resultat som returnerades till det, men som inte får nya resultat från jobbet i den frånkopplade sessionen.
Om en annan klient ansluter till sessionen som innehåller det jobb som körs är resultaten som levererades till det ursprungliga jobbobjektet i den ursprungliga sessionen inte tillgängliga i den nyligen anslutna sessionen. Endast resultat som inte levererades till det ursprungliga jobbobjektet är tillgängliga i den återanslutna sessionen.
Om du startar ett skript i en session och sedan kopplar från sessionen är alla resultat som skriptet levererar till sessionen innan du kopplar från inte tillgängliga för en annan klient som ansluter till sessionen.
Om du vill förhindra dataförlust i sessioner som du tänker koppla från använder du parametern InDisconnectedSession i cmdleten Invoke-Command
. Eftersom den här parametern förhindrar att resultat returneras till den aktuella sessionen är alla resultat tillgängliga när sessionen återansluts.
Du kan också förhindra dataförlust med hjälp av cmdleten Invoke-Command
för att köra ett Start-Job
kommando i fjärrsessionen. I det här fallet skapas jobbobjektet i fjärrsessionen. Du kan inte använda cmdleten Receive-PSSession
för att hämta jobbresultatet. Använd i stället cmdleten Connect-PSSession
för att ansluta till sessionen och använd sedan cmdleten Invoke-Command
för att köra ett Receive-Job
kommando i sessionen.
När en session som innehåller ett jobb som körs kopplas från och sedan återansluts återanvänds det ursprungliga jobbobjektet endast om jobbet är frånkopplat och återanslutet till samma session, och kommandot för att återansluta inte anger något nytt jobbnamn. Om sessionen återansluts till en annan klientsession eller om ett nytt jobbnamn har angetts skapar PowerShell ett nytt jobbobjekt för den nya sessionen.
När du kopplar från en PSSession är sessionstillståndet Frånkopplat och tillgängligheten är Ingen.
- Värdet för egenskapen State är relativt till den aktuella sessionen. Värdet Frånkopplad innebär att PSSession inte är ansluten till den aktuella sessionen. Det betyder dock inte att PSSession är frånkopplad från alla sessioner. Den kan vara ansluten till en annan session. Om du vill avgöra om du kan ansluta eller återansluta till sessionen använder du egenskapen Tillgänglighet .
- Ett tillgänglighetsvärde på Ingen anger att du kan ansluta till sessionen. Värdet Upptagen anger att du inte kan ansluta till PSSession eftersom den är ansluten till en annan session.
- Mer information om värdena för egenskapen State för sessioner finns i RunspaceState.
- Mer information om värdena för egenskapen Tillgänglighet för sessioner finns i RunspaceAvailability.