Freigeben über


Enter-PSSession

Startet eine interaktive Sitzung mit einem Remotecomputer.

Syntax

Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [<CommonParameters>]

Enter-PSSession [[-Id] <int>] [<CommonParameters>]

Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>]

Enter-PSSession [-Name <string>] [<CommonParameters>]

Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>]

Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authentication {<Default> | <Basic> | <Negotiate> | <NegotiateWithImplicitCredential> | <Credssp> | <Digest> | <Kerberos>}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>]

Beschreibung

Das Cmdlet "Enter-PSSession" startet eine interaktive Sitzung mit einem einzelnen Remotecomputer. Während der Sitzung werden die eingegebenen Befehle auf dem Remotecomputer ausgeführt, als ob diese direkt auf dem Remotecomputer eingegeben würden. Es kann nur jeweils eine interaktive Sitzung ausgeführt werden.

Normalerweise wird der Name des Remotecomputers mit dem ComputerName-Parameter angegeben. Sie können jedoch auch eine Sitzung verwenden, die Sie mit New-PSSession für die interaktive Sitzung erstellen.

Mit dem Cmdlet "Exit-PSSession" oder durch Eingabe von "exit" können Sie die interaktive Sitzung beenden und die Verbindung mit dem Remotecomputer trennen.

Parameter

-AllowRedirection

Ermöglicht die Umleitung dieser Verbindung an einen alternativen URI (Uniform Resource Identifier).

Wenn Sie den ConnectionURI-Parameter verwenden, kann das Remoteziel eine Anweisung für die Umleitung an einen anderen URI zurückgeben. Standardmäßig erfolgt mit Windows PowerShell keine Umleitung von Verbindungen, Sie können jedoch mit dem Parameter die Umleitung von Verbindungen zulassen.

Ermöglicht die Umleitung dieser Verbindung an einen alternativen URI.

Wenn Sie den ConnectionURI-Parameter verwenden, kann das Remoteziel eine Anweisung für die Umleitung an einen anderen URI zurückgeben. Standardmäßig erfolgt mit Windows PowerShell keine Umleitung von Verbindungen, Sie können jedoch mit dem AllowRedirection-Parameter die Umleitung von Verbindungen zulassen.

Sie können auch einschränken, wie oft die Verbindung umgeleitet wird, indem Sie die MaximumConnectionRedirectionCount-Eigenschaft der Einstellungsvariablen "$PSSessionOption" oder die MaximumConnectionRedirectionCount-Eigenschaft des Werts des SessionOption-Parameters festlegen. Der Standardwert ist 5. Weitere Informationen finden Sie in der Beschreibung des SessionOption-Parameters unter New-PSSessionOption.

Erforderlich?

false

Position?

named

Standardwert

False

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ApplicationName <string>

Gibt das Segment für den Anwendungsnamen im Verbindungs-URI an. Verwenden Sie diesen Parameter zum Angeben des Anwendungsnamens, wenn Sie nicht den ConnectionURI-Parameter im Befehl verwenden.

Der Standardwert ist der Wert der Einstellungsvariablen "$PSSessionApplicationName" auf dem lokalen Computer. Wenn diese Einstellungsvariable nicht definiert ist, ist der Standardwert "WSMAN". Dieser Wert ist für die meisten Verwendungsarten geeignet. Weitere Informationen finden Sie unter "about_Preference_Variables".

Der WinRM-Dienst wählt mit dem Anwendungsnamen einen Listener für die Verbindungsanforderung aus. Der Wert dieses Parameters sollte mit dem Wert der URLPrefix-Eigenschaft eines Listeners auf dem Remotecomputer übereinstimmen.

Erforderlich?

false

Position?

named

Standardwert

WSMAN

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Authentication <AuthenticationMechanism>

Gibt den Mechanismus an, der zum Authentifizieren der Anmeldeinformationen des Benutzers verwendet wird. Gültige Werte sind "Default", "Basic", "Credssp", "Digest", "Kerberos", "Negotiate" und "NegotiateWithImplicitCredential". Der Standardwert ist "Default".

Die CredSSP-Authentifizierung ist nur in Windows Vista, Windows Server 2008 und höheren Versionen von Windows verfügbar.

Informationen zu den Werten dieses Parameters finden Sie in der Beschreibung der System.Management.Automation.Runspaces.AuthenticationMechanism-Enumeration in der MSDN Library (Microsoft Developer Network) unter "https://go.microsoft.com/fwlink/?LinkId=144382" (möglicherweise auf Englisch).

Vorsicht: Die CredSSP (Credential Security Service Provider)-Authentifizierung, bei der die Anmeldeinformationen des Benutzers zur Authentifizierung an einen Remotecomputer übergeben werden, ist für Befehle konzipiert, die die Authentifizierung mehr als einer Ressource erfordern, z. B. beim Zugriff auf eine Remotenetzwerkfreigabe. Dieser Mechanismus erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn die Sicherheit des Remotecomputers gefährdet ist, können die an ihn übergebenen Anmeldeinformationen zum Steuern der Netzwerksitzung verwendet werden.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-CertificateThumbprint <string>

Gibt das digitale Zertifikat für öffentliche Schlüssel (X509) eines Benutzerkontos an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Geben Sie den Zertifikatfingerabdruck des Zertifikats ein.

Zertifikate werden bei der zertifikatbasierten Clientauthentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden. Für Domänenkonten können sie nicht verwendet werden.

Um einen Zertifikatfingerabdruck abzurufen, verwenden Sie für das Windows PowerShell-Laufwerk "Cert:" den Befehl "Get-Item" oder "Get-ChildItem".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-ComputerName <string>

Startet eine interaktive Sitzung mit dem angegebenen Remotecomputer. Geben Sie nur einen Computernamen ein. Der Standardwert ist der lokale Computer.

Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen mindestens eines Remotecomputers ein. Sie können auch einen Computernamen über die Pipeline an Enter-PSSession übergeben.

Wenn eine IP-Adresse im Wert des ComputerName-Parameters verwendet werden soll, muss der Befehl den Credential-Parameter einschließen. Außerdem muss der Computer für HTTPS-Transport konfiguriert werden, oder die IP-Adresse des Remotecomputers muss in die WinRM TrustedHosts-Liste auf dem lokalen Computer aufgenommen werden. Anweisungen zum Hinzufügen eines Computernamens zur TrustedHosts-Liste finden Sie unter "Hinzufügen eines Computers zur Liste der vertrauenswürdigen Hosts" in "about_Remote_Troubleshooting".

Hinweis: Um unter Windows Vista und höheren Versionen von Windows den lokalen Computer in den Wert des ComputerName-Parameters einzuschließen, müssen Sie Windows PowerShell mit der Option "Als Administrator ausführen" starten.

Erforderlich?

true

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue, ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-ConfigurationName <string>

Gibt die Sitzungskonfiguration an, die für die interaktive Sitzung verwendet wird.

Geben Sie einen Konfigurationsnamen oder den vollqualifizierten Ressourcen-URI einer Sitzungskonfiguration ein. Wenn Sie nur den Konfigurationsnamen angeben, wird der folgende Schema-URI vorangestellt: https://schemas.microsoft.com/powershell.

Die Sitzungskonfiguration für eine Sitzung befindet sich auf dem Remotecomputer. Wenn die angegebene Sitzungskonfiguration auf dem Remotecomputer nicht vorhanden ist, führt der Befehl zu einem Fehler.

Der Standardwert ist der Wert der Einstellungsvariablen "$PSSessionConfigurationName" auf dem lokalen Computer. Wenn diese Einstellungsvariable nicht festgelegt ist, ist die Standardeinstellung "Microsoft.PowerShell". Weitere Informationen finden Sie unter "about_Preference_Variables".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-ConnectionURI <Uri>

Gibt einen URI (Uniform Resource Identifier) an, der den Verbindungsendpunkt für die interaktive Sitzung definiert. Der URI muss vollqualifiziert sein.

Das Format dieser Zeichenfolge lautet wie folgt:

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

Der Standardwert lautet wie folgt:

https://localhost:80/WSMAN

Gültige Werte für den Abschnitt "Transport" des URIs sind "HTTP" und "HTTPS". Wenn Sie "ConnectionURI" nicht angeben, können Sie die URI-Werte mit den Parametern "UseSSL", "ComputerName", "Port" und "ApplicationName" angeben.

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

Erforderlich?

false

Position?

2

Standardwert

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Credential <PSCredential>

Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Der Standardwert ist der aktuelle Benutzer.

Geben Sie einen Benutzernamen ein, z. B. "User01", "Domain01\User01" oder "User@Domain.com", oder geben Sie ein PSCredential-Objekt ein, z. B. ein vom Cmdlet "Get-Credential" zurückgegebenes Objekt.

Wenn Sie einen Benutzernamen eingeben, werden Sie zur Eingabe eines Kennworts aufgefordert.

Erforderlich?

false

Position?

named

Standardwert

Aktueller Benutzer

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Id <int>

Gibt die ID einer vorhandenen Sitzung an. Enter-PSSession verwendet die angegebene Sitzung für die interaktive Sitzung.

Mit dem Cmdlet "Get-PSSession" können Sie die ID einer Sitzung suchen.

Erforderlich?

false

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-InstanceId <Guid>

Gibt die Instanz-ID einer vorhandenen Sitzung an. Enter-PSSession verwendet die angegebene Sitzung für die interaktive Sitzung.

Die Instanz-ID ist eine GUID. Mit dem Cmdlet "Get-PSSession" können Sie die Instanz-ID einer Sitzung suchen. Sie können eine vorhandene Sitzung auch mithilfe der Sitzung, des Namens oder der ID-Parameter angeben. Sie können auch den ComputerName-Parameter verwenden, um eine temporäre Sitzung zu starten.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Name <string>

Gibt den Anzeigenamen einer vorhandenen Sitzung an. Enter-PSSession verwendet die angegebene Sitzung für die interaktive Sitzung.

Wenn der angegebene Name mit mehr als einer Sitzung übereinstimmt, schlägt der Befehl fehl. Sie können eine vorhandene Sitzung auch mithilfe der Sitzung, der Instanz-ID, des Namens oder der ID-Parameter angeben. Sie können auch den ComputerName-Parameter verwenden, um eine temporäre Sitzung zu starten.

Mit dem Name-Parameter des Cmdlets "New-PSSession" können Sie einen Anzeigenamen für eine Sitzung einrichten.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

true (ByPropertyName)

Platzhalterzeichen akzeptieren?

false

-Port <int>

Gibt den Netzwerkport an dem für diesen Befehl verwendeten Remotecomputer an. Der Standardport ist Port 80 (der HTTP-Port).

Vor der Verwendung eines alternativen Ports müssen Sie den WinRM-Listener auf dem Remotecomputer für die Überwachung dieses Ports konfigurieren. Verwenden Sie die folgenden Befehle, um den Listener zu konfigurieren:

1. winrm delete winrm/config/listener?Address=*+Transport=HTTP

2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="<port-number>"}

Verwenden Sie den Port-Parameter nur, wenn dies erforderlich ist. Die im Befehl festgelegte Porteinstellung gilt für alle Computer oder Sitzungen, für die der Befehl ausgeführt wird. Mit einer alternativen Porteinstellung kann verhindert werden, dass der Befehl auf allen Computern ausgeführt wird.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-Session <PSSession>

Gibt eine Windows PowerShell-Sitzung (PSSession) für die interaktive Sitzung an. Dieser Parameter akzeptiert ein Sitzungsobjekt. PSSession kann auch mit dem Namen, der InstanceID oder mit ID-Parametern angegeben werden.

Geben Sie eine Variable ein, die ein Sitzungsobjekt enthält, oder einen Befehl, mit dem ein Sitzungsobjekt erstellt oder abgerufen wird, beispielsweise den Befehl "New-PSSession" oder den Befehl "Get-PSSession". Sie können auch ein Sitzungsobjekt über die Pipeline an Enter-PSSession übergeben. Sie können nur eine PSSession mit diesem Parameter senden. Wenn Sie eine Variable eingeben, die mehr als eine PSSession enthält, schlägt der Befehl fehl.

Mit Exit-PSSession oder mit dem EXIT-Schlüsselwort wird die interaktive Sitzung beendet, die erstellte PSSession bleibt jedoch geöffnet und kann weiterhin verwendet werden.

Erforderlich?

false

Position?

1

Standardwert

Pipelineeingaben akzeptieren?

true (ByValue, ByPropertyName)

Platzhalterzeichen akzeptieren?

true

-SessionOption <PSSessionOption>

Legt erweiterte Optionen für die Sitzung fest. Geben Sie ein SessionOption-Objekt ein, das Sie mit dem Cmdlet "New-PSSessionOption" erstellen.

Die Standardwerte für die Optionen werden durch den Wert der Einstellungsvariablen "$PSSessionOption" bestimmt, wenn diese festgelegt wurde. Andernfalls verwendet die Sitzung die Systemstandardwerte.

Eine Beschreibung der Sitzungsoptionen, einschließlich der Standardwerte, finden Sie unter New-PSSessionOption. Weitere Informationen über die Einstellungsvariable "$PSSessionOption" finden Sie unter "about_Preference_Variables".

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

-UseSSL

Verwendet das SSL (Secure Sockets Layer)-Protokoll, um eine Verbindung mit dem Remotecomputer herzustellen. Standardmäßig wird SSL nicht verwendet.

WS-Management verschlüsselt alle über das Netzwerk gesendeten Windows PowerShell-Inhalte. UseSSL ist ein zusätzlicher Schutz, bei dem die Daten über eine HTTPS- anstatt über eine HTTP-Verbindung gesendet werden.

Wenn Sie diesen Parameter verwenden und SSL an dem für den Befehl verwendeten Port nicht verfügbar ist, schlägt der Befehl fehl.

Erforderlich?

false

Position?

named

Standardwert

Pipelineeingaben akzeptieren?

false

Platzhalterzeichen akzeptieren?

false

<CommonParameters>

Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.

Eingaben und Ausgaben

Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.

Eingaben

System.String oder System.Management.Automation.Runspaces.PSSession

Sie können einen Computernamen (eine Zeichenfolge) oder ein Sitzungsobjekt über die Pipeline an Enter-PSSession übergeben.

Ausgaben

Keiner

Das Cmdlet gibt keine Ausgabe zurück.

Hinweise

– Sie müssen Mitglied der Gruppe "Administratoren" auf dem Remotecomputer sein, um eine Verbindung mit einem Remotecomputer herzustellen.

– Sie müssen Windows PowerShell mit der Option "Als Administrator ausführen" starten, um unter Windows Vista und höheren Versionen von Windows eine interaktive Sitzung auf dem lokalen Computer zu starten.

– Wenn Sie Enter-PSSession verwenden, wird das Benutzerprofil auf dem Remotecomputer für die interaktive Sitzung verwendet. Die Befehle im Remotebenutzerprofil werden einschließlich der Befehle zum Hinzufügen von Windows PowerShell-Snap-Ins sowie zum Ändern der Eingabeaufforderung ausgeführt, bevor die Remoteeingabeaufforderung ausgeführt wird.

– Enter-PSSession verwendet die auf dem lokalen Computer für die interaktive Sitzung festgelegte Benutzeroberflächenkultur. Mit der automatischen Variablen "$UICulture" können Sie die lokale Benutzeroberflächenkultur suchen.

– Enter-PSSession erfordert die Cmdlets "Get-Command", "Out-Default" und "Exit-PSSession". Wenn diese Cmdlets nicht in der Sitzungskonfiguration auf dem Remotecomputer enthalten sind, schlagen die Enter-PSSession-Befehle fehl.

– Im Gegensatz zum Cmdlet "Invoke-Command", das die Befehle vor dem Senden an den Remotecomputer analysiert und interpretiert, sendet Enter-PSSession die Befehle direkt an den Remotecomputer, ohne sie zu interpretieren.

Beispiel 1

C:\PS>Enter-PSSession

LocalHost\PS>

Beschreibung
-----------
Dieser Befehl startet eine interaktive Sitzung auf dem lokalen Computer. Die Eingabeaufforderung ändert sich, um anzugeben, dass die Befehle nun in einer anderen Sitzung ausgeführt werden.

Die eingegebenen Befehle werden in der neuen Sitzung ausgeführt, und die Ergebnisse werden als Text an die Standardsitzung zurückgegeben.





Beispiel 2

C:\PS>enter-pssession -computer Server01

Server01\PS> get-process powershell > C:\ps-test\process.txt

Server01\PS> exit-pssession
C:\PS>

C:\PS> dir C:\ps-test\process.txt
Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does not exist.
At line:1 char:4
+ dir <<<<  c:\ps-test\process.txt

Beschreibung
-----------
Dieser Befehl zeigt die Arbeitsweise in einer interaktiven Sitzung mit einem Remotecomputer.

Durch den ersten Befehl wird mit dem Cmdlet "Enter-PSSession" eine interaktive Sitzung mit dem Remotecomputer "Server01" gestartet. Wenn die Sitzung startet, ändert sich die Eingabeaufforderung und enthält den Computernamen.

Der zweite Befehl ruft den PowerShell-Prozess ab und leitet die Ausgabe in die "Datei Process.txt" um. Der Befehl wird an den Remotecomputer gesendet, und die Datei wird auf dem Remotecomputer gespeichert. 

Der dritte Befehl verwendet das Exit-Schlüsselwort, um die interaktive Sitzung zu beenden und die Verbindung zu schließen.

Der vierte Befehl bestätigt, dass sich die Datei "Process.txt" auf dem Remotecomputer befindet. Es ist nicht möglich, die Datei mit dem Befehl "Get-ChildItem" ("dir") auf dem lokalen Computer zu suchen.





Beispiel 3

C:\PS>$s = new-pssession -computername Server01

C:\PS> Enter-PSSession -session $s

Server01\PS>

Beschreibung
-----------
Diese Befehle führen die interaktive Sitzung mit dem Sitzungsparameter von Enter-PSSession in einer vorhandenen Windows PowerShell-Sitzung (PSSession) aus.





Beispiel 4

C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\user01

Server01\PS>

Beschreibung
-----------
Dieser Befehl startet eine interaktive Sitzung mit dem Computer "Server01". Dabei wird der Port mit dem Port-Parameter angeben, und das Konto eines Benutzers mit der Berechtigung zum Herstellen einer Verbindung mit dem Remotecomputer wird mit dem Credential-Parameter angegeben.





Beispiel 5

C:\PS>Enter-PSSession -computername Server01

Server01:\PS> Exit-PSSession

C:\PS>

Beschreibung
-----------
Dieses Beispiel zeigt, wie eine interaktive Sitzung gestartet und beendet wird. Durch den ersten Befehl wird mit dem Cmdlet "Enter-PSSession" eine interaktive Sitzung mit dem Computer "Server01" gestartet. 

Der zweite Befehl beendet die Sitzung mit dem Cmdlet "Exit-PSSession". Sie können die interaktive Sitzung auch mit dem Exit-Schlüsselwort beenden. Exit-PSSession und Exit führen zum selben Ergebnis.





Siehe auch

Konzepte

about_PSSessions
about_remote
New-PSSession
Get-PSSession
Exit-PSSession
Remove-PSSession
Invoke-Command