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
Den här cmdleten är endast tillgänglig på Windows-plattformen.
Cmdleten Receive-PSSession
hämtar resultatet av kommandon som körs i PowerShell-sessioner (PSSession) som har kopplats från. Om sessionen är ansluten Receive-PSSession
hämtar resultatet av kommandon som kördes när sessionen kopplades från. Om sessionen fortfarande är frånkopplad Receive-PSSession
, ansluter till sessionen, återupptar alla kommandon som har pausats och hämtar resultatet av kommandon som körs i sessionen.
Denna cmdlet introducerades i PowerShell 3.0.
Du kan använda ett 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 har kopplats från avsiktligt med hjälp av cmdleten Disconnect-PSSession
eller parametern Invoke-Command
InDisconnectedSession . Eller oavsiktligt frånkopplad 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 till sessionen, men returnerar inga utdata eller fel.
Mer information om funktionen Frånkopplade sessioner finns i about_Remote_Disconnected_Sessions.
I vissa exempel används splattning för att minska linjelängden och förbättra läsbarheten. Mer information finns i about_Splatting.
Exempel
Exempel 1: Ansluta 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 från 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 var frånkopplad eller inte kör kommandon, Receive-PSSession
ansluter 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åt 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. JobName-parametern anger ett namn för jobbet i den återanslutna sessionen.
Parametern Credential kör Receive-PSSession
kommandot med hjälp av en domänadministratörs behörigheter.
Utdata visar att Receive-PSSession
returnerade resultatet som ett jobb i den aktuella sessionen. Använd ett Receive-Job
kommando för att hämta jobbresultatet
Exempel 4: Få 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 överger bara arbetet om alla försök under 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. Värdet Tillgänglighet för 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 hämtar 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 den tidpunkt då 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 PSSessionen och bara ändra den när du kopplar från den. Du kan inte ändra värdet för IdleTimeout när du ansluter till en PSSession eller tar emot dess resultat. När du har kört kommandot 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 deras 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 asjob-parametern 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åt 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 före sessionen och att 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 denna cmdlet 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 PowerShell inte anslutningar, men du kan använda den här parametern för att göra det möjligt att omdirigera anslutningen.
Du kan också begränsa antalet gånger som 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ApplicationName
Anger ett program. Den här cmdleten ansluter endast till sessioner som använder det angivna programmet.
Ange programnamnsegmentet 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.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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
- Basic
- Credssp
- Sammandrag
- Kerberos
- Negotiate
- 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ändarens autentiseringsuppgifter 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.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Default |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CertificateThumbprint
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 certifikats tumavtryck använder du ett Get-Item
eller Get-ChildItem
-kommando på PowerShell-enheten Cert:
.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Anger den dator där den frånkopplade sessionen lagras. Sessioner lagras på den dator som finns på serversidan eller som tar emot 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.
Type: | String |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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 en fullständigt kvalificerad resurs-URI för en sessionskonfiguration. Om du bara anger konfigurationsnamnet läggs följande schema-URI till:
http://schemas.microsoft.com/powershell
.
Konfigurationsnamnet för en session lagras i egenskapen ConfigurationName för sessionen.
Parameterns värde används för att välja och filtrera sessioner. Den ändrar inte sessionskonfigurationen som sessionen använder.
För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 anslutningens URI-värden.
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 standardportarna: 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 såvida du inte använder parametern AllowRedirection i kommandot.
Type: | Uri |
Aliases: | URI, CU |
Position: | 0 |
Default value: | http://localhost:5985/WSMAN |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Anteckning
Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Anger ID för en frånkopplad session. Id-parametern 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.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | Guid |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | 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 jobname-parametern .
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 outtarget-parametern inte är Jobb, lyckas kommandot, men jobname-parametern har ingen effekt.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Anger det egna namnet på den frånkopplade sessionen.
Type: | String |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutTarget
Avgör hur sessionsresultatet returneras. De acceptabla värdena för den här parametern är:
- Jobb. Returnerar resultaten asynkront i ett jobbobjekt. Du kan använda jobname-parametern 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 till värdprogrammet som standard.
Normalt visar värdprogrammet returnerade objekt på kommandoraden utan fördröjning, men det här beteendet kan variera.
Type: | OutTarget |
Accepted values: | Default, Host, Job |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | 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å 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.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Värdena för sessionsalternativ har företräde framför standardvärdena för sessioner som angetts i $PSSessionOption
inställningsvariabeln och i sessionskonfigurationen. De har dock inte företräde framför de högsta värden, kvoter eller gränser som angetts 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.
Type: | PSSessionOption |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseSSL
Anger att denna cmdlet 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 via 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 till 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 sådana finns.
Kommentarer
PowerShell innehåller följande alias för Receive-PSSession
:
- Alla plattformar:
rcsn
Den här cmdleten är endast tillgänglig på Windows-plattformar.
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 Släpp och utdatabufferten är full börjar kommandot ta bort utdata. Receive-PSSession
kan inte å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 timeout-värdet för inaktivitet för en PSSession när du ansluter till PSSession eller får resultat. Parametern Receive-PSSession
SessionOption för 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 det ögonblick 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 asjob-parametern 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 bort 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 den session som innehåller det pågående jobbet ä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 för 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 pågående jobb 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 i förhållande 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.
Relaterade länkar
Feedback
Skicka och visa feedback för