Connect-WSMan
Stellt eine Verbindung mit dem WinRM-Dienst auf einem Remotecomputer her.
Syntax
Connect-WSMan
[-ApplicationName <String>]
[[-ComputerName] <String>]
[-OptionSet <Hashtable>]
[-Port <Int32>]
[-SessionOption <SessionOption>]
[-UseSSL]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Connect-WSMan
[-ConnectionURI <Uri>]
[-OptionSet <Hashtable>]
[-Port <Int32>]
[-SessionOption <SessionOption>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[<CommonParameters>]
Beschreibung
Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.
Das cmdlet Connect-WSMan
stellt eine Verbindung mit dem WinRM-Dienst auf einem Remotecomputer her und stellt eine dauerhafte Verbindung mit dem Remotecomputer her. Sie können dieses Cmdlet im Kontext des WSMan-Anbieters verwenden, um eine Verbindung mit dem WinRM-Dienst auf einem Remotecomputer herzustellen. Sie können dieses Cmdlet jedoch auch verwenden, um eine Verbindung mit dem WinRM-Dienst auf einem Remotecomputer herzustellen, bevor Sie zum WSMan-Anbieter wechseln. Der Remotecomputer wird im Stammverzeichnis des WSMan-Anbieters angezeigt.
Explizite Anmeldeinformationen sind erforderlich, wenn sich die Clientcomputer in verschiedenen Domänen oder Arbeitsgruppen befinden.
Informationen zum Trennen des WinRM-Diensts auf einem Remotecomputer finden Sie im Cmdlet Disconnect-WSMan
.
Beispiele
Beispiel 1: Herstellen einer Verbindung mit einem Remotecomputer
PS C:\> Connect-WSMan -ComputerName "server01"
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir
WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName Type
------------ ----
localhost Container
server01 Container
Dieser Befehl erstellt eine Verbindung mit dem Remoteserver01-Computer.
Das cmdlet Connect-WSMan
wird in der Regel im Kontext des WSMan-Anbieters verwendet, um eine Verbindung mit einem Remotecomputer herzustellen, in diesem Fall der Server01-Computer. Sie können jedoch das Cmdlet verwenden, um Verbindungen mit Remotecomputern herzustellen, bevor Sie zum WSMan-Anbieter wechseln. Diese Verbindungen werden in der Liste ComputerName angezeigt.
Beispiel 2: Herstellen einer Verbindung mit einem Remotecomputer mithilfe von Administratoranmeldeinformationen
PS C:\> $cred = Get-Credential Administrator
PS C:\> Connect-WSMan -ComputerName "server01" -Credential $cred
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir
WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName Type
------------ ----
localhost Container
server01 Container
Mit diesem Befehl wird eine Verbindung mit dem Remotesystemserver01 mithilfe der Administratorkontoanmeldeinformationen erstellt.
Der erste Befehl verwendet das Cmdlet Get-Credential, um die Administratoranmeldeinformationen abzurufen, und speichert sie dann in der variablen $cred
.
Get-Credential
fordert Sie je nach Systemregistrierungseinstellungen über ein Dialogfeld oder an der Befehlszeile zur Eingabe eines Kennworts mit Benutzername und Kennwort auf.
Der zweite Befehl verwendet den Parameter Credential, um die in $cred gespeicherten Anmeldeinformationen an Connect-WSMan
zu übergeben.
Connect-WSMan
dann mithilfe der Administratoranmeldeinformationen eine Verbindung mit dem Remotesystemserver01 herstellen.
Beispiel 3: Herstellen einer Verbindung mit einem Remotecomputer über einen angegebenen Port
PS C:\> Connect-WSMan -ComputerName "server01" -Port 80
PS C:\> cd wsman:
PS WSMan:\>
PS WSMan:\> dir
WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName Type
------------ ----
localhost Container
server01 Container
Dieser Befehl erstellt eine Verbindung mit dem Remoteserver01-Computer über Port 80.
Beispiel 4: Herstellen einer Verbindung mit einem Remotecomputer mithilfe von Verbindungsoptionen
PS C:\> $a = New-WSManSessionOption -OperationTimeout 30000
PS C:\> Connect-WSMan -ComputerName "server01" -SessionOption $a
PS C:\> cd wsman:
PS WSMan:\> dir
WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan
ComputerName Type
------------ ----
localhost Container
server01 Container
In diesem Beispiel wird eine Verbindung mit dem Remoteserver01-Computer mithilfe der Im New-WSManSessionOption
-Befehl definierten Verbindungsoptionen erstellt.
Der erste Befehl verwendet New-WSManSessionOption
, um eine Reihe von Verbindungseinstellungsoptionen in der variablen $a
zu speichern. In diesem Fall legen die Sitzungsoptionen eine Verbindungszeit von 30 Sekunden (30.000 Millisekunden) fest.
Der zweite Befehl verwendet den parameter SessionOption, um die Anmeldeinformationen zu übergeben, die in der variablen $a
an Connect-WSMan
gespeichert sind. Anschließend stellt Connect-WSMan
mithilfe der angegebenen Sitzungsoptionen eine Verbindung mit dem Remoteserver01-Computer herstellt.
Parameter
-ApplicationName
Gibt den Anwendungsnamen in der Verbindung an. Der Standardwert des ApplicationName-Parameters ist WSMAN. Der vollständige Bezeichner für den Remoteendpunkt weist das folgende Format auf:
<Transport>://<Server>:<Port>/<ApplicationName>
Beispiel: http://server01:8080/WSMAN
Internetinformationsdienste (Internet Information Services, IIS), die die Sitzung hostet, leitet Anforderungen mit diesem Endpunkt an die angegebene Anwendung weiter. Diese Standardeinstellung von WSMAN ist für die meisten Anwendungen geeignet. Dieser Parameter soll verwendet werden, wenn viele Computer Remoteverbindungen mit einem Computer herstellen, auf dem Windows PowerShell ausgeführt wird. In diesem Fall hosten IIS Webdienste für die Verwaltung (WS-Management) zur Effizienz.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Authentication
Gibt den Authentifizierungsmechanismus an, der auf dem Server verwendet werden soll. Die zulässigen Werte für diesen Parameter sind:
-
Basic
– Einfach ist ein Schema, in dem der Benutzername und das Kennwort als Klartext an den Server oder Proxy gesendet werden. -
Default
– Verwenden Sie die vom WS-Management Protokoll implementierte Authentifizierungsmethode. Dies ist die Standardeinstellung. -
Digest
– Digest ist ein Abfrageantwortschema, das eine serverspezifische Datenzeichenfolge für die Abfrage verwendet. -
Kerberos
– Der Clientcomputer und der Server authentifizieren sich gegenseitig mithilfe von Kerberos-Zertifikaten. -
Negotiate
– Negotiate ist ein Abfrageantwortschema, das mit dem Server oder Proxy aushandelt, um das schema zu bestimmen, das für die Authentifizierung verwendet werden soll. Mit diesem Parameterwert kann beispielsweise ermittelt werden, ob das Kerberos-Protokoll oder NTLM verwendet wird. -
CredSSP
– Verwenden Sie die Authentifizierung des Credential Security Support Provider (CredSSP), mit der die Anmeldeinformationen des Benutzers delegiert werden können. Diese Option wurde für Befehle entwickelt, die auf einem Remotecomputer ausgeführt werden, aber Daten von anderen Remotecomputern sammeln oder zusätzliche Befehle ausführen.
Vorsicht
CredSSP delegiert die Benutzeranmeldeinformationen vom lokalen Computer an einen Remotecomputer. Diese Vorgehensweise erhöht das Sicherheitsrisiko des Remotevorgangs. Wenn der Remotecomputer kompromittiert wird, können die Anmeldeinformationen verwendet werden, um die Netzwerksitzung zu steuern.
Typ: | AuthenticationMechanism |
Aliase: | auth, am |
Zulässige Werte: | None, Default, Digest, Negotiate, Basic, Kerberos, ClientCertificate, Credssp |
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.
Verwenden Sie zum Abrufen eines Zertifikatfingerabdrucks den Befehl Get-Item
oder Get-ChildItem
im Windows PowerShell-Zertifikat: Laufwerk.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ComputerName
Gibt den Computer an, auf dem der Verwaltungsvorgang ausgeführt werden soll. Der Wert kann ein vollqualifizierter Domänenname, ein NetBIOS-Name oder eine IP-Adresse sein. Verwenden Sie den lokalen Computernamen, verwenden Sie "localhost", oder verwenden Sie einen Punkt (.
), um den lokalen Computer anzugeben. Der lokale Computer ist der Standardwert. Wenn sich der Remotecomputer in einer anderen Domäne des Benutzers befindet, müssen Sie einen vollqualifizierten Domänennamen verwenden. Sie können einen Wert für diesen Parameter an das Cmdlet weiterleiten.
Typ: | String |
Aliase: | cn |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ConnectionURI
Gibt den Verbindungsendpunkt an. Das Format dieser Zeichenfolge lautet wie folgt:
<Transport>://<Server>:<Port>/<ApplicationName>
Die folgende Zeichenfolge ist ein richtig formatierter Wert für diesen Parameter:
http://Server01:8080/WSMAN
Der URI muss vollqualifizierter sein.
Typ: | Uri |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
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
, Domain01\User01
oder User@Domain.com
. Oder geben Sie ein PSCredential--Objekt ein, z. B. ein objekt, das vom Cmdlet Get-Credential
zurückgegeben wird. Wenn Sie einen Benutzernamen eingeben, werden Sie von diesem Cmdlet aufgefordert, ein Kennwort einzugeben.
Typ: | PSCredential |
Aliase: | cred, c |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-OptionSet
Gibt eine Reihe von Schaltern zu einem Dienst an, um die Art der Anforderung zu ändern oder zu verfeinern. Diese ähneln Schaltern, die in Befehlszeilenshells verwendet werden, da sie dienstspezifisch sind. Es können beliebig viele Optionen angegeben werden.
Im folgenden Beispiel wird die Syntax veranschaulicht, die die Werte 1, 2 und 3 für die Parameter a, b und c übergibt:
-OptionSet @{a=1;b=2;c=3}
Typ: | Hashtable |
Aliase: | os |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Port
Gibt den Port an, der verwendet werden soll, wenn der Client eine Verbindung mit dem WinRM-Dienst herstellt. Wenn der Transport HTTP ist, lautet der Standardport 80. Wenn der Transport HTTPS ist, lautet der Standardport 443.
Wenn Sie HTTPS als Transport verwenden, muss der Wert des ComputerName Parameter mit dem gemeinsamen Zertifikatnamen (CN) des Servers übereinstimmen. Wenn der SkipCNCheck Parameter jedoch als Teil des SessionOption--Parameters angegeben wird, muss der allgemeine Zertifikatname des Servers nicht mit dem Hostnamen des Servers übereinstimmen. Der parameter SkipCNCheck sollte nur für vertrauenswürdige Computer verwendet werden.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-SessionOption
Gibt erweiterte Optionen für die WS-Management Sitzung an. Geben Sie ein SessionOption-objekt ein, das Sie mithilfe des cmdlets New-WSManSessionOption
erstellen. Wenn Sie weitere Informationen zu den verfügbaren Optionen erhalten möchten, geben Sie Get-Help New-WSManSessionOption
ein.
Typ: | SessionOption |
Aliase: | so |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UseSSL
Gibt an, dass das SSL-Protokoll (Secure Sockets Layer) verwendet wird, um eine Verbindung mit dem Remotecomputer herzustellen. Standardmäßig wird SSL nicht verwendet.
WS-Management verschlüsselt alle Windows PowerShell-Inhalte, die über das Netzwerk übertragen werden. Mit dem UseSSL--Parameter können Sie den zusätzlichen Schutz von HTTPS anstelle von HTTP angeben. Wenn SSL nicht für den Port verfügbar ist, der für die Verbindung verwendet wird, und Sie diesen Parameter angeben, schlägt der Befehl fehl.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
None
Dieses Cmdlet gibt keine Ausgabe zurück.
Hinweise
Sie können Verwaltungsbefehle oder Abfrageverwaltungsdaten auf einem Remotecomputer ausführen, ohne eine WS-Management Sitzung zu erstellen. Dazu können Sie die Parameter ComputerNameInvoke-WSManAction
und Get-WSManInstance
verwenden. Wenn Sie den Parameter ComputerName verwenden, erstellt Windows PowerShell eine temporäre Verbindung, die für den einzelnen Befehl verwendet wird. Nachdem der Befehl ausgeführt wurde, wird die Verbindung geschlossen.