Freigeben über


Receive-PSSession

Ruft die Ergebnisse von Befehlen in getrennten Sitzungen ab.

Syntax

Session (Standard)

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>]

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>]

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>]

InstanceId

Receive-PSSession
    -InstanceId <Guid>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

SessionName

Receive-PSSession
    -Name <String>
    [-OutTarget <OutTarget>]
    [-JobName <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Das Cmdlet Receive-PSSession ruft die Ergebnisse von Befehlen ab, die in Windows PowerShell-Sitzungen (PSSession) ausgeführt wurden, deren Verbindung getrennt wurde. Wenn die Sitzung derzeit verbunden ist, ruft Receive-PSSession die Ergebnisse von Befehlen ab, die ausgeführt wurden, als die Sitzung getrennt wurde. Wenn die Sitzung weiterhin getrennt ist, stellt Receive-PSSession eine Verbindung mit der Sitzung her, setzt alle angehaltenen Befehle fort und ruft die Ergebnisse der in der Sitzung ausgeführten Befehle ab.

Sie können eine Receive-PSSession zusätzlich zu oder anstelle eines Connect-PSSession Befehls verwenden. Receive-PSSession kann eine Verbindung zu jeder getrennten oder wiederhergestellten Sitzung herstellen. Dazu gehören auch solche, die in anderen Sitzungen oder auf anderen Computern gestartet wurden.

Receive-PSSession funktioniert für PSSessions , die absichtlich getrennt wurden, z. B. durch die Verwendung des Cmdlets Disconnect-PSSession oder des Parameters InDisconnectedSession des Cmdlets Invoke-Command, oder unbeabsichtigt, z. B. durch eine Netzwerkunterbrechung.

Wenn Sie das Cmdlet Receive-PSSession verwenden, um eine Verbindung mit einer Sitzung herzustellen, in der keine Befehle ausgeführt oder angehalten werden, stellt Receive-PSSession eine Verbindung mit der Sitzung her, gibt jedoch keine Ausgabe oder Fehler zurück.

Weitere Informationen über die Funktion Disconnected Sessions finden Sie unter about_Remote_Disconnected_Sessions.

Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1: Herstellen einer Verbindung mit einer PSSession

PS C:\> Receive-PSSession -ComputerName Server01 -Name ITTask

Dieser Befehl verwendet das Cmdlet Receive-PSSession , um eine Verbindung mit der ITTask-Sitzung auf dem Computer Server01 herzustellen und die Ergebnisse von Befehlen abzurufen, die in der Sitzung ausgeführt wurden.

Da der OutTarget-Parameter nicht im Befehl verwendet wird, werden die Ergebnisse in der Befehlszeile angezeigt.

Beispiel 2: Abrufen der Ergebnisse aller Befehle für unterbrochene Sitzungen

PS C:\> Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession

Mit diesem Befehl werden die Ergebnisse aller Befehle abgerufen, die in allen getrennten Sitzungen auf den Computern Server01 und Server02 ausgeführt werden.

Wenn eine Sitzung nicht getrennt wurde oder keine Befehle ausgeführt werden, stellt Receive-PSSession keine Verbindung mit der Sitzung her und gibt keine Ausgabe oder Fehler zurück.

Beispiel 3: Abrufen der Ergebnisse eines Skripts, das in einer Sitzung ausgeführt wird

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

Mit diesem Befehl wird das Cmdlet Receive-PSSession verwendet, um die Ergebnisse eines Skripts abzurufen, das in der ITTask-Sitzung auf dem Computer Server01 ausgeführt wurde.

Der Befehl verwendet die parameter ComputerName und Name Parameter, um die getrennte Sitzung zu identifizieren. Er verwendet den OutTarget-Parameter mit dem Wert Job, um Receive-PSSession anzuweisen, die Ergebnisse als Auftrag zurückzugeben, und den JobName-Parameter , um einen Namen für den Auftrag in der wiederhergestellten Sitzung anzugeben.

Der Befehl verwendet den Parameter Credential , um den Befehl Receive-PSSession mit den Berechtigungen eines Domänenadministrators auszuführen.

Die Ausgabe zeigt, dass Receive-PSSession die Ergebnisse als Auftrag in der aktuellen Sitzung zurückgegeben hat. Um die Auftragsergebnisse abzurufen, verwenden Sie den Befehl Receive-Job

Beispiel 4: Abrufen von Ergebnissen nach einem Netzwerkausfall

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 diesem Beispiel wird das Cmdlet Receive-PSSession verwendet, um die Ergebnisse eines Auftrags abzurufen, nachdem eine Sitzungsverbindung durch einen Netzwerkausfall unterbrochen wurde. Windows PowerShell versucht automatisch, die Verbindung zwischen der Sitzung in den nächsten vier Minuten einmal pro Sekunde wiederherzustellen, und bricht den Versuch nur ab, wenn alle Versuche im Vier-Minuten-Intervall fehlschlagen.

Beispiel 5: Wiederherstellung der Verbindung zu getrennten Sitzungen

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 diesem Beispiel wird das Cmdlet Receive-PSSession verwendet, um die Verbindung mit Sitzungen wiederherzustellen, die absichtlich getrennt wurden, und um die Ergebnisse von Aufträgen abzurufen, die in den Sitzungen ausgeführt wurden.

Beispiel 6: Ausführen eines Jobs in einer nicht verbundenen Sitzung

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

Dieses Beispiel zeigt, was mit einem Auftrag geschieht, der in einer getrennten Sitzung ausgeführt wird.

Parameter

-AllowRedirection

Gibt an, dass dieses Cmdlet die Umleitung dieser Verbindung zu einem alternativen URI (Uniform Resource Identifier) zulässt.

Wenn Sie den parameter ConnectionURI verwenden, kann das Remoteziel eine Anweisung zurückgeben, um zu einem anderen URI umzuleiten. Standardmäßig leitet Windows PowerShell Verbindungen nicht um, aber Sie können diesen Parameter verwenden, um die Umleitung der Verbindung zu aktivieren.

Sie können auch einschränken, wie oft die Verbindung umgeleitet wird, indem Sie den MaximumConnectionRedirectionCount Sitzungsoptionswert ändern. Verwenden Sie den Parameter MaximumRedirection des Cmdlets New-PSSessionOption, oder legen Sie die MaximumConnectionRedirectionCount-Eigenschaft der $PSSessionOption Einstellungsvariablen fest. Der Standardwert ist 5.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ApplicationName

Gibt eine Anwendung an. Dieses Cmdlet verbindet sich nur mit Sitzungen, die die angegebene Anwendung verwenden.

Geben Sie das Anwendungsnamensegment des Verbindungs-URI ein. Beispielsweise lautet der Anwendungsname im folgenden Verbindungs-URI WSMan: https://localhost:5985/WSMAN. Der Anwendungsname einer Sitzung wird in der Runspace.ConnectionInfo.AppName Eigenschaft der Sitzung gespeichert.

Der Wert dieses Parameters wird zum Auswählen und Filtern von Sitzungen verwendet. Die Anwendung, die von der Sitzung verwendet wird, wird nicht geändert.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Authentication

Gibt den Mechanismus an, der verwendet wird, um die Anmeldeinformationen des Benutzers im Befehl zum Wiederherstellen der Verbindung mit der getrennten Sitzung zu authentifizieren. Die zulässigen Werte für diesen Parameter sind:

  • Standard
  • Basic
  • Credssp
  • Zusammenfassung
  • Kerberos
  • Verhandeln
  • NegotiateWithImplicitCredential

Der Standardwert ist "Default".

Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism Enumeration in MSDN.

Vorsicht

Credential Security Support Provider (CredSSP)-Authentifizierung, bei der die Benutzeranmeldeinformationen an einen Remotecomputer übergeben werden, der authentifiziert werden soll, ist für Befehle konzipiert, die eine Authentifizierung für mehrere Ressourcen erfordern, z. B. den Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn der Remotecomputer kompromittiert ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Parametereigenschaften

Typ:AuthenticationMechanism
Standardwert:None
Zulässige Werte:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-CertificateThumbprint

Gibt das digitale öffentliche Schlüsselzertifikat (X509) eines Benutzerkontos an, das über die Berechtigung verfügt, eine Verbindung mit der getrennten Sitzung herzustellen. Geben Sie den Zertifikatfingerabdruck des Zertifikats ein.

Zertifikate werden in der zertifikatbasierten Clientauthentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden. Sie funktionieren nicht mit Domänenkonten.

Verwenden Sie zum Abrufen eines Zertifikatfingerabdrucks einen Get-Item- oder Get-ChildItem Befehl auf dem Windows PowerShell-Laufwerk Zertifikat:.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ComputerName

Gibt den Computer an, auf dem die getrennte Sitzung gespeichert ist. Sitzungen werden auf dem Computer gespeichert, der sich auf der Serverseite oder am empfangenden Ende einer Verbindung befindet. Der Standardwert ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder einen vollqualifizierten Domänennamen eines Computers ein. Platzhalterzeichen sind nicht zulässig. Um den lokalen Computer anzugeben, geben Sie den Computernamen localhost oder einen Punkt (.) ein.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Cn

Parametersätze

ComputerSessionName
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-ConfigurationName

Stellt nur verbindungen mit Sitzungen, die die angegebene Sitzungskonfiguration verwenden.

Geben Sie einen Konfigurationsnamen oder den vollqualifizierten Ressourcen-URI für eine Sitzungskonfiguration ein. Wenn Sie nur den Konfigurationsnamen angeben, wird der folgende Schema-URI vorangestellt: https://schemas.microsoft.com/powershell. Der Konfigurationsname einer Sitzung wird in der ConfigurationName Eigenschaft der Sitzung gespeichert.

Der Wert dieses Parameters wird zum Auswählen und Filtern von Sitzungen verwendet. Die Sitzungskonfiguration, die von der Sitzung verwendet wird, wird nicht geändert.

Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:vgl

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ConnectionUri

Gibt einen URI an, der den Verbindungsendpunkt definiert, der zum erneuten Herstellen einer Verbindung mit der getrennten Sitzung verwendet wird.

Der URI muss vollständig qualifiziert sein. Das Format dieser Zeichenfolge lautet wie folgt:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Der Standardwert lautet wie folgt:

https://localhost:5985/WSMAN

Wenn Sie keinen Verbindungs-URI angeben, können Sie die Parameter UseSSL,ComputerName, Port und ApplicationName verwenden, um die Werte für den Verbindungs-URI anzugeben.

Gültige Werte für das segment Transport des URI sind HTTP und HTTPS. Wenn Sie einen Verbindungs-URI mit einem Transportsegment angeben, aber keinen Port angeben, wird die Sitzung mit Standardsports erstellt: 80 für HTTP und 443 für HTTPS. Um die Standardports für Windows PowerShell-Remoting zu verwenden, geben Sie Port 5985 für HTTP oder 5986 für HTTPS an.

Wenn der Zielcomputer die Verbindung an einen anderen URI umleitet, verhindert Windows PowerShell die Umleitung, es sei denn, Sie verwenden den Parameter AllowRedirection im Befehl.

Parametereigenschaften

Typ:Uri
Standardwert:https://localhost:5985/WSMAN
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:URI (Uniform Resource Identifier), CU

Parametersätze

ConnectionUriInstanceId
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Credential

Gibt ein Benutzerkonto an, das die Berechtigung hat, eine Verbindung mit der getrennten Sitzung herzustellen. Die Standardeinstellung ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z. B. "User01" oder "Domäne01\Benutzer01". Oder geben Sie ein PSCredential-Objekt ein, z. B. ein Objekt, das vom Cmdlet Get-Credential generiert wird. Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet aufgefordert, ein Kennwort einzugeben.

Parametereigenschaften

Typ:PSCredential
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Id

Gibt die ID der getrennten Sitzung an. Der parameter ID funktioniert nur, wenn die getrennte Sitzung zuvor mit der aktuellen Sitzung verbunden war.

Dieser Parameter ist gültig, aber nicht effektiv, wenn die Sitzung auf dem lokalen Computer gespeichert ist, aber nicht mit der aktuellen Sitzung verbunden war.

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Id
Position:0
Obligatorisch:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-InstanceId

Gibt die Instanz-ID der getrennten Sitzung an.

Die Instanz-ID ist eine GUID, die eine PSSession- auf einem lokalen oder Remotecomputer eindeutig identifiziert.

Die Instanz-ID wird in der eigenschaft InstanceID der PSSessiongespeichert.

Parametereigenschaften

Typ:Guid
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerInstanceId
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
InstanceId
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-JobName

Gibt einen Anzeigenamen für den Auftrag an, der von Receive-PSSession zurückgegeben wird.

Receive-PSSession gibt einen Auftrag zurück, wenn der Wert des OutTarget-Parameters Job ist oder der Auftrag, der in der getrennten Sitzung ausgeführt wird, in der aktuellen Sitzung gestartet wurde.

Wenn der Auftrag, der in der getrennten Sitzung ausgeführt wird, in der aktuellen Sitzung gestartet wurde, verwendet Windows PowerShell das ursprüngliche Auftragsobjekt in der Sitzung erneut und ignoriert den Wert des Parameters JobName .

Wenn der Auftrag, der in der getrennten Sitzung ausgeführt wird, in einer anderen Sitzung gestartet wurde, erstellt Windows PowerShell ein neues Auftragsobjekt. Sie verwendet einen Standardnamen, aber Sie können diesen Parameter verwenden, um den Namen zu ändern.

Wenn der Standardwert oder der explizite Wert des OutTarget-Parameters nicht Job ist, ist der Befehl erfolgreich, aber der JobName-Parameter hat keine Auswirkungen.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Name

Gibt den Anzeigenamen der getrennten Sitzung an.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
SessionName
Position:Named
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-OutTarget

Bestimmt, wie die Sitzungsergebnisse zurückgegeben werden. Die zulässigen Werte für diesen Parameter sind:

  • Arbeit. Gibt die Ergebnisse asynchron in einem Job-Objekt zurück. Sie können den parameter JobName verwenden, um einen Namen oder neuen Namen für den Auftrag anzugeben.
  • Gastgeber. Gibt die Ergebnisse an die Befehlszeile (synchron) zurück. Wenn der Befehl fortgesetzt wird oder die Ergebnisse aus einer großen Anzahl von Objekten bestehen, wird die Antwort möglicherweise verzögert.

Der Standardwert des OutTarget--Parameters ist Host. Wenn der Befehl, der in einer getrennten Sitzung empfangen wird, jedoch in der aktuellen Sitzung gestartet wurde, ist der Standardwert des OutTarget-Parameters das Formular, in dem der Befehl gestartet wurde. Wenn der Befehl als Job gestartet wurde, wird er standardmäßig als Job zurückgegeben. Andernfalls wird es standardmäßig an das Host-Programm zurückgegeben.

In der Regel zeigt das Hostprogramm zurückgegebene Objekte in der Befehlszeile ohne Verzögerung an, dieses Verhalten kann jedoch variieren.

Parametereigenschaften

Typ:OutTarget
Standardwert:None
Zulässige Werte:Default, Host, Job
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Port

Gibt den Netzwerkport auf dem Remotecomputer an, der zum erneuten Herstellen einer Verbindung mit der Sitzung verwendet wird. Zum Herstellen einer Verbindung mit einem Remotecomputer muss der Remotecomputer den für die Verbindung verwendeten Port abhören. Die Standardports sind 5985, der WinRM-Port für HTTP und 5986, der WinRM-Port für HTTPS.

Bevor Sie einen alternativen Port verwenden, müssen Sie den WinRM-Listener auf dem Remotecomputer so konfigurieren, dass er an diesem Port lauscht. Geben Sie zum Konfigurieren des Listeners die folgenden beiden Befehle an der Windows PowerShell-Eingabeaufforderung ein:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Verwenden Sie nicht den Parameter Port, es sei denn, Sie müssen. Der im Befehl festgelegte Port gilt für alle Computer oder Sitzungen, auf denen der Befehl ausgeführt wird. Eine alternative Porteinstellung kann verhindern, dass der Befehl auf allen Computern ausgeführt wird.

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-Session

Gibt die getrennte Sitzung an. Geben Sie eine Variable ein, die die PSSession enthält, oder einen Befehl, der die PSSession erstellt oder abruft, z. B. einen Get-PSSession Befehl.

Parametereigenschaften

Typ:PSSession
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

Session
Position:0
Obligatorisch:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-SessionOption

Gibt erweiterte Optionen für die Sitzung an. Geben Sie ein SessionOption--Objekt ein, z. B. ein Objekt, das Sie mithilfe des Cmdlets New-PSSessionOption erstellen, oder eine Hashtabelle, in der es sich bei den Schlüsseln um Sitzungsoptionsnamen und die Werte um Sitzungsoptionswerte handelt.

Die Standardwerte für die Optionen werden durch den Wert der $PSSessionOption Einstellungsvariablen bestimmt, wenn sie festgelegt ist. Andernfalls werden die Standardwerte durch Optionen festgelegt, die in der Sitzungskonfiguration festgelegt sind.

Die Sitzungsoptionswerte haben Vorrang vor Standardwerten für Sitzungen, die in der einstellungsvariablen $PSSessionOption und in der Sitzungskonfiguration festgelegt sind. Sie haben jedoch keine Vorrang vor maximalen Werten, Kontingenten oder Grenzwerten, die in der Sitzungskonfiguration festgelegt sind.

Eine Beschreibung der Sitzungsoptionen, die die Standardwerte enthält, finden Sie unter New-PSSessionOption. Informationen zur Einstellungsvariable $PSSessionOption finden Sie unter about_Preference_Variables. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.

Parametereigenschaften

Typ:PSSessionOption
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ConnectionUriSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-UseSSL

Gibt an, dass dieses Cmdlet das SSL-Protokoll (Secure Sockets Layer) verwendet, um eine Verbindung mit der getrennten Sitzung herzustellen. Standardmäßig wird SSL nicht verwendet.

WS-Management verschlüsselt alle Windows PowerShell-Inhalte, die über das Netzwerk übertragen werden. UseSSL- ist ein zusätzlicher Schutz, der die Daten über eine HTTPS-Verbindung statt über eine HTTP-Verbindung sendet.

Wenn Sie diesen Parameter verwenden, SSL jedoch nicht für den Port verfügbar ist, der für den Befehl verwendet wird, schlägt der Befehl fehl.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

ComputerSessionName
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False
ComputerInstanceId
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-WhatIf

Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Wi

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

PSSession

Sie können Sitzungsobjekte, z. B. solche, die vom Cmdlet Get-PSSession zurückgegeben werden, über die Pipeline an dieses Cmdlet übergeben.

Int32

Sie können Sitzungs-IDs über die Pipeline an dieses Cmdlet übergeben.

Guid

Mit diesem Cmdlet können Sie die Instanz-IDs von Sitzungen über die Pipeline übergeben.

String

Sie können Sitzungsnamen an dieses Cmdlet weiterleiten.

Ausgaben

System.Management.Automation.Job or PSObject

Dieses Cmdlet gibt die Ergebnisse von Befehlen zurück, die in der getrennten Sitzung ausgeführt wurden, falls vorhanden. Wenn der Wert oder Standardwert des OutTarget-Parameters Job ist, gibt Receive-PSSession ein Job-Objekt zurück. Andernfalls werden Objekte zurückgegeben, die diese Befehlsergebnisse darstellen.

Hinweise

  • Receive-PSSession ruft nur Ergebnisse von Sitzungen ab, die getrennt wurden. Nur Sitzungen, die mit Computern verbunden sind, auf denen Windows PowerShell 3.0 oder höher ausgeführt wird, können getrennt und wieder verbunden werden.

  • Wenn die Befehle, die in der getrennten Sitzung ausgeführt wurden, keine Ergebnisse generiert haben oder wenn die Ergebnisse bereits an eine andere Sitzung zurückgegeben wurden, generiert Receive-PSSession keine Ausgabe.

  • Der Ausgabepuffermodus einer Sitzung bestimmt, wie Befehle in der Sitzung die Ausgabe verwalten, wenn die Sitzung getrennt wird. Wenn der Wert der Option OutputBufferingMode der Sitzung Drop lautet und der Ausgabepuffer voll ist, beginnt der Befehl, die Ausgabe zu löschen. Receive-PSSession kann diese Ausgabe nicht wiederherstellen. Weitere Informationen zur Option für den Ausgabepuffermodus finden Sie in den Hilfethemen zu den Cmdlets New-PSSessionOption und New-PSTransportOption.

  • Sie können den Wert für das Leerlauftimeout einer PSSession nicht ändern, wenn Sie eine Verbindung mit der PSSession herstellen oder Ergebnisse empfangen. Der SessionOption-Parameter von Receive-PSSession akzeptiert ein SessionOption-Objekt mit einem IdleTimeout-Wert . Der IdleTimeout-Wert des SessionOption-Objekts und der IdleTimeout-Wert der Variablen $PSSessionOption werden jedoch ignoriert, wenn eine Verbindung mit einer PSSession hergestellt wird oder Ergebnisse empfangen werden.

    Sie können das Leerlauftimeout einer PSSession festlegen und ändern, wenn Sie die PSSession erstellen, die Cmdlets New-PSSession oder Invoke-Command verwenden und die Verbindung zur PSSession trennen.

    Die IdleTimeout- Eigenschaft eines PSSession- ist wichtig für getrennte Sitzungen, da sie bestimmt, wie lange eine getrennte Sitzung auf dem Remotecomputer verwaltet wird. Getrennte Sitzungen gelten vom Moment ihrer Trennung an als im Leerlauf, selbst wenn Befehle in der getrennten Sitzung ausgeführt werden.

  • Wenn Sie einen Auftrag in einer Remotesitzung starten, indem Sie den AsJob-Parameter des Cmdlets Invoke-Command verwenden, wird das Auftragsobjekt in der aktuellen Sitzung erstellt, auch wenn der Auftrag in der Remotesitzung ausgeführt wird. Wenn Sie die Remotesitzung trennen, wird das Auftragsobjekt in der aktuellen Sitzung jetzt vom Auftrag getrennt. Das Auftragsobjekt enthält weiterhin alle Ergebnisse, die an das Objekt zurückgegeben wurden, aber es erhält keine neuen Ergebnisse vom Auftrag in der getrennten Sitzung.

    Wenn ein anderer Client eine Verbindung mit der Sitzung herstellt, die den ausgeführten Auftrag enthält, sind die Ergebnisse, die in der ursprünglichen Sitzung an das ursprüngliche Auftragsobjekt übermittelt wurden, in der neu verbundenen Sitzung nicht verfügbar. Nur Ergebnisse, die nicht an das ursprüngliche Auftragsobjekt übermittelt wurden, sind in der erneut verbundenen Sitzung verfügbar.

    Wenn Sie ein Skript in einer Sitzung starten und dann die Verbindung zur Sitzung trennen, sind alle Ergebnisse, die das Skript vor dem Trennen der Verbindung an die Sitzung übermittelt, für einen anderen Client, der eine Verbindung mit der Sitzung herstellt, nicht verfügbar.

    Um Datenverluste in Sitzungen zu verhindern, die Sie trennen möchten, verwenden Sie den Parameter InDisconnectedSession des Cmdlets Invoke-Command . Da dieser Parameter verhindert, dass Ergebnisse an die aktuelle Sitzung zurückgegeben werden, sind alle Ergebnisse verfügbar, wenn die Sitzung erneut verbunden wird.

    Sie können Datenverluste auch verhindern, indem Sie mit dem Cmdlet Invoke-Command einen Start-Job Befehl in der Remotesitzung ausführen. In diesem Fall wird das Auftragsobjekt in der Remotesitzung erstellt. Sie können das Cmdlet Receive-PSSession nicht verwenden, um die Auftragsergebnisse abzurufen. Verwenden Sie stattdessen das Cmdlet Connect-PSSession , um eine Verbindung mit der Sitzung herzustellen, und verwenden Sie dann das Cmdlet Invoke-Command , um einen Receive-Job Befehl in der Sitzung auszuführen.

  • Wenn eine Sitzung, die einen ausgeführten Auftrag enthält, getrennt und dann wieder verbunden wird, wird das ursprüngliche Auftragsobjekt nur dann wiederverwendet, wenn der Auftrag getrennt und wieder mit derselben Sitzung verbunden wird und der Befehl zum Wiederherstellen der Verbindung keinen neuen Auftragsnamen angibt. Wenn die Sitzung wieder mit einer anderen Clientsitzung verbunden wird oder ein neuer Auftragsname angegeben wird, erstellt Windows PowerShell ein neues Auftragsobjekt für die neue Sitzung.

  • Wenn Sie eine PSSession trennen, ist der Status der Sitzung Disconnected und die Verfügbarkeit ist None.

    Der Wert der eigenschaft State ist relativ zur aktuellen Sitzung. Daher bedeutet der Wert Disconnected, dass die PSSession nicht mit der aktuellen Sitzung verbunden ist. Es bedeutet jedoch nicht, dass die PSSession- von allen Sitzungen getrennt ist. Möglicherweise ist sie mit einer anderen Sitzung verbunden. Um festzustellen, ob Sie eine Verbindung mit der Sitzung herstellen oder erneut herstellen können, verwenden Sie die Eigenschaft Availability.

    Ein Availability Wert "None" gibt an, dass Sie eine Verbindung mit der Sitzung herstellen können. Ein Wert von Beschäftigt gibt an, dass Sie keine Verbindung mit der PSSession herstellen können, da sie mit einer anderen Sitzung verbunden ist.

    Weitere Informationen zu den Werten der State-Eigenschaft von Sitzungen finden Sie unter RunspaceState-Enumeration in der MSDN-Bibliothek.

    Weitere Informationen zu den Werten der Availability-Eigenschaft von Sitzungen finden Sie unter RunspaceAvailability Enumeration.