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]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-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
-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 Windows PowerShell-sessioner (PSSession) som var frånkopplade. Om sessionen är ansluten får Receive-PSSession 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.
Du kan använda ett Receive-PSSession- utöver eller i stället för ett Connect-PSSession kommando. Receive-PSSession kan ansluta till valfri frånkopplad eller återansluten session. Dessa inkluderar de som startades i andra sessioner eller på andra datorer.
Receive-PSSession fungerar på PSSessioner som har kopplats från avsiktligt, till exempel genom att använda Disconnect-PSSession-cmdleten eller parametern InDisconnectedSession för Invoke-Command-cmdleten, eller oavsiktligt, till exempel 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 ansluter Receive-PSSession till sessionen, men returnerar inga utdata eller fel.
Mer information om funktionen Frånkopplade sessioner finns i about_Remote_Disconnected_Sessions.
Den här cmdleten introducerades i Windows PowerShell 3.0.
Exempel
Exempel 1: Anslut till en PSSession
PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask
Det här kommandot använder cmdleten Receive-PSSession för att ansluta till ITTask-sessionen på Server01-datorn och få resultatet av kommandon som kördes i sessionen.
Eftersom kommandot inte använder parametern OutTarget visas resultatet på kommandoraden.
Exempel 2: Hämta resultat av alla kommandon på frånkopplade sessioner
PS C:\> Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Det här kommandot hämtar resultatet av alla kommandon som körs i alla frånkopplade sessioner på Server01- och Server02-datorerna.
Om någon session inte har kopplats från eller inte kör kommandon Ta emot PSSession inte ansluter till sessionen och returnerar inga utdata eller fel.
Exempel 3: Hämta resultatet av ett skript som körs i en session
PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask -OutTarget Job -JobName ITTaskJob01 -Credential Domain01\Admin01
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ITTaskJob01 Running True Server01
Det här kommandot använder cmdleten Receive-PSSession för att hämta resultatet av ett skript som kördes i ITTask-sessionen på Server01-datorn.
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 och parametern JobName för att ange ett namn för jobbet i den återanslutna sessionen.
Kommandot använder parametern Credential för att köra kommandot Receive-PSSession med hjälp av domänadministratörens 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
The first command uses the New-PSSession cmdlet to create a session on the Server01 computer. The command saves the session in the $s variable.The second command gets the session in the $s variable. Notice that the **State** is Opened and the **Availability** is Available. These values indicate that you are connected to the session and can run commands in the session.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS C:\> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
8 AD Server01 Opened ADEndpoint Available
The third command uses the Invoke-Command cmdlet to run a script in the session in the $s variable.The script begins to run and return data, but a network outage occurs that interrupts the session. The user has to exit the session and restart the local computer.
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
When the computer restarts, the user starts Windows PowerShell and runs a Get-PSSession command to get sessions on the Server01 computer. The output shows that the AD session still exists on the Server01 computer. The **State** indicates that it is disconnected and the **Availability** value, None, indicates that it is not connected to any client sessions.
PS C:\> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell None
8 AD Server01 Disconnected ADEndpoint None
The fifth command uses the **Receive-PSSession** cmdlet to reconnect to the AD session and get the results of the script that ran in the session. The command uses the *OutTarget* parameter to request the results in a job named ADJob.The command returns a job object. The output indicates that the script is still running.
PS C:\> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ADJob Running True Server01
The sixth command uses the Get-PSSession cmdlet to check the job state. The output confirms that, in addition to resuming script execution and getting the script results, the **Receive-PSSession** cmdlet reconnected to the AD session, which is now open and available for commands.
PS C:\> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell Busy
8 AD Server01 Opened ADEndpoint Available
I det här exemplet används cmdleten Receive-PSSession för att få resultatet av ett jobb efter ett nätverksavbrott som stör en sessionsanslutning. Windows PowerShell försöker automatiskt återansluta sessionen en gång varje sekund under de kommande fyra minuterna och avger bara ansträngningen om alla försök i fyraminutersintervallet misslyckas.
Exempel 5: Återanslut till frånkopplade sessioner
The first command uses the Invoke-Command cmdlet to run a script on the three remote computers. Because the scripts gathers and summarize data from multiple databases, it often takes the script an extended time to finish. The command uses the *InDisconnectedSession* parameter, which starts the scripts and then immediately disconnects the sessions.The command uses the *SessionOption* parameter to extend the **IdleTimeout** value of the disconnected session. Disconnected sessions are considered to be idle from the moment they are disconnected, so it is important to set the idle time-out for long enough that the commands can complete and you can reconnect to the session, if necessary. You can set the **IdleTimeout** only when you create the **PSSession** and change it only when you disconnect from it. You cannot change the **IdleTimeout** value when you connect to a **PSSession** or receiving its results.After running the command, the user exits Windows PowerShell and closes the computer .
PS C:\> Invoke-Command -InDisconnectedSession -ComputerName Server01, Server02, Server30 -FilePath \\Server12\Scripts\SharedScripts\Get-BugStatus.ps1 -Name BugStatus -SessionOption @{IdleTimeout = 86400000} -ConfigurationName ITTasks# Exit
# Start Windows PowerShell on a different computer.
On the next day, the user resumes Windows and starts Windows PowerShell. The second command uses the Get-PSSession cmdlet to get the sessions in which the scripts were running. The command identifies the sessions by the computer name, session name, and the name of the session configuration and saves the sessions in the $s variable.The third command displays the value of the $s variable. The output shows that the sessions are disconnected, but not busy, as expected.
PS C:\> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS C:\> $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
The fourth command uses the **Receive-PSSession** cmdlet to connect to the sessions in the $s variable and get their results. The command saves the results in the $Results variable.Another display of the $s variable shows that the sessions are connected and available for commands.
PS C:\> $Results = Receive-PSSession -Session $s
PS C:\> $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
The fifth command displays the script results in the $Results variable. If any of the results are unexpected, the user can run commands in the sessions to investigate.
PS C:\> $Results
Bug Report - Domain 01
----------------------
ComputerName BugCount LastUpdated
-------------- --------- ------------
Server01 121 Friday, December 30, 2011 5:03:34 PM
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.
Exempel 6: Köra ett jobb i en frånkopplad session
The first command uses the New-PSSession cmdlet to create the Test session on the Server01 computer. The command saves the session in the $s variable.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name Test
The second command uses the Invoke-Command cmdlet to run a command in the session in the $s variable. The command uses the *AsJob* parameter to run the command as a job and to create the job object in the current session. The command returns a job object, which is saved in the $j variable.The third command displays the job object in the $j variable.
PS C:\> $j = Invoke-Command -Session $s { 1..1500 | Foreach-Object {"Return $_"; sleep 30}} -AsJob
PS C:\> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Running True Server01
The fourth command disconnects the session in the $s variable.
PS C:\> $s | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server01 Disconnected Microsoft.PowerShell None
The fifth command shows the effect of disconnecting on the job object in the $j variable. The job state is now Disconnected.
PS C:\> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Disconnected True Server01
The sixth command runs a Receive-Job command on the job in the $j variable. The output shows that the job began to return output before the session and the job were disconnected.
PS C:\> Receive-Job $j -Keep
Return 1
Return 2
The seventh command is run in the same client session. The command uses the Connect-PSSession cmdlet to reconnect to the Test session on the Server01 computer and saves the session in the $s2 variable.
PS C:\> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
The eighth command uses the **Receive-PSSession** cmdlet to get the results of the job that was running in the session. Because the command is run in the same session, **Receive-PSSession** returns the results as a job by default and reuses the same job object. The command saves the job in the $j2 variable.The ninth command uses the **Receive-Job** cmdlet to get the results of the job in the $j variable.
PS C:\> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS C:\> Receive-Job $j
Return 3
Return 4
Det här exemplet visar vad som händer med ett jobb som körs i en frånkopplad session.
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 Windows 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 MaximumConnectionRedirectionCount sessionsalternativvärde. Använd parametern MaximumRedirection för cmdleten New-PSSessionOption eller ange egenskapen MaximumConnectionRedirectionCount för $PSSessionOption-inställningsvariabeln. Standardvärdet är 5.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
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 till exempel programnamnet WSMan: https://localhost:5985/WSMAN
. Programnamnet för en session lagras i egenskapen Runspace.ConnectionInfo.AppName för sessionen.
Värdet för den här parametern 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ändarens autentiseringsuppgifter i kommandot för att återansluta till den frånkopplade sessionen. De godtagbara värdena för den här parametern är:
- Standard
- 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.
Försiktighet
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: | None |
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. De kan endast mappas till lokala användarkonton. De 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 i Windows PowerShell Cert: -enheten.
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. Standardvärdet är den lokala datorn.
Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn på en dator. Jokertecken tillåts inte. Om du vill ange den lokala datorn skriver du datornamnet, localhost eller en punkt (.)
Typ: | String |
Alias: | Cn |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | False |
-ConfigurationName
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: https://schemas.microsoft.com/powershell
. Konfigurationsnamnet för en session lagras i egenskapen ConfigurationName för sessionen.
Värdet för den här parametern används för att välja och filtrera sessioner. Den ändrar inte sessionskonfigurationen som sessionen använder.
Mer information om sessionskonfigurationer finns i 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. Formatet för den här strängen är följande:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Standardvärdet är följande:
https://localhost:5985/WSMAN
Om du inte anger någon anslutnings-URI kan du använda parametrarna UseSSL, ComputerName, Portoch ApplicationName för att ange anslutnings-URI-värden.
Giltiga värden för segmentet Transport i 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 Windows 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 Windows PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.
Typ: | Uri |
Alias: | URI, CU |
Position: | 0 |
Standardvärde: | https://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. Standardvärdet är den aktuella användaren.
Ange ett användarnamn, till exempel User01 eller Domain01\User01. Eller ange ett PSCredential- objekt, till exempel ett objekt som genereras av Get-Credential-cmdleten. Om du skriver ett användarnamn uppmanas du att ange ett lösenord i den här cmdleten.
Typ: | PSCredential |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Id
Anger ID för den frånkopplade sessionen. 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 returnerar.
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 Windows 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 Windows 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 godtagbara 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. Men om kommandot som tas emot i den frånkopplade sessionen startades i den aktuella sessionen är standardvärdet för parametern OutTarget formuläret där kommandot startades. Om kommandot startades som ett jobb returneras det som ett jobb som standard. 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 nätverksporten på fjärrdatorn som används för att återansluta till sessionen. Om du vill ansluta till en fjärrdator måste fjärrdatorn 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 Windows 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 parametern Port om du inte måste göra det. 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ällningsvariabel, om den anges. 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 $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 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. Mer information om sessionskonfigurationer finns i 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 Windows 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, men SSL inte är tillgängligt på porten som används för kommandot, misslyckas kommandot.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-WhatIf
Visar vad som skulle hända om cmdleten körs. 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 exempel de som returneras av cmdleten Get-PSSession, till den här cmdleten.
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
System.Management.Automation.Job or PSObject
Den här cmdleten returnerar resultatet av kommandon som kördes i den frånkopplade sessionen, om några. Om värdet eller standardvärdet för parametern OutTarget är Jobb returnerar Receive-PSSession ett jobbobjekt. Annars returneras objekt som representerar kommandoresultatet.
Kommentarer
Receive-PSSession endast hämtar resultat från sessioner som har kopplats från. Endast sessioner som är anslutna till eller avslutas på datorer som kör Windows 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 genererar Receive-PSSession inga utdata.
Utdatabuffertningsläget för en session avgör hur kommandon i sessionen hanterar utdata när sessionen kopplas från. När värdet för OutputBufferingMode alternativet för sessionen är Släpp och utdatabufferten är full, börjar kommandot ta bort utdata. Receive-PSSession kan inte återställa utdata. Mer information om alternativet för utdatabuffertningsläge finns i hjälpavsnitten 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 SessionOption för Receive-PSSession tar ett SessionOption-objekt som har ett IdleTimeout--värde. Men värdet IdleTimeout för objektet SessionOption och värdet IdleTimeout för variabeln $PSSessionOption ignoreras när den 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 av cmdletarna New-PSSession eller Invoke-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 i 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 fortfarande alla resultat som returnerades till det, men det får inte 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 sedan använda 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 Windows 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 relativ till den aktuella sessionen. Därför innebär värdet Frånkopplad att PSSession- inte är ansluten till den aktuella sessionen. Det innebär 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änglighet värdet 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 Enumeration i MSDN-biblioteket.
Mer information om värdena för egenskapen Availability för sessioner finns i RunspaceAvailability Enumeration.