Enter-PSSession
Startet eine interaktive Sitzung mit einem Remotecomputer.
Syntax
Enter-PSSession
[-ComputerName] <String>
[-EnableNetworkAccess]
[[-Credential] <PSCredential>]
[-ConfigurationName <String>]
[-Port <Int32>]
[-UseSSL]
[-ApplicationName <String>]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Enter-PSSession
[-HostName] <String>
[-Options <Hashtable>]
[-Port <Int32>]
[-UserName <String>]
[-KeyFilePath <String>]
[-Subsystem <String>]
[-ConnectingTimeout <Int32>]
[-SSHTransport]
[<CommonParameters>]
Enter-PSSession
[[-Session] <PSSession>]
[<CommonParameters>]
Enter-PSSession
[[-ConnectionUri] <Uri>]
[-EnableNetworkAccess]
[[-Credential] <PSCredential>]
[-ConfigurationName <String>]
[-AllowRedirection]
[-SessionOption <PSSessionOption>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Enter-PSSession
[-InstanceId <Guid>]
[<CommonParameters>]
Enter-PSSession
[[-Id] <Int32>]
[<CommonParameters>]
Enter-PSSession
[-Name <String>]
[<CommonParameters>]
Enter-PSSession
[-VMId] <Guid>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
Enter-PSSession
[-VMName] <String>
[-Credential] <PSCredential>
[-ConfigurationName <String>]
[<CommonParameters>]
Enter-PSSession
[-ContainerId] <String>
[-ConfigurationName <String>]
[-RunAsAdministrator]
[<CommonParameters>]
Beschreibung
Das Cmdlet Enter-PSSession
startet eine interaktive Sitzung mit einem einzelnen Remotecomputer. Während der Sitzung werden die von Ihnen eingegebenen Befehle auf dem Remotecomputer genauso ausgeführt, als ob Sie direkt auf dem Remotecomputer eingaben. Sie können jeweils nur eine interaktive Sitzung verwenden.
In der Regel verwenden Sie den parameter ComputerName, um den Namen des Remotecomputers anzugeben.
Sie können jedoch auch eine sitzung verwenden, die Sie erstellen, indem Sie das cmdlet New-PSSession
für die interaktive Sitzung verwenden. Sie können jedoch nicht die cmdlets Disconnect-PSSession
, Connect-PSSession
oder Receive-PSSession
verwenden, um die Verbindung mit einer interaktiven Sitzung zu trennen oder erneut herzustellen.
Ab PowerShell 6.0 können Sie Secure Shell (SSH) verwenden, um eine Verbindung mit einem Remotecomputer herzustellen. Sie müssen ÜBER SSH auf dem lokalen Computer verfügen, und der Remotecomputer muss mit einem PowerShell-SSH-Endpunkt konfiguriert werden. Der Vorteil einer SSH-basierten PowerShell-Remotesitzung besteht darin, dass sie auf mehreren Plattformen (Windows, Linux, macOS) funktioniert. Für SSH-basiertes Remoting verwenden Sie den HostName Parameter festgelegt, um den Remotecomputer und relevante Verbindungsinformationen anzugeben. Weitere Informationen zum Einrichten von PowerShell SSH-Remoting finden Sie unter PowerShell Remoting Over SSH.
Um die interaktive Sitzung zu beenden und die Verbindung mit dem Remotecomputer zu trennen, verwenden Sie das Cmdlet Exit-PSSession
, oder geben Sie exit
ein.
Wichtig
Enter-PSSession
soll die aktuelle interaktive Sitzung durch eine neue interaktive Remotesitzung ersetzen. Sie sollten sie nicht innerhalb einer Funktion oder eines Skripts aufrufen oder sie als Befehl an die ausführbare Datei pwsh
übergeben.
Beispiele
Beispiel 1: Starten einer interaktiven Sitzung
PS> Enter-PSSession
[localhost]: PS>
Dieser Befehl startet eine interaktive Sitzung auf dem lokalen Computer. Die Eingabeaufforderung ändert sich, um anzugeben, dass Sie jetzt Befehle in einer anderen Sitzung ausführen.
Die Befehle, die Sie in die neue Sitzung eingeben, und die Ergebnisse werden als Text an die Standardsitzung zurückgegeben.
Beispiel 2: Arbeiten mit einer interaktiven Sitzung
Der erste Befehl verwendet das Cmdlet Enter-PSSession
, um eine interaktive Sitzung mit Server01, einem Remotecomputer, zu starten. Wenn die Sitzung gestartet wird, ändert sich die Eingabeaufforderung, um den Computernamen einzuschließen.
Der zweite Befehl ruft den PowerShell-Prozess ab und leitet die Ausgabe an die Process.txt
Datei um.
Der Befehl wird an den Remotecomputer übermittelt, und die Datei wird auf dem Remotecomputer gespeichert.
Der dritte Befehl verwendet das Schlüsselwort Exit, 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. Ein Befehl Get-ChildItem
("dir") auf dem lokalen Computer kann die Datei nicht finden.
PS C:\> Enter-PSSession -ComputerName Server01
[Server01]: PS C:\>
[Server01]: PS C:\> Get-Process PowerShell > C:\ps-test\Process.txt
[Server01]: PS C:\> exit
PS C:\>
PS C:\> 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
Dieser Befehl zeigt, wie Sie in einer interaktiven Sitzung mit einem Remotecomputer arbeiten.
Beispiel 3: Verwenden des Session-Parameters
PS> $s = New-PSSession -ComputerName Server01
PS> Enter-PSSession -Session $s
[Server01]: PS>
Diese Befehle verwenden den parameter Session von Enter-PSSession
zum Ausführen der interaktiven Sitzung in einer vorhandenen PowerShell-Sitzung (PSSession).
Beispiel 4: Starten einer interaktiven Sitzung und Angeben der Parameter "Port" und "Anmeldeinformationen"
PS> Enter-PSSession -ComputerName Server01 -Port 90 -Credential Domain01\User01
[Server01]: PS>
Dieser Befehl startet eine interaktive Sitzung mit dem Server01-Computer. Er verwendet den parameter Port, um den Port und den parameter Credential anzugeben, um das Konto eines Benutzers anzugeben, der über die Berechtigung zum Herstellen einer Verbindung mit dem Remotecomputer verfügt.
Beispiel 5: Beenden einer interaktiven Sitzung
PS> Enter-PSSession -ComputerName Server01
[Server01]: PS> Exit-PSSession
PS>
In diesem Beispiel wird gezeigt, wie Sie eine interaktive Sitzung starten und beenden. Der erste Befehl verwendet das Cmdlet Enter-PSSession
, um eine interaktive Sitzung mit dem Server01-Computer zu starten.
Der zweite Befehl verwendet das Cmdlet Exit-PSSession
, um die Sitzung zu beenden. Sie können auch das Schlüsselwort Exit verwenden, um die interaktive Sitzung zu beenden.
Exit-PSSession
und Exit haben die gleiche Wirkung.
Beispiel 6: Starten einer interaktiven Sitzung mit SSH
PS> Enter-PSSession -HostName UserA@LinuxServer01
In diesem Beispiel wird gezeigt, wie Sie eine interaktive Sitzung mit Secure Shell (SSH) starten. Wenn SSH auf dem Remotecomputer für die Verwendung von Kennwörtern konfiguriert ist, werden Sie aufgefordert, ein Kennwort einzugeben. Andernfalls müssen Sie die schlüsselbasierte Benutzerauthentifizierung verwenden.
Beispiel 7: Starten einer interaktiven Sitzung mit SSH mit einem Port- und Benutzerauthentifizierungsschlüssel
PS> Enter-PSSession -HostName UserA@LinuxServer02:22 -KeyFilePath c:\sshkeys\userAKey_rsa
In diesem Beispiel wird gezeigt, wie Sie eine interaktive Sitzung mit SSH starten. Der Benutzername und die SSH-Portnummer werden als Teile des Werts des parameters HostName angegeben. Der parameter KeyFilePath gibt den Speicherort eines RSA-Schlüssels an, der zum Authentifizieren des Benutzers auf dem Remotecomputer verwendet wird.
Beispiel 8: Starten einer interaktiven Sitzung mithilfe von SSH-Optionen
$options = @{
Port=22
User = 'UserA'
Host = 'LinuxServer02'
}
Enter-PSSession -KeyFilePath c:\sshkeys\userAKey_rsa -Options $options
In diesem Beispiel wird gezeigt, wie Sie eine interaktive Sitzung mit SSH starten. Der parameter Options akzeptiert eine Hashtabelle mit Werten, die als Optionen an den zugrunde liegenden ssh
Befehl übergeben werden, der die Verbindung mit dem Remotesystem hergestellt hat.
Parameter
-AllowRedirection
Ermöglicht die Umleitung dieser Verbindung zu einem alternativen URI (Uniform Resource Identifier). Die Umleitung ist standardmäßig nicht zulässig.
Wenn Sie den parameter ConnectionURI verwenden, kann das Remoteziel eine Anweisung zurückgeben, um zu einem anderen URI umzuleiten. Standardmäßig leitet PowerShell keine Verbindungen um, Sie können diesen Parameter jedoch verwenden, um die Verbindung umzuleiten.
Sie können auch einschränken, wie oft die Verbindung umgeleitet wird, indem Sie den MaximumConnectionRedirectionCount Sitzungsoptionswert ändern. Verwenden Sie den MaximumRedirection Parameter des Cmdlets New-PSSessionOption
, oder legen Sie die MaximumConnectionRedirectionCount- eigenschaft der $PSSessionOption
Einstellungsvariable fest. Der Standardwert ist 5.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ApplicationName
Gibt das Anwendungsnamensegment des Verbindungs-URI an. Verwenden Sie diesen Parameter, um den Anwendungsnamen anzugeben, wenn Sie den parameter ConnectionURI im Befehl nicht verwenden.
Der Standardwert ist der Wert der $PSSessionApplicationName
Einstellungsvariable auf dem lokalen Computer. Wenn diese Einstellungsvariable nicht definiert ist, ist der Standardwert WSMAN. Dieser Wert ist für die meisten Verwendungen geeignet. Weitere Informationen finden Sie unter about_Preference_Variables.
Der WinRM--Dienst verwendet den Anwendungsnamen, um einen Listener auszuwählen, der die Verbindungsanforderung bedient. Der Wert dieses Parameters sollte mit dem Wert der URLPrefix Eigenschaft eines Listeners auf dem Remotecomputer übereinstimmen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Authentication
Gibt den Mechanismus an, der zum Authentifizieren der Anmeldeinformationen des Benutzers verwendet wird. Die zulässigen Werte für diesen Parameter sind:
- Vorgabe
- Grundlegend
- Credssp
- Verdauen
- Kerberos
- Verhandeln
- NegotiateWithImplicitCredential
Der Standardwert ist "Default".
CredSSP-Authentifizierung ist nur in Windows Vista, Windows Server 2008 und höheren Versionen des Windows-Betriebssystems verfügbar.
Weitere Informationen zu den Werten dieses Parameters finden Sie unter AuthenticationMechanism Enum.
Vorsicht
Credential Security Support Provider (CredSSP)-Authentifizierung, bei der die Anmeldeinformationen des Benutzers 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.
Typ: | AuthenticationMechanism |
Zulässige Werte: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-CertificateThumbprint
Gibt das Zertifikat für den digitalen öffentlichen 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 in der zertifikatbasierten Clientauthentifizierung verwendet. Sie können nur lokalen Benutzerkonten zugeordnet werden; sie funktionieren nicht mit Domänenkonten.
Um ein Zertifikat abzurufen, verwenden Sie den Befehl Get-Item
oder Get-ChildItem
im PowerShell-Zertifikat: Laufwerk.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt einen Computernamen an. Dieses Cmdlet 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, die IP-Adresse oder den vollqualifizierten Domänennamen des Computers ein. Sie können auch einen Computernamen an Enter-PSSession
senden.
Um eine IP-Adresse im Wert des ComputerName Parameters zu verwenden, muss der Befehl den parameter Credential enthalten. Außerdem muss der Computer für den HTTPS-Transport oder die IP-Adresse des Remotecomputers in der WinRM TrustedHosts-Liste auf dem lokalen Computer enthalten sein. Anweisungen zum Hinzufügen eines Computernamens zur Liste "TrustedHosts" finden Sie unter "How to Add a Computer to the Trusted Host List" in about_Remote_Troubleshooting.
Anmerkung
Um den lokalen Computer im Windows-Betriebssystem in den Wert des ComputerName-Parameters einzuschließen, müssen Sie PowerShell mit der Option "Als Administrator ausführen" starten.
Typ: | String |
Aliase: | Cn |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ConfigurationName
Gibt die Sitzungskonfiguration an, die für die interaktive Sitzung verwendet wird.
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: http://schemas.microsoft.com/powershell
.
Bei Verwendung mit SSH gibt dies das Subsystem an, das für das Ziel gemäß der Definition in sshd_config verwendet werden soll. Der Standardwert für SSH ist das powershell
Subsystem.
Die Sitzungskonfiguration für eine Sitzung befindet sich auf dem Remotecomputer. Wenn die angegebene Sitzungskonfiguration auf dem Remotecomputer nicht vorhanden ist, schlägt der Befehl fehl.
Der Standardwert ist der Wert der $PSSessionConfigurationName
Einstellungsvariable auf dem lokalen Computer. Wenn diese Einstellungsvariable nicht festgelegt ist, ist die Standardeinstellung "Microsoft.PowerShell". Weitere Informationen finden Sie unter about_Preference_Variables.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ConnectingTimeout
Gibt die Zeitspanne in Millisekunden an, die für die anfängliche SSH-Verbindung zulässig ist. Wenn die Verbindung nicht innerhalb des angegebenen Zeitraums abgeschlossen wird, wird ein Fehler zurückgegeben.
Dieser Parameter wurde in PowerShell 7.2 eingeführt.
Typ: | Int32 |
Position: | Named |
Standardwert: | unlimited |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ConnectionUri
Gibt einen URI an, der den Verbindungsendpunkt für die Sitzung definiert. Der URI muss vollqualifizierter sein. Das Format dieser Zeichenfolge lautet wie folgt:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Der Standardwert lautet wie folgt:
http://localhost:5985/WSMAN
Wenn Sie keinen ConnectionURI-angeben, können Sie die Parameter UseSSL, ComputerName, Portund ApplicationName Parameter verwenden, um die ConnectionURI- Werte anzugeben.
Gültige Werte für das Transportsegment des URI sind HTTP und HTTPS. Wenn Sie einen Verbindungs-URI mit einem Transportsegment angeben, aber keinen Port angeben, wird die Sitzung mithilfe von Standardsports erstellt: 80 für HTTP und 443 für HTTPS. Um die Standardports für PowerShell-Remoting zu verwenden, geben Sie Port 5985 für HTTP oder 5986 für HTTPS an.
Wenn der Zielcomputer die Verbindung zu einem anderen URI umleitet, verhindert PowerShell die Umleitung, es sei denn, Sie verwenden den AllowRedirection Parameter im Befehl.
Typ: | Uri |
Aliase: | URI, CU |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ContainerId
Gibt die ID eines Containers an.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Credential
Gibt ein Benutzerkonto an, das über die Berechtigung zum Ausführen dieser Aktion verfügt. Die Standardeinstellung ist der aktuelle Benutzer.
Geben Sie einen Benutzernamen ein, z. B. User01 oder Domain01\User01, oder geben Sie ein PSCredential-Objekt ein, das vom cmdlet Get-Credential
generiert wird. Wenn Sie einen Benutzernamen eingeben, werden Sie aufgefordert, das Kennwort einzugeben.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString-gespeichert.
Anmerkung
Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.
Typ: | PSCredential |
Position: | 1 |
Standardwert: | Current user |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-EnableNetworkAccess
Gibt an, dass mit diesem Cmdlet ein interaktives Sicherheitstoken zu Loopbacksitzungen hinzugefügt wird. Mit dem interaktiven Token können Sie Befehle in der Loopbacksitzung ausführen, die Daten von anderen Computern abrufen. Sie können beispielsweise einen Befehl in der Sitzung ausführen, der XML-Dateien von einem Remotecomputer auf den lokalen Computer kopiert.
Eine Loopbacksitzung ist eine PSSession-, die auf demselben Computer stammt und endet. Um eine Loopbacksitzung zu erstellen, lassen Sie den ComputerName Parameter aus, oder legen Sie dessen Wert auf . (punkt), localhost oder der Name des lokalen Computers.
Standardmäßig werden Loopbacksitzungen mithilfe eines Netzwerktokens erstellt, das möglicherweise nicht über ausreichende Berechtigungen für die Authentifizierung bei Remotecomputern verfügt.
Der EnableNetworkAccess Parameter ist nur in Loopbacksitzungen wirksam. Wenn Sie EnableNetworkAccess verwenden, wenn Sie eine Sitzung auf einem Remotecomputer erstellen, wird der Befehl erfolgreich ausgeführt, der Parameter wird jedoch ignoriert.
Sie können den Remotezugriff auch in einer Loopbacksitzung zulassen, indem Sie den CredSSP- Wert des Authentication-Parameters verwenden, der die Sitzungsanmeldeinformationen an andere Computer delegiert.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-HostName
Gibt einen Computernamen für eine ssh-basierte Verbindung (Secure Shell) an. Dies ähnelt dem parameter ComputerName, mit der Ausnahme, dass die Verbindung mit dem Remotecomputer über SSH und nicht über Windows WinRM hergestellt wird. Dieser Parameter unterstützt die Angabe des Benutzernamens und/oder ports als Teil des Hostnamen-Parameterwerts mithilfe des Formulars user@hostname:port
. Der im Rahmen des Hostnamens angegebene Benutzername und/oder Port hat Vorrang vor den parametern -UserName
und -Port
, sofern angegeben. Dadurch können mehrere Computernamen an diesen Parameter übergeben werden, bei denen einige bestimmte Benutzernamen und/oder Ports haben, während andere den Benutzernamen und/oder den Port aus den parametern -UserName
und -Port
verwenden.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Id
Gibt die ID einer vorhandenen Sitzung an.
Enter-PSSession
verwendet die angegebene Sitzung für die interaktive Sitzung.
Verwenden Sie das Cmdlet Get-PSSession
, um die ID einer Sitzung zu finden.
Typ: | Int32 |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-InstanceId
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. Verwenden Sie das Cmdlet Get-PSSession
, um die Instanz-ID einer Sitzung zu finden. Sie können auch die parameter Session, Nameoder ID Parameter verwenden, um eine vorhandene Sitzung anzugeben. Sie können auch den parameter ComputerName verwenden, um eine temporäre Sitzung zu starten.
Typ: | Guid |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-KeyFilePath
Gibt einen Schlüsseldateipfad an, der von Secure Shell (SSH) zum Authentifizieren eines Benutzers auf einem Remotecomputer verwendet wird.
SSH ermöglicht es, die Benutzerauthentifizierung über private/öffentliche Schlüssel als Alternative zur grundlegenden Kennwortauthentifizierung durchzuführen. Wenn der Remotecomputer für die Schlüsselauthentifizierung konfiguriert ist, kann dieser Parameter verwendet werden, um den Schlüssel bereitzustellen, der den Benutzer identifiziert.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | String |
Aliase: | IdentityFilePath |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt den Anzeigenamen einer vorhandenen Sitzung an.
Enter-PSSession
verwendet die angegebene Sitzung für die interaktive Sitzung.
Wenn der von Ihnen angegebene Name mehreren Sitzungen entspricht, schlägt der Befehl fehl. Sie können auch die Parameter Session, InstanceIDoder ID Parameter verwenden, um eine vorhandene Sitzung anzugeben. Sie können auch den parameter ComputerName verwenden, um eine temporäre Sitzung zu starten.
Verwenden Sie zum Einrichten eines Anzeigenamens für eine Sitzung den parameter Name des Cmdlets New-PSSession
.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Options
Gibt eine Hashtable von SSH-Optionen an, die beim Herstellen einer Verbindung mit einer Remote-SSH-basierten Sitzung verwendet werden. Mögliche Optionen sind alle Werte, die von der Unix-basierten Version des befehls ssh unterstützt werden.
Alle von Parametern explizit übergebenen Werte haben Vorrang vor Werten, die in der Options Hashtable übergeben werden. Wenn Sie beispielsweise den parameter Port verwenden, werden alle Port
Schlüsselwertpaare außer Kraft gesetzt, die in der Options Hashtable übergeben werden.
Typ: | Hashtable |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Port
Gibt den Netzwerkport auf dem Remotecomputer an, der für diesen Befehl verwendet wird.
In PowerShell 6.0 wurde dieser Parameter in den parametersatz HostName enthalten, der Secure Shell(SSH)-Verbindungen unterstützt.
WinRM (ComputerName-Parametersatz)
Um eine Verbindung mit einem Remotecomputer herzustellen, muss der Remotecomputer auf dem von der Verbindung genutzten Port lauschen. 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. Verwenden Sie die folgenden Befehle, um den Listener zu konfigurieren:
winrm delete winrm/config/listener?Address=*+Transport=HTTP
winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port="\<port-number\>"}
Verwenden Sie nicht den Parameter Port, es sei denn, Sie müssen. Die Porteinstellung im Befehl 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.
SSH (HostName-Parametersatz)
Um eine Verbindung mit einem Remotecomputer herzustellen, muss der Remotecomputer mit dem SSH-Dienst (SSHD) konfiguriert sein und auf dem von der Verbindung genutzten Port lauschen. Der Standardport für SSH ist 22.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-RunAsAdministrator
Gibt an, dass die PSSession- als Administrator ausgeführt wird.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Session
Gibt eine PowerShell-Sitzung (PSSession) an, die für die interaktive Sitzung verwendet werden soll. Dieser Parameter verwendet ein Sitzungsobjekt. Sie können auch die Parameter Name, InstanceIDoder ID Parameter verwenden, um eine PSSession-anzugeben.
Geben Sie eine Variable ein, die ein Sitzungsobjekt oder einen Befehl enthält, der ein Sitzungsobjekt erstellt oder abruft, z. B. ein New-PSSession
- oder Get-PSSession
-Befehl. Sie können auch ein Sitzungsobjekt an Enter-PSSession
übergeben. Sie können nur einen PSSession- mithilfe dieses Parameters übermitteln. Wenn Sie eine Variable eingeben, die mehrere PSSession-enthält, schlägt der Befehl fehl.
Wenn Sie Exit-PSSession
oder das schlüsselwort EXIT verwenden, endet die interaktive Sitzung, aber die PSSession-, die Sie erstellt haben, bleibt offen und für die Verwendung verfügbar.
Typ: | PSSession |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-SessionOption
Legt erweiterte Optionen für die Sitzung fest. 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, einschließlich der Standardwerte, finden Sie unter New-PSSessionOption
.
Informationen zur $PSSessionOption
Einstellungsvariablen finden Sie unter about_Preference_Variables. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.
Typ: | PSSessionOption |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SSHTransport
Gibt an, dass die Remoteverbindung mit Secure Shell (SSH) hergestellt wird.
Standardmäßig verwendet PowerShell Windows WinRM, um eine Verbindung mit einem Remotecomputer herzustellen. Dieser Switch erzwingt PowerShell, den HostName-Parameter für die Einrichtung einer SSH-basierten Remoteverbindung zu verwenden.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | SwitchParameter |
Zulässige Werte: | true |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Subsystem
Gibt das SSH-Subsystem an, das für das neue PSSession-verwendet wird.
Dies gibt das Subsystem an, das für das Ziel verwendet werden soll, wie in sshd_config definiert. Das Subsystem startet eine bestimmte Version von PowerShell mit vordefinierten Parametern. Wenn das angegebene Subsystem auf dem Remotecomputer nicht vorhanden ist, schlägt der Befehl fehl.
Wenn dieser Parameter nicht verwendet wird, ist der Standardwert das powershell
Subsystem.
Typ: | String |
Position: | Named |
Standardwert: | Powershell |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-UserName
Gibt den Benutzernamen für das Konto an, das zum Erstellen einer Sitzung auf dem Remotecomputer verwendet wird. Die Benutzerauthentifizierungsmethode hängt davon ab, wie Secure Shell (SSH) auf dem Remotecomputer konfiguriert ist.
Wenn SSH für die grundlegende Kennwortauthentifizierung konfiguriert ist, werden Sie zur Eingabe des Benutzerkennworts aufgefordert.
Wenn SSH für die schlüsselbasierte Benutzerauthentifizierung konfiguriert ist, werden Uou nicht zur Eingabe eines Kennworts aufgefordert. Sie müssen einen Pfad zu einer SSH-Schlüsseldatei angeben. Wenn sich die Benutzerschlüsseldatei an einem bekannten SSH-Speicherort befindet, ist der KeyFilePath Parameter nicht erforderlich. Die Benutzerauthentifizierung erfolgt automatisch basierend auf dem Benutzernamen. Weitere Informationen finden Sie in der SSH-Dokumentation zur schlüsselbasierten Benutzerauthentifizierung.
Wenn der parameter UserName nicht angegeben ist, wird der aktuell angemeldete Benutzername verwendet.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UseSSL
Gibt an, dass dieses Cmdlet das SSL-Protokoll (Secure Sockets Layer) verwendet, um eine Verbindung mit dem Remotecomputer herzustellen. Standardmäßig wird SSL nicht verwendet.
WS-Management verschlüsselt alle über das Netzwerk übertragenen PowerShell-Inhalte. Der UseSSL--Parameter ist ein zusätzlicher Schutz, der die Daten über eine HTTPS-Verbindung anstatt ü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.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-VMId
Gibt die ID eines virtuellen Computers an.
Typ: | Guid |
Aliase: | VMGuid |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-VMName
Gibt den Namen eines virtuellen Computers an.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können einen Computernamen als Zeichenfolge an dieses Cmdlet weiterleiten.
Sie können ein Sitzungsobjekt an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
PowerShell enthält die folgenden Aliase für Enter-PSSession
:
- Alle Plattformen:
etsn
Um eine Verbindung mit einem Remotecomputer herzustellen, müssen Sie Mitglied der Gruppe "Administratoren" auf dem Remotecomputer sein. Um eine interaktive Sitzung auf dem lokalen Computer zu starten, müssen Sie PowerShell mit der Option Als Administrator ausführen starten.
Wenn Sie Enter-PSSession
verwenden, wird Ihr Benutzerprofil auf dem Remotecomputer für die interaktive Sitzung verwendet. Die Befehle im Remotebenutzerprofil, einschließlich Befehle zum Hinzufügen von PowerShell-Modulen und zum Ändern der Eingabeaufforderung, führen Sie aus, bevor die Remoteaufforderung angezeigt wird.
Enter-PSSession
verwendet die Benutzeroberflächenkultureinstellung auf dem lokalen Computer für die interaktive Sitzung. Um die lokale Benutzeroberflächenkultur zu finden, verwenden Sie die $UICulture
automatische Variable.
Enter-PSSession
erfordert die Cmdlets Get-Command
, Out-Default
und Exit-PSSession
. Wenn diese Cmdlets nicht in der Sitzungskonfiguration auf dem Remotecomputer enthalten sind, schlägt die Enter-PSSession
Befehle fehl.
Im Gegensatz zu Invoke-Command
, das die Befehle analysiert und interpretiert, bevor sie an den Remotecomputer gesendet werden, sendet Enter-PSSession
die Befehle ohne Interpretation direkt an den Remotecomputer.
Wenn die sitzung, die Sie eingeben möchten, mit der Verarbeitung eines Befehls beschäftigt ist, liegt möglicherweise eine Verzögerung vor, bevor PowerShell auf den Enter-PSSession
-Befehl reagiert. Sie sind verbunden, sobald die Sitzung verfügbar ist. Um den Befehl Enter-PSSession
abzubrechen, drücken Sie STRG+C.
Der HostName Parametersatz wurde ab PowerShell 6.0 eingeschlossen. Es wurde hinzugefügt, um PowerShell-Remoting basierend auf Secure Shell (SSH) bereitzustellen. Sowohl SSH als auch PowerShell werden auf mehreren Plattformen (Windows, Linux, macOS) und PowerShell-Remoting auf diesen Plattformen unterstützt, auf denen PowerShell und SSH installiert und konfiguriert sind. Dies unterscheidet sich von der vorherigen Windows-Nur-Remoting, die auf WinRM basiert, und viele der WinRM-spezifischen Features und Einschränkungen gelten nicht. WinRM-basierte Kontingente, Sitzungsoptionen, benutzerdefinierte Endpunktkonfiguration und Features zum Trennen/Erneutes Verbinden werden derzeit nicht unterstützt. Weitere Informationen zum Einrichten von PowerShell SSH-Remoting finden Sie unter PowerShell Remoting Over SSH.
Vor PowerShell 7.1 unterstützt Remoting über SSH keine Remotesitzungen für den zweiten Hop. Diese Funktion war auf Sitzungen mit WinRM beschränkt. PowerShell 7.1 ermöglicht es Enter-PSSession
und Enter-PSHostProcess
, innerhalb einer beliebigen interaktiven Remotesitzung zu arbeiten.
Die ssh
ausführbare Datei ruft Konfigurationsdaten aus den folgenden Quellen in der folgenden Reihenfolge ab:
- Befehlszeilenoptionen
- Konfigurationsdatei des Benutzers (~/.ssh/config)
- systemweite Konfigurationsdatei (/etc/ssh/ssh_config)
Die folgenden Cmdlet-Parameter werden ssh
Parametern und Optionen zugeordnet:
Cmdlet-Parameter | ssh-Parameter | entspreche ssh--o-Option |
---|---|---|
-KeyFilePath |
-i <KeyFilePath> |
-o IdentityFile=<KeyFilePath> |
-UserName |
-l <UserName> |
-o User=<UserName> |
-Port |
-p <Port> |
-o Port=<Port> |
-ComputerName -Subsystem |
-s <ComputerName> <Subsystem> |
-o Host=<ComputerName> |
Alle von Parametern explizit übergebenen Werte haben Vorrang vor Werten, die in der Options Hashtable übergeben werden. Weitere Informationen zu ssh_config
Dateien finden Sie unter ssh_config(5).