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]
-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
Deze cmdlet is alleen beschikbaar op het Windows-platform.
De Receive-PSSession
cmdlet haalt de resultaten op van opdrachten die worden uitgevoerd in PowerShell-sessies (PSSession) die zijn losgekoppeld. Als de sessie momenteel is verbonden, Receive-PSSession
worden de resultaten opgehaald van opdrachten die werden uitgevoerd toen de sessie werd verbroken. Als de verbinding met de sessie nog steeds is verbroken, Receive-PSSession
maakt u verbinding met de sessie, hervat u alle opdrachten die zijn onderbroken en worden de resultaten opgehaald van opdrachten die in de sessie worden uitgevoerd.
Deze cmdlet is geïntroduceerd in PowerShell 3.0.
U kunt een Receive-PSSession
aanvulling op of in plaats van een Connect-PSSession
opdracht gebruiken.
Receive-PSSession
kan verbinding maken met elke niet-verbonden of opnieuw verbonden sessie die is gestart in andere sessies of op andere computers.
Receive-PSSession
werkt op PSSessions die opzettelijk zijn losgekoppeld met behulp van de Disconnect-PSSession
cmdlet of de Invoke-Command
parameter InDisconnectedSession . Of onopzettelijk verbroken door een netwerkonderbreking.
Als u de Receive-PSSession
cmdlet gebruikt om verbinding te maken met een sessie waarin geen opdrachten worden uitgevoerd of onderbroken, Receive-PSSession
maakt u verbinding met de sessie, maar retourneert u geen uitvoer of fouten.
Zie about_Remote_Disconnected_Sessions voor meer informatie over de functie Niet-verbonden sessies.
In sommige voorbeelden wordt splatting gebruikt om de lijnlengte te verminderen en de leesbaarheid te verbeteren. Zie about_Splatting voor meer informatie.
Voorbeelden
Voorbeeld 1: Verbinding maken met een PSSession
In dit voorbeeld wordt verbinding gemaakt met een sessie op een externe computer en worden de resultaten opgehaald van opdrachten die in een sessie worden uitgevoerd.
Receive-PSSession -ComputerName Server01 -Name ITTask
Hiermee Receive-PSSession
geeft u de externe computer met de parameter ComputerName . De parameter Name identificeert de ITTask-sessie op de Server01-computer. In het voorbeeld worden de resultaten opgehaald van opdrachten die werden uitgevoerd in de ITTask-sessie.
Omdat de opdracht de OutTarget-parameter niet gebruikt, worden de resultaten weergegeven op de opdrachtregel.
Voorbeeld 2: Resultaten ophalen van alle opdrachten voor niet-verbonden sessies
In dit voorbeeld worden de resultaten opgehaald van alle opdrachten die worden uitgevoerd in alle niet-verbonden sessies op twee externe computers.
Als een sessie niet is verbroken of geen opdrachten uitvoert, Receive-PSSession
maakt u geen verbinding met de sessie en retourneert u geen uitvoer of fouten.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession
gebruikt de parameter ComputerName om de externe computers op te geven. De objecten worden naar de pijplijn Receive-PSSession
verzonden.
Voorbeeld 3: De resultaten ophalen van een script dat wordt uitgevoerd in een sessie
In dit voorbeeld wordt de Receive-PSSession
cmdlet gebruikt om de resultaten op te halen van een script dat werd uitgevoerd in de sessie van een externe computer.
$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
De opdracht maakt gebruik van de computernaam - en naamparameters om de niet-verbonden sessie te identificeren.
Hierbij wordt de OutTarget-parameter met een waarde van Job gebruikt Receive-PSSession
om de resultaten als een taak te retourneren. De parameter JobName geeft een naam op voor de taak in de opnieuw verbonden sessie.
De referentieparameter voert de Receive-PSSession
opdracht uit met behulp van de machtigingen van een domeinbeheerder.
In de uitvoer ziet u dat Receive-PSSession
de resultaten zijn geretourneerd als een taak in de huidige sessie. Gebruik een Receive-Job
opdracht om de taakresultaten op te halen
Voorbeeld 4: Resultaten ophalen na een netwerkstoring
In dit voorbeeld wordt de Receive-PSSession
cmdlet gebruikt om de resultaten van een taak op te halen nadat een netwerkstoring een sessieverbinding heeft onderbroken. PowerShell probeert de sessie automatisch één keer per seconde opnieuw te verbinden voor de komende vier minuten en de inspanning wordt alleen afgebroken als alle pogingen in het interval van vier minuten mislukken.
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
De New-PSSession
cmdlet maakt een sessie op de Server01-computer en slaat de sessie op in de $s
variabele. De $s
variabele geeft aan dat de status is geopend en dat de beschikbaarheid beschikbaar is. Deze waarden geven aan dat u verbonden bent met de sessie en opdrachten in de sessie kunnen uitvoeren.
De Invoke-Command
cmdlet voert een script uit in de sessie in de $s
variabele. Het script begint met het uitvoeren en retourneren van gegevens, maar er treedt een netwerkstoring op die de sessie onderbreekt. De gebruiker moet de sessie afsluiten en de lokale computer opnieuw opstarten.
Wanneer de computer opnieuw wordt opgestart, start de gebruiker PowerShell en voert de gebruiker een Get-PSSession
opdracht uit om sessies op de Server01-computer op te halen. De uitvoer laat zien dat de AD-sessie nog steeds bestaat op de Server01-computer. De status geeft aan dat de AD-sessie is verbroken. De beschikbaarheidswaarde Geen geeft aan dat de sessie niet is verbonden met clientsessies.
De Receive-PSSession
cmdlet maakt opnieuw verbinding met de AD-sessie en haalt de resultaten op van het script dat in de sessie is uitgevoerd. De opdracht maakt gebruik van de outTarget-parameter om de resultaten aan te vragen in een taak met de naam ADJob. De opdracht retourneert een taakobject en de uitvoer geeft aan dat het script nog steeds wordt uitgevoerd.
De Get-PSSession
cmdlet wordt gebruikt om de taakstatus te controleren. De uitvoer bevestigt dat de Receive-PSSession
cmdlet opnieuw verbinding heeft gemaakt met de AD-sessie , die nu is geopend en beschikbaar is voor opdrachten. En de uitvoering van het script wordt hervat en de scriptresultaten worden opgehaald.
Voorbeeld 5: Opnieuw verbinding maken met verbroken sessies
In dit voorbeeld wordt de Receive-PSSession
cmdlet 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.
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
De Invoke-Command
cmdlet voert een script uit op drie externe computers. Omdat het script gegevens uit meerdere databases verzamelt en samenvat, duurt het vaak een langere tijd om het script te voltooien. De opdracht maakt gebruik van de parameter InDisconnectedSession waarmee de scripts worden gestart en de sessies vervolgens onmiddellijk worden verbroken. De parameter SessionOption breidt de idleTimeout-waarde van de niet-verbonden sessie uit. Niet-verbonden sessies worden beschouwd als niet-actief vanaf het moment dat de verbinding wordt verbroken. Het is belangrijk om de time-out voor inactiviteit zo lang in te stellen dat de opdrachten kunnen worden voltooid en u opnieuw verbinding kunt maken met de sessie. U kunt de IdleTimeout alleen instellen wanneer u de PSSession maakt en deze alleen wijzigt wanneer u de verbinding verbreekt. U kunt de waarde IdleTimeout niet wijzigen wanneer u verbinding maakt met een PSSession of de resultaten ontvangt. Nadat de opdracht is uitgevoerd, sluit de gebruiker PowerShell af en sluit de computer.
De volgende dag hervat de gebruiker Windows, start PowerShell en gebruikt Get-PSSession
deze om de sessies op te halen waarin de scripts werden uitgevoerd. Met de opdracht worden de sessies geïdentificeerd op basis van de computernaam, sessienaam en de naam van de sessieconfiguratie en worden de sessies opgeslagen in de $s
variabele. De waarde van de $s
variabele wordt weergegeven en geeft aan dat de sessies zijn verbroken, maar niet bezet zijn.
De Receive-PSSession
cmdlet maakt verbinding met de sessies in de $s
variabele en haalt de resultaten op.
Met de opdracht worden de resultaten in de $Results
variabele opgeslagen. De $s
variabele wordt weergegeven en geeft aan dat de sessies zijn verbonden en beschikbaar zijn voor opdrachten.
De scriptresultaten in de $Results
variabele worden weergegeven in de PowerShell-console. Als een van de resultaten onverwacht is, kan de gebruiker opdrachten uitvoeren in de sessies om de hoofdoorzaak te onderzoeken.
Voorbeeld 6: Een taak uitvoeren in een niet-verbonden sessie
In dit voorbeeld ziet u wat er gebeurt met een taak die wordt uitgevoerd in een niet-verbonden sessie.
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
De New-PSSession
cmdlet maakt de testsessie op de Server01-computer. Met de opdracht wordt de sessie opgeslagen in de $s
variabele.
De Invoke-Command
cmdlet voert een opdracht uit in de sessie in de $s
variabele. De opdracht gebruikt de parameter AsJob om de opdracht uit te voeren als een taak en maakt het taakobject in de huidige sessie.
De opdracht retourneert een taakobject dat is opgeslagen in de $j
variabele. De $j
variabele geeft het taakobject weer.
Het sessieobject in de $s
variabele wordt naar de pijplijn Disconnect-PSSession
verzonden en de sessie wordt verbroken.
De $j
variabele wordt weergegeven en toont het effect van het verbreken van de verbinding van het taakobject in de $j
variabele. De taakstatus is nu verbroken.
De Receive-Job
taak wordt uitgevoerd in de $j
variabele. De uitvoer laat zien dat de taak uitvoer begon te retourneren voordat de sessie en de taak is verbroken.
De Connect-PSSession
cmdlet wordt uitgevoerd in dezelfde clientsessie. De opdracht maakt opnieuw verbinding met de testsessie op de Server01-computer en slaat de sessie op in de $s2
variabele.
De Receive-PSSession
cmdlet haalt de resultaten op van de taak die in de sessie werd uitgevoerd. Omdat de opdracht in dezelfde sessie wordt uitgevoerd, Receive-PSSession
worden de resultaten standaard geretourneerd als een taak en wordt hetzelfde taakobject opnieuw gebruikt. Met de opdracht wordt de taak opgeslagen in de $j2
variabele. Met Receive-Job
de cmdlet worden de resultaten van de taak in de $j
variabele opgehaald.
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. 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 sessieoptie MaximumConnectionRedirectionCount te wijzigen. Gebruik de parameter MaximumRedirection van de New-PSSessionOption
cmdlet of stel de eigenschap MaximumConnectionRedirectionCount van de $PSSessionOption
voorkeursvariabele in. De standaardwaarde is 5.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
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 WSMan bijvoorbeeld de naam van de toepassing: http://localhost:5985/WSMAN
De toepassingsnaam van een sessie wordt opgeslagen in de eigenschap Runspace.ConnectionInfo.AppName van de sessie.
De waarde van de parameter wordt gebruikt om sessies te selecteren en te filteren. 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 om de gebruikersreferenties in de opdracht te verifiëren om opnieuw verbinding te maken met een niet-verbonden sessie. De aanvaardbare waarden voor deze parameter zijn:
- Standaardinstelling
- Basis
- Credssp
- Verteren
- Kerberos
- Onderhandelen
- NegotiateWithImplicitCredential
De standaardwaarde is Standaard.
Zie AuthenticationMechanism Enumeration voor meer informatie over de waarden van deze parameter.
Let op
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: | Default |
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. Certificaten kunnen alleen worden toegewezen aan lokale gebruikersaccounts en werken niet met domeinaccounts.
Als u een vingerafdruk van een certificaat wilt ophalen, gebruikt u een Get-Item
of Get-ChildItem
opdracht in het PowerShell-station Cert:
.
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 het einde van een verbinding. Standaard is dit de lokale computer.
Typ de NetBIOS-naam, een IP-adres of een FQDN (Fully Qualified Domain Name) van één computer.
Jokertekens zijn niet toegestaan. Als u de lokale computer wilt opgeven, typt u de computernaam, een punt (.
) $env:COMPUTERNAME
of localhost.
Type: | String |
Aliassen: | Cn |
Position: | 0 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-ConfigurationName
Hiermee geeft u de naam van een sessieconfiguratie. Deze cmdlet 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:
http://schemas.microsoft.com/powershell
.
De configuratienaam van een sessie wordt opgeslagen in de eigenschap ConfigurationName van de sessie.
De waarde van de parameter wordt gebruikt om sessies te selecteren en te filteren. De sessieconfiguratie die door de sessie wordt gebruikt, wordt niet gewijzigd.
Zie about_Session_Configurations (Engelstalig) voor meer informatie over sessieconfiguraties.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Confirm
Hiermee wordt u 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 de tekenreeks is als volgt:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
De standaardwaarde is als volgt:
http://localhost:5985/WSMAN
Als u geen verbindings-URI opgeeft, kunt u de parameters UseSSL, ComputerName, Port en ApplicationName gebruiken om de verbindings-URI-waarden op te geven.
Geldige waarden voor het transportsegment 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 standaardpoorten: 80 voor HTTP en 443 voor HTTPS. Als u de standaardpoorten voor externe communicatie met 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 PowerShell de omleiding, tenzij u de parameter AllowRedirection in de opdracht gebruikt.
Type: | Uri |
Aliassen: | URI, CU |
Position: | 0 |
Default value: | http://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. Standaard is dit de huidige gebruiker.
Typ een gebruikersnaam, zoals User01 of Domain01\User01, of voer een PSCredential-object in dat is gegenereerd door de Get-Credential
cmdlet. Als u een gebruikersnaam typt, wordt u gevraagd het wachtwoord in te voeren.
Referenties worden opgeslagen in een PSCredential-object en het wachtwoord wordt opgeslagen als SecureString.
Notitie
Zie Hoe veilig is SecureString SecureString?voor meer informatie over SecureString-gegevensbeveiliging.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Id
Hiermee geeft u de id van een niet-verbonden sessie. De id-parameter 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 die een PSSession uniek identificeert op een lokale of externe computer. 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
wordt geretourneerd.
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 PowerShell het oorspronkelijke taakobject in de sessie opnieuw en negeert u de waarde van de parameter JobName .
Als de taak die wordt uitgevoerd in de niet-verbonden sessie is gestart in een andere sessie, maakt 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 heeft de parameter JobName 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 aanvaardbare waarden voor deze parameter zijn:
- Job. 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.
- Host. 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 een niet-verbonden sessie 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 teruggezet 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 van de externe computer die wordt gebruikt om opnieuw verbinding te maken met de sessie. Als u verbinding wilt maken met een externe computer, moet deze 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 op die poort te luisteren. Als u de listener wilt configureren, typt u de volgende twee opdrachten bij de PowerShell-prompt:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Gebruik de poortparameter alleen als dit nodig is. 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 of een opdracht bevat 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 voor een beschrijving van de sessieopties die de standaardwaarden New-PSSessionOption
bevatten. Zie about_Preference_Variables voor meer informatie over de $PSSessionOption voorkeursvariabele. Zie about_Session_Configurations (Engelstalig) voor 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 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 en SSL niet beschikbaar is op de poort die voor de opdracht wordt gebruikt, mislukt de opdracht.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-WhatIf
Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. 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 doorsturen naar deze cmdlet, zoals objecten die door de Get-PSSession
cmdlet worden geretourneerd.
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
Als de waarde of standaardwaarde van de outTarget-parameter is Job
, Receive-PSSession
retourneert u een taakobject.
Deze cmdlet retourneert de resultaten van opdrachten die zijn uitgevoerd in de niet-verbonden sessie, indien van toepassing.
Notities
PowerShell bevat de volgende aliassen voor Receive-PSSession
:
- Alle platforms:
rcsn
Deze cmdlet is alleen beschikbaar op Windows-platforms.
Receive-PSSession
krijgt alleen resultaten van sessies die zijn verbroken. Alleen sessies die zijn verbonden met of worden beëindigd op computers met PowerShell 3.0 of hoger, 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, Receive-PSSession
worden er geen uitvoer gegenereerd.
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 optie OutputBufferingMode van de sessie Drop is en de uitvoerbuffer vol is, wordt de uitvoer verwijderd. Receive-PSSession
kan deze uitvoer niet herstellen. Zie de Help-artikelen voor de cmdlets New-PSSessionOption en New-PSTransportOption voor meer informatie over de optie voor de uitvoerbuffermodus.
U kunt de time-outwaarde voor inactiviteit van een PSSession niet wijzigen wanneer u verbinding maakt met de PSSession of resultaten ontvangt. De parameter SessionOption van Receive-PSSession
neemt een SessionOption-object met een IdleTimeout-waarde . De waarde IdleTimeout van het SessionOption-object en de idleTimeout-waarde van de variabele worden echter genegeerd wanneer deze $PSSessionOption
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
ofInvoke-Command
cmdlets en wanneer u de verbinding met de PSSession verbreekt. - De eigenschap IdleTimeout van een PSSession is essentieel voor niet-verbonden sessies, omdat hiermee wordt bepaald hoelang 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 in een externe sessie start met behulp van de parameter AsJob 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 losgekoppeld van de taak. Het taakobject bevat resultaten die eraan 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 eventuele 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.
Gebruik de parameter InDisconnectedSession van de Invoke-Command
cmdlet om gegevensverlies te voorkomen in sessies die u wilt verbreken. 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 Invoke-Command
cmdlet 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 Connect-PSSession
cmdlet om verbinding te maken met de sessie en gebruik vervolgens de Invoke-Command
cmdlet 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 verbinding maakt met een andere clientsessie of als er een nieuwe taaknaam is opgegeven, maakt PowerShell een nieuw taakobject voor de nieuwe sessie.
Wanneer u een PSSession loskoppelt, wordt de sessiestatus verbroken en is de beschikbaarheid Geen.
- De waarde van de eigenschap State is relatief ten opzichte van de huidige sessie. Een waarde van Verbinding verbroken betekent 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 Beschikbaarheid om te bepalen of u verbinding kunt maken met de sessie of opnieuw verbinding kunt maken.
- Een beschikbaarheidswaarde van None geeft aan dat u verbinding kunt maken met de sessie. Een waarde van Bezet geeft aan dat u geen verbinding kunt maken met de PSSession omdat deze is verbonden met een andere sessie.
- Zie RunspaceState voor meer informatie over de waarden van de eigenschap State van sessies.
- Zie RunspaceAvailability voor meer informatie over de waarden van de eigenschap Beschikbaarheid van sessies.