Receive-PSSession
Resultaten ophalen van opdrachten in niet-verbonden sessies
Syntaxis
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
De Receive-PSSession cmdlet haalt de resultaten op van opdrachten die worden uitgevoerd in Windows PowerShell-sessies (PSSession) die zijn verbroken. Als de sessie momenteel is verbonden, krijgt Receive-PSSession de resultaten ophaalt van opdrachten die werden uitgevoerd toen de sessie werd verbroken. Als de verbinding met de sessie nog steeds is verbroken, Receive-PSSession verbinding maakt met de sessie, worden alle opdrachten hervat die zijn onderbroken en worden de resultaten opgehaald van opdrachten die in de sessie worden uitgevoerd.
U kunt een Receive-PSSession- naast of in plaats van een Connect-PSSession opdracht gebruiken. Receive-PSSession- verbinding kan maken met elke verbroken of opnieuw verbonden sessie. Dit zijn de sessies die zijn gestart in andere sessies of op andere computers.
Receive-PSSession werkt op PSSessions die opzettelijk zijn losgekoppeld, zoals met behulp van de Disconnect-PSSession cmdlet of de InDisconnectedSession parameter van de Invoke-Command cmdlet, of onbedoeld, zoals door een netwerkonderbreking.
Als u de cmdlet Receive-PSSession gebruikt om verbinding te maken met een sessie waarin geen opdrachten worden uitgevoerd of onderbroken, maakt Receive-PSSession- verbinding met de sessie, maar retourneert geen uitvoer of fouten.
Zie about_Remote_Disconnected_Sessionsvoor meer informatie over de functie Niet-verbonden sessies.
Deze cmdlet is geïntroduceerd in Windows PowerShell 3.0.
Voorbeelden
Voorbeeld 1: Verbinding maken met een PSSession
PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask
Met deze opdracht wordt de cmdlet Receive-PSSession gebruikt om verbinding te maken met de ITTask-sessie op de Server01-computer en de resultaten op te halen van opdrachten die in de sessie werden uitgevoerd.
Omdat de opdracht niet de OutTarget parameter gebruikt, worden de resultaten weergegeven op de opdrachtregel.
Voorbeeld 2: Resultaten ophalen van alle opdrachten voor niet-verbonden sessies
PS C:\> Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Met deze opdracht worden de resultaten opgehaald van alle opdrachten die worden uitgevoerd in alle niet-verbonden sessies op de Server01- en Server02-computers.
Als een sessie niet is verbroken of geen opdrachten uitvoert, Receive-PSSession geen verbinding maakt met de sessie en geen uitvoer of fouten retourneert.
Voorbeeld 3: De resultaten ophalen van een script dat wordt uitgevoerd in een sessie
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
Met deze opdracht wordt de cmdlet Receive-PSSession gebruikt om de resultaten op te halen van een script dat werd uitgevoerd in de ITTask-sessie op de Server01-computer.
De opdracht maakt gebruik van de parameters ComputerName en Name om de niet-verbonden sessie te identificeren. Hierbij wordt de parameter OutTarget met de waarde Job gebruikt om Receive-PSSession- om de resultaten als een taak te retourneren en de parameter JobName om een naam op te geven voor de taak in de opnieuw verbonden sessie.
De opdracht gebruikt de parameter Credential om de opdracht Receive-PSSession uit te voeren met behulp van de machtigingen van een domeinbeheerder.
In de uitvoer ziet u dat Receive-PSSession de resultaten als een taak in de huidige sessie heeft geretourneerd. Gebruik een Receive-Job opdracht om de taakresultaten op te halen
Voorbeeld 4: Resultaten ophalen na een netwerkstoring
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
In dit voorbeeld wordt de cmdlet Receive-PSSession gebruikt om de resultaten van een taak op te halen nadat een netwerkstoring een sessieverbinding heeft onderbroken. Windows PowerShell probeert automatisch opnieuw verbinding te maken met de sessie één keer per seconde voor de volgende vier minuten en de inspanning wordt alleen afgebroken als alle pogingen in het interval van vier minuten mislukken.
Voorbeeld 5: Opnieuw verbinding maken met verbroken sessies
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
In dit voorbeeld wordt de cmdlet Receive-PSSession gebruikt om opnieuw verbinding te maken met sessies die opzettelijk zijn verbroken en de resultaten te verkrijgen van taken die in de sessies werden uitgevoerd.
Voorbeeld 6: Een taak uitvoeren in een niet-verbonden sessie
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
In dit voorbeeld ziet u wat er gebeurt met een taak die wordt uitgevoerd in een niet-verbonden sessie.
Parameters
-AllowRedirection
Geeft aan dat deze cmdlet omleiding van deze verbinding met een alternatieve URI (Uniform Resource Identifier) toestaat.
Wanneer u de parameter ConnectionURI gebruikt, kan de externe bestemming een instructie retourneren om om te leiden naar een andere URI. Windows PowerShell leidt standaard geen verbindingen om, maar u kunt deze parameter gebruiken om de verbinding om te leiden.
U kunt ook het aantal keren beperken dat de verbinding wordt omgeleid door de waarde van de MaximumConnectionRedirectionCount sessieoptie te wijzigen. Gebruik de parameter MaximumRedirection van de cmdlet New-PSSessionOption of stel de eigenschap MaximumConnectionRedirectionCount in van de $PSSessionOption voorkeursvariabele. De standaardwaarde is 5.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ApplicationName
Hiermee geeft u een toepassing op. Deze cmdlet maakt alleen verbinding met sessies die gebruikmaken van de opgegeven toepassing.
Voer het toepassingsnaamsegment van de verbindings-URI in. In de volgende verbindings-URI is de naam van de toepassing bijvoorbeeld WSMan: https://localhost:5985/WSMAN
. De toepassingsnaam van een sessie wordt opgeslagen in de eigenschap Runspace.ConnectionInfo.AppName van de sessie.
De waarde van deze parameter wordt gebruikt voor het selecteren en filteren van sessies. De toepassing die door de sessie wordt gebruikt, wordt niet gewijzigd.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Authentication
Hiermee geeft u het mechanisme op dat wordt gebruikt voor het verifiëren van de referenties van de gebruiker in de opdracht om opnieuw verbinding te maken met de niet-verbonden sessie. De acceptabele waarden voor deze parameter zijn:
- Verstek
- Basisch
- Credssp
- Verteren
- Kerberos
- Onderhandelen
- NegotiateWithImplicitCredential
De standaardwaarde is Standaard.
Zie Opsomming AuthenticationMechanismvoor meer informatie over de waarden van deze parameter.
Voorzichtigheid
CredSSP-verificatie (Credential Security Support Provider), waarbij de gebruikersreferenties worden doorgegeven aan een externe computer die moet worden geverifieerd, is ontworpen voor opdrachten waarvoor verificatie is vereist voor meer dan één resource, zoals toegang tot een externe netwerkshare. Dit mechanisme verhoogt het beveiligingsrisico van de externe bewerking. Als de externe computer is aangetast, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.
Type: | AuthenticationMechanism |
Geaccepteerde waarden: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-CertificateThumbprint
Hiermee geeft u het certificaat van de digitale openbare sleutel (X509) van een gebruikersaccount dat gemachtigd is om verbinding te maken met de niet-verbonden sessie. Voer de vingerafdruk van het certificaat in.
Certificaten worden gebruikt in verificatie op basis van clientcertificaten. Ze kunnen alleen worden toegewezen aan lokale gebruikersaccounts. Ze werken niet met domeinaccounts.
Als u een vingerafdruk van een certificaat wilt ophalen, gebruikt u een Get-Item of Get-ChildItem opdracht in het Windows PowerShell-certificaat: station.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ComputerName
Hiermee geeft u de computer waarop de niet-verbonden sessie wordt opgeslagen. Sessies worden opgeslagen op de computer die zich aan de serverzijde bevindt of het ontvangen van een verbinding. De standaardwaarde is de lokale computer.
Typ de NetBIOS-naam, een IP-adres of een volledig gekwalificeerde domeinnaam van één computer. Jokertekens zijn niet toegestaan. Als u de lokale computer wilt opgeven, typt u de computernaam, localhost of een punt (.)
Type: | String |
Aliassen: | Cn |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ConfigurationName
Maakt alleen verbinding met sessies die gebruikmaken van de opgegeven sessieconfiguratie.
Voer een configuratienaam of de volledig gekwalificeerde resource-URI in voor een sessieconfiguratie. Als u alleen de configuratienaam opgeeft, wordt de volgende schema-URI voorafgegaan: https://schemas.microsoft.com/powershell
. De configuratienaam van een sessie wordt opgeslagen in de eigenschap ConfigurationName van de sessie.
De waarde van deze parameter wordt gebruikt voor het selecteren en filteren van sessies. De sessieconfiguratie die door de sessie wordt gebruikt, wordt niet gewijzigd.
Zie about_Session_Configurationsvoor meer informatie over sessieconfiguraties.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Confirm
U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-ConnectionUri
Hiermee geeft u een URI op die het verbindingseindpunt definieert dat wordt gebruikt om opnieuw verbinding te maken met de niet-verbonden sessie.
De URI moet volledig gekwalificeerd zijn. De notatie van deze tekenreeks is als volgt:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
De standaardwaarde is als volgt:
https://localhost:5985/WSMAN
Als u geen verbindings-URI opgeeft, kunt u de UseSSL, ComputerName, Porten ApplicationName parameters gebruiken om de verbindings-URI-waarden op te geven.
Geldige waarden voor het segment Transport van de URI zijn HTTP en HTTPS. Als u een verbindings-URI met een transportsegment opgeeft, maar geen poort opgeeft, wordt de sessie gemaakt met standaardenpoorten: 80 voor HTTP en 443 voor HTTPS. Als u de standaardpoorten voor externe communicatie met Windows PowerShell wilt gebruiken, geeft u poort 5985 op voor HTTP of 5986 voor HTTPS.
Als de doelcomputer de verbinding omleidt naar een andere URI, voorkomt Windows PowerShell de omleiding, tenzij u de AllowRedirection parameter in de opdracht gebruikt.
Type: | Uri |
Aliassen: | URI, CU |
Position: | 0 |
Default value: | https://localhost:5985/WSMAN |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Credential
Hiermee geeft u een gebruikersaccount op dat gemachtigd is om verbinding te maken met de niet-verbonden sessie. De standaardwaarde is de huidige gebruiker.
Typ een gebruikersnaam, zoals User01 of Domain01\User01. U kunt ook een PSCredential--object invoeren, zoals een object dat is gegenereerd door de Get-Credential-cmdlet. Als u een gebruikersnaam typt, wordt u door deze cmdlet gevraagd om een wachtwoord.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Id
Hiermee geeft u de id van de niet-verbonden sessie. De parameter id werkt alleen wanneer de niet-verbonden sessie eerder is verbonden met de huidige sessie.
Deze parameter is geldig, maar niet effectief wanneer de sessie is opgeslagen op de lokale computer, maar niet is verbonden met de huidige sessie.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-InstanceId
Hiermee geeft u de exemplaar-id van de niet-verbonden sessie.
De exemplaar-id is een GUID waarmee een PSSession- op een lokale of externe computer uniek wordt geïdentificeerd.
De exemplaar-id wordt opgeslagen in de eigenschap InstanceID van de PSSession-.
Type: | Guid |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-JobName
Hiermee geeft u een beschrijvende naam op voor de taak die Receive-PSSession retourneert.
Receive-PSSession- retourneert een taak wanneer de waarde van de parameter OutTarget taak is of de taak die wordt uitgevoerd in de niet-verbonden sessie, is gestart in de huidige sessie.
Als de taak die wordt uitgevoerd in de niet-verbonden sessie is gestart in de huidige sessie, gebruikt Windows PowerShell het oorspronkelijke taakobject in de sessie opnieuw en negeert u de waarde van de parameter JobName.
Als de taak die in de niet-verbonden sessie wordt uitgevoerd, is gestart in een andere sessie, maakt Windows PowerShell een nieuw taakobject. Er wordt een standaardnaam gebruikt, maar u kunt deze parameter gebruiken om de naam te wijzigen.
Als de standaardwaarde of expliciete waarde van de OutTarget- parameter niet Job is, slaagt de opdracht, maar de parameter JobName heeft geen effect.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Name
Hiermee geeft u de beschrijvende naam van de niet-verbonden sessie.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-OutTarget
Bepaalt hoe de sessieresultaten worden geretourneerd. De acceptabele waarden voor deze parameter zijn:
- Baan. Retourneert de resultaten asynchroon in een taakobject. U kunt de parameter JobName gebruiken om een naam of nieuwe naam voor de taak op te geven.
- Gastheer. Retourneert de resultaten naar de opdrachtregel (synchroon). Als de opdracht wordt hervat of de resultaten bestaan uit een groot aantal objecten, kan het antwoord worden vertraagd.
De standaardwaarde van de parameter OutTarget is Host. Als de opdracht die wordt ontvangen in de niet-verbonden sessie echter is gestart in de huidige sessie, is de standaardwaarde van de parameter OutTarget het formulier waarin de opdracht is gestart. Als de opdracht is gestart als een taak, wordt deze standaard geretourneerd als een taak. Anders wordt deze standaard geretourneerd naar het hostprogramma.
Normaal gesproken geeft het hostprogramma zonder vertraging geretourneerde objecten weer op de opdrachtregel, maar dit gedrag kan variëren.
Type: | OutTarget |
Geaccepteerde waarden: | Default, Host, Job |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Port
Hiermee geeft u de netwerkpoort op de externe computer die wordt gebruikt om opnieuw verbinding te maken met de sessie. Als u verbinding wilt maken met een externe computer, moet de externe computer luisteren op de poort die door de verbinding wordt gebruikt. De standaardpoorten zijn 5985, de WinRM-poort voor HTTP en 5986, de WinRM-poort voor HTTPS.
Voordat u een alternatieve poort gebruikt, moet u de WinRM-listener op de externe computer configureren om naar die poort te luisteren. Als u de listener wilt configureren, typt u de volgende twee opdrachten bij de Windows PowerShell-prompt:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Gebruik de parameter Port niet, tenzij u dit moet doen. De poort die in de opdracht is ingesteld, is van toepassing op alle computers of sessies waarop de opdracht wordt uitgevoerd. Een alternatieve poortinstelling kan verhinderen dat de opdracht wordt uitgevoerd op alle computers.
Type: | Int32 |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Session
Hiermee geeft u de niet-verbonden sessie. Voer een variabele in die de PSSession- bevat of een opdracht waarmee de PSSession-wordt gemaakt of ophaalt, zoals een Get-PSSession opdracht.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-SessionOption
Hiermee geeft u geavanceerde opties voor de sessie. Voer een SessionOption--object in, zoals een object dat u maakt met behulp van de New-PSSessionOption-cmdlet of een hash-tabel waarin de sleutels namen van sessieopties zijn en de waarden sessieoptiewaarden zijn.
De standaardwaarden voor de opties worden bepaald door de waarde van de $PSSessionOption voorkeursvariabele, als deze is ingesteld. Anders worden de standaardwaarden ingesteld op basis van opties die zijn ingesteld in de sessieconfiguratie.
De waarden voor sessieopties hebben voorrang op standaardwaarden voor sessies die zijn ingesteld in de $PSSessionOption voorkeursvariabele en in de sessieconfiguratie. Ze hebben echter geen voorrang op maximumwaarden, quota of limieten die zijn ingesteld in de sessieconfiguratie.
Zie New-PSSessionOption voor een beschrijving van de sessieopties die de standaardwaarden bevatten. Zie about_Preference_Variablesvoor meer informatie over de $PSSessionOption voorkeursvariabele. Zie about_Session_Configurationsvoor meer informatie over sessieconfiguraties.
Type: | PSSessionOption |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseSSL
Geeft aan dat deze cmdlet het SSL-protocol (Secure Sockets Layer) gebruikt om verbinding te maken met de niet-verbonden sessie. SSL wordt standaard niet gebruikt.
WS-Management versleutelt alle Windows PowerShell-inhoud die via het netwerk wordt verzonden. UseSSL- is een extra beveiliging waarmee de gegevens via een HTTPS-verbinding worden verzonden in plaats van een HTTP-verbinding.
Als u deze parameter gebruikt, maar SSL niet beschikbaar is op de poort die wordt gebruikt voor de opdracht, mislukt de opdracht.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt sessieobjecten, zoals objecten die worden geretourneerd door de Get-PSSession cmdlet, doorsturen naar deze cmdlet.
U kunt sessie-id's doorsluisen naar deze cmdlet.
U kunt de exemplaar-id's van sessies doorsluisen met deze cmdlet.
U kunt sessienamen doorsluisen naar deze cmdlet.
Uitvoerwaarden
System.Management.Automation.Job or PSObject
Deze cmdlet retourneert de resultaten van opdrachten die zijn uitgevoerd in de niet-verbonden sessie, indien van toepassing. Als de waarde of standaardwaarde van de parameter OutTarget Taak is, retourneert Receive-PSSession een taakobject. Anders worden objecten geretourneerd die de opdrachtresultaten vertegenwoordigen.
Notities
Receive-PSSession alleen resultaten krijgt van sessies die zijn losgekoppeld. Alleen sessies die zijn verbonden met of worden beëindigd op computers met Windows PowerShell 3.0 of nieuwere versies, kunnen worden verbroken en opnieuw worden verbonden.
Als de opdrachten die worden uitgevoerd in de niet-verbonden sessie geen resultaten hebben gegenereerd of als de resultaten al zijn geretourneerd naar een andere sessie, genereert Receive-PSSession- geen uitvoer.
De uitvoerbuffermodus van een sessie bepaalt hoe opdrachten in de sessie uitvoer beheren wanneer de verbinding met de sessie wordt verbroken. Wanneer de waarde van de OutputBufferingMode optie van de sessie is Drop en de uitvoerbuffer vol is, wordt de uitvoer verwijderd. Receive-PSSession deze uitvoer niet kan herstellen. Zie de Help-onderwerpen voor de New-PSSessionOption en New-PSTransportOption cmdlets voor meer informatie over de uitvoerbuffermodusoptie.
U kunt de time-outwaarde voor inactiviteit van een PSSession- niet wijzigen wanneer u verbinding maakt met de PSSession- of resultaten ontvangt. De SessionOption parameter van Receive-PSSession gebruikt een SessionOption-object met een IdleTimeout--waarde. De IdleTimeout- waarde van het object SessionOption en de idleTimeout- waarde van de $PSSessionOption variabele worden echter genegeerd wanneer deze verbinding maakt met een PSSession- of resultaten ontvangt.
U kunt de time-out voor inactiviteit van een PSSession instellen en wijzigen wanneer u de PSSession-maakt, met behulp van de New-PSSession of cmdlets Invoke-Command en wanneer u de verbinding met de PSSession-verbreekt.
De eigenschap IdleTimeout van een PSSession- is essentieel voor verbroken sessies, omdat hiermee wordt bepaald hoe lang een niet-verbonden sessie wordt onderhouden op de externe computer. Niet-verbonden sessies worden beschouwd als niet-actief vanaf het moment dat de verbinding is verbroken, zelfs als opdrachten worden uitgevoerd in de niet-verbonden sessie.
Als u een taak start in een externe sessie met behulp van de AsJob parameter van de Invoke-Command cmdlet, wordt het taakobject gemaakt in de huidige sessie, ook al wordt de taak uitgevoerd in de externe sessie. Als u de verbinding met de externe sessie verbreekt, wordt het taakobject in de huidige sessie nu losgekoppeld van de taak. Het taakobject bevat nog steeds resultaten die naar het object zijn geretourneerd, maar ontvangt geen nieuwe resultaten van de taak in de niet-verbonden sessie.
Als een andere client verbinding maakt met de sessie die de actieve taak bevat, zijn de resultaten die zijn geleverd aan het oorspronkelijke taakobject in de oorspronkelijke sessie niet beschikbaar in de zojuist verbonden sessie. Alleen resultaten die niet aan het oorspronkelijke taakobject zijn geleverd, zijn beschikbaar in de opnieuw verbonden sessie.
Als u een script in een sessie start en vervolgens de verbinding met de sessie verbreekt, zijn alle resultaten die het script aan de sessie levert voordat de verbinding wordt verbroken, niet beschikbaar voor een andere client die verbinding maakt met de sessie.
Als u gegevensverlies wilt voorkomen in sessies die u wilt verbreken, gebruikt u de parameter InDisconnectedSession parameter van de cmdlet Invoke-Command. Omdat deze parameter voorkomt dat resultaten worden geretourneerd naar de huidige sessie, zijn alle resultaten beschikbaar wanneer de sessie opnieuw verbinding maakt.
U kunt ook gegevensverlies voorkomen met behulp van de cmdlet Invoke-Command om een Start-Job opdracht uit te voeren in de externe sessie. In dit geval wordt het taakobject gemaakt in de externe sessie. U kunt de Receive-PSSession-cmdlet niet gebruiken om de taakresultaten op te halen. Gebruik in plaats daarvan de cmdlet Connect-PSSession om verbinding te maken met de sessie en gebruik vervolgens de cmdlet Invoke-Command om een Receive-Job opdracht in de sessie uit te voeren.
Wanneer een sessie met een actieve taak wordt verbroken en vervolgens opnieuw verbinding maakt, wordt het oorspronkelijke taakobject alleen opnieuw gebruikt als de taak is verbroken en opnieuw is verbonden met dezelfde sessie. De opdracht om opnieuw verbinding te maken geeft geen nieuwe taaknaam op. Als de sessie opnieuw is verbonden met een andere clientsessie of als er een nieuwe taaknaam is opgegeven, maakt Windows PowerShell een nieuw taakobject voor de nieuwe sessie.
Wanneer u de verbinding met een PSSessionverbreekt, wordt de sessiestatus verbroken en is de beschikbaarheid Geen.
De waarde van de eigenschap State is relatief ten opzichte van de huidige sessie. De waarde Verbinding verbroken betekent daarom dat de PSSession- niet is verbonden met de huidige sessie. Het betekent echter niet dat de PSSession- is losgekoppeld van alle sessies. Het kan zijn dat deze is verbonden met een andere sessie. Gebruik de eigenschap Availability om te bepalen of u verbinding kunt maken met de sessie of opnieuw verbinding kunt maken met de sessie.
Een beschikbaarheidswaarde van Geen geeft aan dat u verbinding kunt maken met de sessie. Een waarde bezet geeft aan dat u geen verbinding kunt maken met de PSSession- omdat deze is verbonden met een andere sessie.
Zie Opsomming RunspaceState in de MSDN-bibliotheek voor meer informatie over de waarden van de eigenschap State van sessies.
Zie Opsomming RunspaceAvailabilityvoor meer informatie over de waarden van de eigenschap Availability van sessies.