Receive-PSSession
Resultaten ophalen van opdrachten in losgekoppelde sessies
Syntaxis
Session (Standaard)
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Id
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerSessionName
Receive-PSSession
[-ComputerName] <String>
-Name <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ComputerInstanceId
Receive-PSSession
[-ComputerName] <String>
-InstanceId <Guid>
[-ApplicationName <String>]
[-ConfigurationName <String>]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriSessionName
Receive-PSSession
[-ConnectionUri] <Uri>
-Name <String>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ConnectionUriInstanceId
Receive-PSSession
[-ConnectionUri] <Uri>
-InstanceId <Guid>
[-ConfigurationName <String>]
[-AllowRedirection]
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceId
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
SessionName
Receive-PSSession
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Deze cmdlet is alleen beschikbaar op het Windows-platform.
Met de Receive-PSSession-cmdlet worden de resultaten opgehaald van opdrachten die worden uitgevoerd in PowerShell-sessies (PSSession) die zijn verbroken. Als de sessie momenteel is verbonden, krijgt Receive-PSSession de resultaten van opdrachten die werden uitgevoerd toen de sessie werd verbroken. Indien de sessie nog steeds is verbroken, maakt Receive-PSSession verbinding met de sessie, hervat de onderbroken opdrachten en haalt de resultaten op van opdrachten die in de sessie worden uitgevoerd.
Deze cmdlet is geïntroduceerd in PowerShell 3.0.
U kunt een Receive-PSSession naast of in plaats van een Connect-PSSession opdracht gebruiken.
Receive-PSSession kan verbinding maken met elke verbroken of opnieuw verbonden sessie die is gestart in andere sessies of op andere computers.
Receive-PSSession werkt op PSSessions die opzettelijk zijn verbroken met behulp van de Disconnect-PSSession cmdlet of de parameter Invoke-CommandInDisconnectedSession. 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, 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.
In sommige voorbeelden wordt splatting gebruikt om de lijnlengte te verminderen en de leesbaarheid te verbeteren. Zie about_Splattingvoor 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
De Receive-PSSession geeft de externe computer op 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 parameter OutTarget 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, maakt Receive-PSSession geen verbinding met de sessie en retourneert 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 via de pijpleiding naar Receive-PSSessionverzonden.
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 parameters ComputerName en Name om de niet-verbonden sessie te identificeren.
Hierbij wordt de parameter OutTarget met de waarde Job gebruikt om Receive-PSSession de resultaten als een job te laten retourneren. De parameter JobName geeft een naam op voor de taak in de opnieuw verbonden sessie.
De parameter Credential voert de opdracht Receive-PSSession uit 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
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. 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 variabele $s geeft aan dat de Status geopend is 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 cmdlet Invoke-Command 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 toestand geeft aan dat de AD sessie is verbroken. De beschikbaarheid waarde Geen, geeft aan dat de sessie niet is verbonden met clientsessies.
De cmdlet Receive-PSSession maakt opnieuw verbinding met de AD--sessie en haalt de resultaten op van het script dat in de sessie is uitgevoerd. De opdracht gebruikt de parameter OutTarget 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 cmdlet Get-PSSession 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 daarna wordt de uitvoering van het script hervat en worden de scriptresultaten opgehaald.
Voorbeeld 5: Opnieuw verbinding maken met verbroken sessies
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.
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 cmdlet Invoke-Command 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 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 wijzigen wanneer u de verbinding verbreekt. U kunt de IdleTimeout--waarde 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 om de sessies op te halen waarin de scripts werden uitgevoerd. De opdracht identificeert de sessies op basis van de computernaam, sessienaam en de naam van de sessieconfiguratie en slaat de sessies op in de $s variabele. De waarde van de variabele $s 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 opgeslagen in de $Results variabele. De variabele $s wordt weergegeven en laat zien dat de sessies zijn verbonden en beschikbaar zijn voor opdrachten.
De resultaten van het script worden weergegeven voor de variabele $Results 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 variabele $s.
De cmdlet Invoke-Command 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 variabele $s wordt naar de pijplijn verzonden naar Disconnect-PSSession en de sessie wordt verbroken.
De $j variabele wordt weergegeven en toont het effect van het loskoppelen van het taakobject in de $j variabele. De taakstatus is nu verbroken.
De Receive-Job wordt uitgevoerd in de $j variabele tijdens de taakuitvoering. De uitvoer toont aan dat de taak uitvoer begon te retourneren voordat de sessie en de taak werden 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 variabele $s2.
De Receive-PSSession cmdlet haalt de resultaten op van de taak die in de sessie is uitgevoerd. Omdat de opdracht in dezelfde sessie wordt uitgevoerd, retourneert Receive-PSSession standaard de resultaten als een taak en wordt hetzelfde taakobject opnieuw gebruikt. Met de opdracht wordt de taak opgeslagen in de variabele $j2. De cmdlet Receive-Job haalt de resultaten van de taak op in de variabele $j.
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 door te sturen.
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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | 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 acceptabele waarden voor deze parameter zijn:
- Verstek
- Eenvoudig
- Credssp
- Samenvatting
- Kerberos
- Onderhandelen
- OnderhandelenMetImplicieteReferentie
De standaardwaarde is Standaard.
Zie AuthenticationMechanism-opsommingvoor meer informatie over de waarden van deze parameter.
Waarschuwing
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 op afstand uitgevoerde bewerking. Als de externe computer is aangetast, kunnen de referenties die aan de computer worden doorgegeven, worden gebruikt om de netwerksessie te beheren.
Parametereigenschappen
| Type: | AuthenticationMechanism |
| Default value: | Default |
| Geaccepteerde waarden: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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 Cert:-station.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-ComputerName
Hiermee specificeert u de computer waarop de niet-verbonden sessie wordt opgeslagen. Sessies worden opgeslagen op de computer die zich aan de serverzijde of ontvangstzijde van een verbinding bevindt. De standaardwaarde is 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:COMPUTERNAMEof localhost.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Cn |
Parametersets
ComputerInstanceId
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | 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 voorafgeplaatst:
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_Configurationsvoor meer informatie over sessieconfiguraties.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
-Confirm
Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Cf |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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 UseSSL, ComputerName, Poorten 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 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 AllowRedirection parameter in de opdracht gebruikt.
Parametereigenschappen
| Type: | Uri |
| Default value: | http://localhost:5985/WSMAN |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | URI (Uniform Resource Identifier), CU |
Parametersets
ConnectionUriSessionName
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | 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, 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 een SecureString.
Opmerking
Zie voor meer informatie over SecureString gegevensbeveiliging Hoe veilig is SecureString?.
Parametereigenschappen
| Type: | PSCredential |
| Default value: | Current user |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Id
Specificeert de ID van een 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.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
Id
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
-InstanceId
Geeft de exemplaar-id van de niet-verbonden sessie op. De instance-ID is een GUID waarmee een PSSession- uniek wordt geïdentificeerd op een lokale of externe computer. De exemplaar-id wordt opgeslagen in de eigenschap InstanceId van de PSSession-.
Parametereigenschappen
| Type: | Guid |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
InstanceId
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-JobName
Hiermee geeft u een vriendelijke naam op voor de taak die Receive-PSSession retourneert.
Receive-PSSession retourneert een job wanneer de waarde van de parameter OutTarget Job is of wanneer de job 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 parameter OutTarget niet Job is, slaagt de opdracht, maar heeft de parameter JobName geen effect.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Name
Hiermee geeft u de vriendelijke naam van de niet-verbonden sessie.
Parametereigenschappen
| Type: | String |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerSessionName
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
SessionName
| Position: | Named |
| Verplicht: | True |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-OutTarget
Bepaalt hoe de sessieresultaten worden geretourneerd. De acceptabele waarden voor deze parameter zijn:
- taak. 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.
Parametereigenschappen
| Type: | OutTarget |
| Default value: | None |
| Geaccepteerde waarden: | Default, Host, Job |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Port
Hiermee geeft u de netwerkpoort van de externe computer die wordt gebruikt om opnieuw verbinding te maken met de sessie. Om verbinding met een externe computer te maken, moet deze op de poort luisteren 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 parameter Port niet, tenzij 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.
Parametereigenschappen
| Type: | Int32 |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-Session
Geeft de niet-verbonden sessie aan. Voer een variabele in die de PSSession- bevat of een opdracht waarmee de PSSession-wordt gemaakt of ophaalt, zoals een Get-PSSession opdracht.
Parametereigenschappen
| Type: | PSSession |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
Session
| Position: | 0 |
| Verplicht: | True |
| Waarde uit pijplijn: | True |
| Waarde uit pijplijn op eigenschapsnaam: | True |
| Waarde van resterende argumenten: | False |
-SessionOption
Hiermee stelt u geavanceerde opties in 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-PSSessionOptionvoor 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.
Parametereigenschappen
| Type: | PSSessionOption |
| Default value: | None |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ConnectionUriInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | 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.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
Parametersets
ComputerInstanceId
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
ComputerSessionName
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
-WhatIf
Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Parametereigenschappen
| Type: | SwitchParameter |
| Default value: | False |
| Ondersteunt jokertekens: | False |
| DontShow: | False |
| Aliassen: | Wi |
Parametersets
(All)
| Position: | Named |
| Verplicht: | False |
| Waarde uit pijplijn: | False |
| Waarde uit pijplijn op eigenschapsnaam: | False |
| Waarde van resterende argumenten: | False |
CommonParameters
Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.
Invoerwaarden
PSSession
U kunt sessieobjecten doorsturen naar deze cmdlet, zoals objecten die worden geretourneerd door de Get-PSSession cmdlet.
Int32
U kunt sessie-id's doorsluisen naar deze cmdlet.
Guid
U kunt de exemplaar-id's van sessies doorsturen met deze cmdlet.
String
U kunt sessienamen doorsluisen naar deze cmdlet.
Uitvoerwaarden
Job
Als de waarde of standaardwaarde van de parameter OutTarget is Job, retourneert Receive-PSSession een taakobject.
PSObject
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 losgekoppeld. 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, 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 'Drop' is en de uitvoerbuffer vol raakt, begint de opdracht met het verwijderen van de uitvoer.
Receive-PSSession kan deze uitvoer niet herstellen. Voor meer informatie over de uitvoerbuffermodusoptie, zie de help-artikelen voor de New-PSSessionOption en de New-PSTransportOption cmdlets.
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 accepteert een SessionOption--object dat een IdleTimeout--waarde heeft. De IdleTimeout- waarde van het object SessionOption en de IdleTimeout- waarde van de variabele $PSSessionOption 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- ofInvoke-Command-cmdlets 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 op de externe computer wordt onderhouden. 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 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 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 parameter van de Invoke-Command cmdlet om gegevensverlies in sessies die u wilt verbreken te voorkomen. 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 Invoke-Command cmdlet om een Receive-Job opdracht uit te voeren in de sessie.
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 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 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 van Bezet geeft aan dat u geen verbinding kunt maken met de PSSession- omdat deze is verbonden met een andere sessie.
- Zie RunspaceStatevoor meer informatie over de waarden van de eigenschap State van sessies.
- Zie RunspaceAvailabilityvoor meer informatie over de waarden van de eigenschap Availability van sessies.