Wenn Sie remote arbeiten, geben Sie Befehle in PowerShell auf einem Computer (als "lokaler Computer" bezeichnet) ein, aber die Befehle werden auf einem anderen Computer (als "Remotecomputer" bezeichnet) ausgeführt. Die Remotearbeitserfahrung sollte so ähnlich sein wie die direkte Arbeit am Remotecomputer.
Hinweis
Um PowerShell-Remoting zu verwenden, muss der Remotecomputer für Remoting konfiguriert sein. Weitere Informationen finden Sie unter about_Remote_Requirements.
Muss auf beiden Computern PowerShell installiert sein?
Ja. Um remote zu arbeiten, müssen die lokalen und Remotecomputer Über PowerShell, Microsoft .NET Framework und das Webdienste für die Verwaltung (WS-Management) Protokoll verfügen. Alle Dateien und andere Ressourcen, die zum Ausführen eines bestimmten Befehls erforderlich sind, müssen sich auf dem Remotecomputer befinden.
Computer mit Windows PowerShell 3.0 und Computern, auf denen Windows PowerShell 2.0 ausgeführt wird, können remote eine Verbindung herstellen und Remotebefehle ausführen. Einige Features, z. B. die Möglichkeit, die Verbindung mit einer Sitzung zu trennen und die Verbindung erneut herzustellen, funktionieren jedoch nur, wenn beide Computer Windows PowerShell 3.0 ausführen.
Sie müssen über die Berechtigung zum Herstellen einer Verbindung mit dem Remotecomputer, zur Ausführung von PowerShell und zur Berechtigung für den Zugriff auf Datenspeicher (z. B. Dateien und Ordner) und die Registrierung auf dem Remotecomputer verfügen.
Weitere Informationen finden Sie unter about_Remote_Requirements.
Wie funktioniert Remoting?
Wenn Sie einen Remotebefehl übermitteln, wird der Befehl über das Netzwerk an das PowerShell-Modul auf dem Remotecomputer übertragen und im PowerShell-Client auf dem Remotecomputer ausgeführt. Die Befehlsergebnisse werden an den lokalen Computer zurückgesendet und in der PowerShell-Sitzung auf dem lokalen Computer angezeigt.
Um die Befehle zu übertragen und die Ausgabe zu empfangen, verwendet PowerShell das WS-Management-Protokoll. Informationen zum WS-Management-Protokoll finden Sie in der Windows-Dokumentation unter WS-Management Protocol.
Ab Windows PowerShell 3.0 werden Remotesitzungen auf dem Remotecomputer gespeichert. Auf diese Weise können Sie die Verbindung mit der Sitzung trennen und die Verbindung mit einer anderen Sitzung oder einem anderen Computer erneut herstellen, ohne die Befehle zu unterbrechen oder den Zustand zu verlieren.
Ist PowerShell-Remoting sicher?
Wenn Sie eine Verbindung mit einem Remotecomputer herstellen, verwendet das System die Anmeldeinformationen für Benutzername und Kennwort auf dem lokalen Computer oder die Anmeldeinformationen, die Sie im Befehl angeben, um Sie beim Remotecomputer anzumelden. Die Anmeldeinformationen und der Rest der Übertragung werden verschlüsselt.
Um zusätzlichen Schutz hinzuzufügen, können Sie den Remotecomputer so konfigurieren, dass secure Sockets Layer (SSL) anstelle von HTTP verwendet wird, um Windows Remote Management (WinRM)-Anforderungen zu überwachen.
Anschließend können Benutzer den parameter UseSSL des Invoke-Command
, New-PSSession
und Enter-PSSession
Cmdlets verwenden, wenn eine Verbindung hergestellt wird. Diese Option verwendet den sichereren HTTPS-Kanal anstelle von HTTP.
Benötigen alle Remotebefehle PowerShell-Remoting?
Nein. Einige Cmdlets verfügen über einen ComputerName Parameter, mit dem Sie Objekte vom Remotecomputer abrufen können.
Diese Cmdlets verwenden keine PowerShell-Remoting. Sie können sie also auf jedem Computer verwenden, auf dem PowerShell ausgeführt wird, auch wenn der Computer nicht für PowerShell-Remoting konfiguriert ist oder der Computer die Anforderungen für PowerShell-Remoting nicht erfüllt.
Zu den folgenden Cmdlets gehören:
Get-HotFix
Rename-Computer
Restart-Computer
Stop-Computer
Um alle Cmdlets mit einem ComputerName-Parameter zu finden, geben Sie Folgendes ein:
Get-Help * -Parameter ComputerName
# or
Get-Command -ParameterName ComputerName
Informationen dazu, ob der ComputerName Parameter eines bestimmten Cmdlets PowerShell-Remoting erfordert, finden Sie in der Parameterbeschreibung. Geben Sie Folgendes ein, um die Parameterbeschreibung anzuzeigen:
Get-Help <cmdlet-name> -Parameter ComputerName
Beispiel:
Get-Help Get-HotFix -Parameter ComputerName
Verwenden Sie für alle anderen Befehle das Cmdlet Invoke-Command
.
Wie kann ich einen Befehl auf einem Remotecomputer ausführen?
Verwenden Sie das Cmdlet Invoke-Command
, um einen Befehl auf einem Remotecomputer auszuführen.
Schließen Sie Ihren Befehl in geschweifte Klammern ({}
) ein, um ihn zu einem Skriptblock zu machen. Verwenden Sie den ScriptBlock Parameter von Invoke-Command
, um den Befehl anzugeben.
Sie können den ComputerName Parameter von Invoke-Command
verwenden, um einen Remotecomputer anzugeben. Oder Sie können eine dauerhafte Verbindung mit einem Remotecomputer (einer Sitzung) erstellen und dann den parameter Session von Invoke-Command
verwenden, um den Befehl in der Sitzung auszuführen.
Beispielsweise führen die folgenden Befehle einen Get-Process
Befehl remote aus.
Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {Get-Process}
# - OR -
Invoke-Command -Session $s -ScriptBlock {Get-Process}
Um einen Remotebefehl zu unterbrechen, geben Sie STRG-+C-ein. Die Unterbrechungsanforderung wird an den Remotecomputer übergeben, auf dem der Remotebefehl beendet wird.
Weitere Informationen zu Remotebefehlen finden Sie unter about_Remote und den Hilfethemen zu den Cmdlets, die Remoting unterstützen.
Kann ich nur Telnet auf einem Remotecomputer verwenden?
Sie können das Cmdlet Enter-PSSession
verwenden, um eine interaktive Sitzung mit einem Remotecomputer zu starten.
Geben Sie an der PowerShell-Eingabeaufforderung Folgendes ein:
Enter-PSSession <ComputerName>
Die Eingabeaufforderung ändert sich, um anzuzeigen, dass Sie mit dem Remotecomputer verbunden sind.
<ComputerName>\C:>
Nun werden die von Ihnen eingegebenen Befehle auf dem Remotecomputer genauso ausgeführt, als ob Sie sie direkt auf dem Remotecomputer eingegeben haben.
Geben Sie Folgendes ein, um die interaktive Sitzung zu beenden:
Exit-PSSession
Eine interaktive Sitzung ist eine persistente Sitzung, die das WS-Management-Protokoll verwendet. Es ist nicht identisch mit der Verwendung von Telnet, aber es bietet eine ähnliche Erfahrung.
Weitere Informationen finden Sie unter Enter-PSSession
.
Kann ich eine dauerhafte Verbindung erstellen?
Ja. Sie können Remotebefehle ausführen, indem Sie den Namen des Remotecomputers, dessen NetBIOS-Namen oder seine IP-Adresse angeben. Alternativ können Sie Remotebefehle ausführen, indem Sie eine PowerShell-Sitzung (PSSession) angeben, die mit dem Remotecomputer verbunden ist.
Wenn Sie den ComputerName Parameter von Invoke-Command
oder Enter-PSSession
verwenden, stellt PowerShell eine temporäre Verbindung her. PowerShell verwendet die Verbindung, um nur den aktuellen Befehl auszuführen, und dann wird die Verbindung geschlossen. Dies ist eine sehr effiziente Methode zum Ausführen eines einzelnen Befehls oder mehrerer nicht verwandter Befehle, auch auf vielen Remotecomputern.
Wenn Sie das Cmdlet New-PSSession
zum Erstellen einer PSSession verwenden, stellt PowerShell eine dauerhafte Verbindung für die PSSession her. Anschließend können Sie mehrere Befehle in der PSSession ausführen, einschließlich Befehle, die Daten freigeben.
In der Regel erstellen Sie eine PSSession, um eine Reihe verwandter Befehle auszuführen, die Daten freigeben. Andernfalls reicht die vom ComputerName Parameter erstellte temporäre Verbindung für die meisten Befehle aus.
Weitere Informationen zu Sitzungen finden Sie unter about_PSSessions.
Kann ich Befehle auf mehreren Computern gleichzeitig ausführen?
Ja. Der parameter ComputerName des Cmdlets Invoke-Command
akzeptiert mehrere Computernamen, und der parameter Session akzeptiert mehrere PSSessions.
Wenn Sie einen Invoke-Command
Befehl ausführen, führt PowerShell die Befehle auf allen angegebenen Computern oder in allen angegebenen PSSessions aus.
PowerShell kann Hunderte gleichzeitiger Remoteverbindungen verwalten. Die Anzahl der Remotebefehle, die Sie senden können, ist jedoch möglicherweise durch die Ressourcen Ihres Computers und deren Kapazität zum Einrichten und Verwalten mehrerer Netzwerkverbindungen begrenzt.
Weitere Informationen finden Sie im Beispiel im Hilfethema Invoke-Command
.
Wo befinden sich meine Profile?
PowerShell-Profile werden in Remotesitzungen nicht automatisch ausgeführt, sodass die von dem Profil hinzugefügten Befehle in der Sitzung nicht vorhanden sind. Darüber hinaus wird die $PROFILE
automatische Variable in Remotesitzungen nicht aufgefüllt.
Verwenden Sie das Cmdlet Invoke-Command
, um ein Profil in einer Sitzung auszuführen.
Mit dem folgenden Befehl wird beispielsweise das CurrentUserCurrentHost Profil vom lokalen Computer in der Sitzung in $s
ausgeführt.
Invoke-Command -Session $s -FilePath $PROFILE
Der folgende Befehl führt das CurrentUserCurrentHost Profil vom Remotecomputer in der Sitzung in $s
aus. Da die variable $PROFILE
nicht aufgefüllt wird, verwendet der Befehl den expliziten Pfad zum Profil.
Invoke-Command -Session $s {
. "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}
Nach dem Ausführen dieses Befehls sind die Befehle, die das Profil der Sitzung hinzufügt, in $s
verfügbar.
Sie können auch ein Startskript in einer Sitzungskonfiguration verwenden, um ein Profil in jeder Remotesitzung auszuführen, die die Sitzungskonfiguration verwendet.
Weitere Informationen über PowerShell-Profile finden Sie unter about_Profiles. Weitere Informationen zu Sitzungskonfigurationen finden Sie unter Register-PSSessionConfiguration
.
Wie funktioniert die Drosselung für Remotebefehle?
Damit Sie die Ressourcen auf Ihrem lokalen Computer verwalten können, enthält PowerShell ein Feature pro Befehl, mit dem Sie die Anzahl der gleichzeitigen Remoteverbindungen einschränken können, die für jeden Befehl eingerichtet sind.
Der Standardwert ist 32 gleichzeitige Verbindungen, Sie können jedoch den ThrottleLimit-Parameter Parameter der Cmdlets verwenden, um einen benutzerdefinierten Drosselungsgrenzwert für bestimmte Befehle festzulegen.
Wenn Sie das Drosselungsfeature verwenden, denken Sie daran, dass es auf jeden Befehl angewendet wird, nicht auf die gesamte Sitzung oder auf den Computer. Wenn Sie Befehle gleichzeitig in mehreren Sitzungen oder PSSessions ausführen, ist die Anzahl der gleichzeitigen Verbindungen die Summe der gleichzeitigen Verbindungen in allen Sitzungen.
Um Cmdlets mit einem ThrottleLimit Parameter zu finden, geben Sie Folgendes ein:
Get-Help * -Parameter ThrottleLimit
-or-
Get-Command -ParameterName ThrottleLimit
Unterscheidet sich die Ausgabe von Remotebefehlen von der lokalen Ausgabe?
Wenn Sie PowerShell lokal verwenden, senden und empfangen Sie "live" .NET Framework-Objekte; "live"-Objekte sind Objekte, die tatsächlichen Programmen oder Systemkomponenten zugeordnet sind. Wenn Sie die Methoden aufrufen oder die Eigenschaften von Liveobjekten ändern, wirken sich die Änderungen auf das eigentliche Programm oder die eigentliche Komponente aus. Und wenn sich die Eigenschaften eines Programms oder einer Komponente ändern, ändern sich auch die Eigenschaften des Objekts, das sie darstellen.
Da die meisten Liveobjekte jedoch nicht über das Netzwerk übertragen werden können, werden die meisten der in Remotebefehlen gesendeten Objekte von PowerShell "serialisiert", d. h., sie konvertiert jedes Objekt in eine Reihe von XML-Datenelementen (Constraint Language in XML [CLiXML]) für die Übertragung.
Wenn PowerShell ein serialisiertes Objekt empfängt, konvertiert sie den XML-Code in einen deserialisierten Objekttyp. Das deserialisierte Objekt ist ein genauer Datensatz der Eigenschaften des Programms oder der Komponente zu einem früheren Zeitpunkt, aber es ist nicht mehr "live", d. h., es ist nicht mehr direkt mit der Komponente verknüpft. Und die Methoden werden entfernt, da sie nicht mehr effektiv sind.
In der Regel können Sie deserialisierte Objekte genauso verwenden, wie Sie Liveobjekte verwenden würden, aber Sie müssen sich deren Einschränkungen bewusst sein. Außerdem verfügen die vom Cmdlet Invoke-Command
zurückgegebenen Objekte über zusätzliche Eigenschaften, mit denen Sie den Ursprung des Befehls bestimmen können.
Einige Objekttypen, z. B. DirectoryInfo-Objekte und GUIDs, werden wieder in Liveobjekte konvertiert, wenn sie empfangen werden. Diese Objekte benötigen keine spezielle Behandlung oder Formatierung.
Informationen zum Interpretieren und Formatieren der Remoteausgabe finden Sie unter about_Remote_Output.
Kann ich Hintergrundaufträge remote ausführen?
Ja. Ein PowerShell-Hintergrundauftrag ist ein PowerShell-Befehl, der asynchron ausgeführt wird, ohne mit der Sitzung zu interagieren. Wenn Sie einen Hintergrundauftrag starten, wird die Eingabeaufforderung sofort zurückgegeben, und Sie können weiterhin in der Sitzung arbeiten, während der Auftrag ausgeführt wird, auch wenn er für einen längeren Zeitraum ausgeführt wird.
Sie können einen Hintergrundauftrag auch dann starten, wenn andere Befehle ausgeführt werden, da Hintergrundaufträge immer asynchron in einer temporären Sitzung ausgeführt werden.
Sie können Hintergrundaufträge auf einem lokalen oder Remotecomputer ausführen. Standardmäßig wird ein Hintergrundauftrag auf dem lokalen Computer ausgeführt. Sie können jedoch den AsJob Parameter des Cmdlets Invoke-Command
verwenden, um einen beliebigen Remotebefehl als Hintergrundauftrag auszuführen. Außerdem können Sie Invoke-Command
verwenden, um einen Start-Job
Befehl remote auszuführen.
Weitere Informationen zu Hintergrundaufträgen in PowerShell finden Sie unter about_Jobs und about_Remote_Jobs.
Kann ich Windows-Programme auf einem Remotecomputer ausführen?
Sie können PowerShell-Remotebefehle verwenden, um Windows-basierte Programme auf Remotecomputern auszuführen.
Sie können z. B. Shutdown.exe
oder Ipconfig.exe
auf einem Remotecomputer ausführen.
Sie können jedoch keine PowerShell-Befehle verwenden, um die Benutzeroberfläche für jedes Programm auf einem Remotecomputer zu öffnen.
Wenn Sie ein Windows-Programm auf einem Remotecomputer starten, wird der Befehl nicht abgeschlossen, und die PowerShell-Eingabeaufforderung wird erst zurückgegeben, wenn das Programm abgeschlossen ist oder bis Sie STRG+C- drücken, um den Befehl zu unterbrechen. Wenn Sie beispielsweise das Ipconfig.exe
Programm auf einem Remotecomputer ausführen, wird die Eingabeaufforderung erst zurückgegeben, wenn Ipconfig.exe
abgeschlossen ist.
Wenn Sie Remotebefehle verwenden, um ein Programm zu starten, das über eine Benutzeroberfläche verfügt, wird der Programmprozess gestartet, die Benutzeroberfläche wird jedoch nicht angezeigt. Der PowerShell-Befehl ist nicht abgeschlossen, und die Eingabeaufforderung wird erst zurückgegeben, wenn Sie den Programmvorgang beenden oder bis Sie STRG+Cdrücken, wodurch der Befehl unterbrochen und der Prozess beendet wird.
Wenn Sie beispielsweise einen PowerShell-Befehl verwenden, um Notepad
auf einem Remotecomputer auszuführen, wird der Editor-Prozess auf dem Remotecomputer gestartet, die Editor-Benutzeroberfläche wird jedoch nicht angezeigt. Um den Befehl zu unterbrechen und die Eingabeaufforderung wiederherzustellen, drücken Sie STRG+C.
Kann ich die Befehle einschränken, die Benutzer remote auf meinem Computer ausführen können?
Ja. Jede Remotesitzung muss eine der Sitzungskonfigurationen auf dem Remotecomputer verwenden. Sie können die Sitzungskonfigurationen auf Ihrem Computer (und die Berechtigungen für diese Sitzungskonfigurationen) verwalten, um zu bestimmen, wer Befehle remote auf Ihrem Computer ausführen kann und welche Befehle sie ausführen können.
Eine Sitzungskonfiguration konfiguriert die Umgebung für die Sitzung. Sie können die Konfiguration mithilfe einer Assembly definieren, die eine neue Konfigurationsklasse implementiert, oder mithilfe eines Skripts, das in der Sitzung ausgeführt wird. Die Konfiguration kann die Befehle bestimmen, die in der Sitzung verfügbar sind. Außerdem kann die Konfiguration Einstellungen enthalten, die den Computer schützen, z. B. Einstellungen, die die Datenmenge begrenzen, die die Sitzung remote in einem einzelnen Objekt oder Befehl empfangen kann. Sie können auch einen Sicherheitsdeskriptor angeben, der die Berechtigungen bestimmt, die für die Verwendung der Konfiguration erforderlich sind.
Das Cmdlet Enable-PSRemoting
erstellt die Standardsitzungskonfigurationen auf Ihrem Computer: Microsoft.PowerShell, Microsoft.PowerShell.Workflow und Microsoft.PowerShell32 (nur 64-Bit-Betriebssysteme).
Enable-PSRemoting
legt den Sicherheitsdeskriptor für die Konfiguration fest, damit nur Mitglieder der Gruppe "Administratoren" auf Ihrem Computer diese verwenden können.
Sie können die Sitzungskonfigurations-Cmdlets verwenden, um die Standardsitzungskonfigurationen zu bearbeiten, neue Sitzungskonfigurationen zu erstellen und die Sicherheitsdeskriptoren aller Sitzungskonfigurationen zu ändern.
Ab Windows PowerShell 3.0 können Sie mit dem Cmdlet New-PSSessionConfigurationFile
benutzerdefinierte Sitzungskonfigurationen mithilfe einer Textdatei erstellen. Die Datei enthält Optionen zum Festlegen des Sprachmodus und zum Angeben der Cmdlets und Module, die in Sitzungen verfügbar sind, die die Sitzungskonfiguration verwenden.
Wenn Benutzer die Cmdlets Invoke-Command
, New-PSSession
oder Enter-PSSession
verwenden, können sie den Parameter ConfigurationName verwenden, um die Sitzungskonfiguration anzugeben, die für die Sitzung verwendet wird. Außerdem können sie die Standardkonfiguration ändern, die ihre Sitzungen verwenden, indem sie den Wert der $PSSessionConfigurationName
Einstellungsvariable in der Sitzung ändern.
Weitere Informationen zu Sitzungskonfigurationen finden Sie in der Hilfe zu den Sitzungskonfigurations-Cmdlets. Geben Sie Folgendes ein, um die Sitzungskonfigurations-Cmdlets zu finden:
Get-Command *PSSessionConfiguration
Was sind Lüfter- und Lüfterkonfigurationen?
Das am häufigsten verwendete PowerShell-Remotingszenario mit mehreren Computern ist die 1:n-Konfiguration, in der ein lokaler Computer (der Administratorcomputer) PowerShell-Befehle auf zahlreichen Remotecomputern ausführt. Dies wird als "Fanout"-Szenario bezeichnet.
In einigen Unternehmen ist die Konfiguration jedoch n:1, wo viele Clientcomputer eine Verbindung mit einem einzelnen Remotecomputer herstellen, auf dem PowerShell ausgeführt wird, z. B. ein Dateiserver oder ein Kiosk. Dies wird als "Fan-In"-Konfiguration bezeichnet.
PowerShell-Remoting unterstützt sowohl Lüfter-Out- als auch Fan-In-Konfigurationen.
Für die Lüfterkonfiguration verwendet PowerShell das Web Services for Management (WS-Management) Protokoll und den WinRM-Dienst, der die Microsoft-Implementierung von WS-Management unterstützt. Wenn ein lokaler Computer eine Verbindung mit einem Remotecomputer herstellt, stellt WS-Management eine Verbindung her und verwendet ein Plug-In für PowerShell, um den PowerShell-Hostprozess (Wsmprovhost.exe) auf dem Remotecomputer zu starten. Der Benutzer kann einen alternativen Port, eine alternative Sitzungskonfiguration und andere Features angeben, um die Remoteverbindung anzupassen.
Zur Unterstützung der "Fan-In"-Konfiguration verwendet PowerShell Internetinformationsdienste (IIS) zum Hosten von WS-Management, zum Laden des PowerShell-Plug-Ins und zum Starten von PowerShell. In diesem Szenario werden nicht jede PowerShell-Sitzung in einem separaten Prozess gestartet, sondern alle PowerShell-Sitzungen werden im selben Hostprozess ausgeführt.
Die IIS-Hosting- und Fan-In-Remoteverwaltung wird in Windows XP oder windows Server 2003 nicht unterstützt.
In einer Fan-In-Konfiguration kann der Benutzer einen Verbindungs-URI und einen HTTP-Endpunkt angeben, einschließlich Transport, Computername, Port und Anwendungsname. IIS leitet alle Anforderungen mit einem angegebenen Anwendungsnamen an die Anwendung weiter. Der Standardwert ist die WS-Verwaltung, die PowerShell hosten kann.
Sie können auch einen Authentifizierungsmechanismus angeben und die Umleitung von HTTP- und HTTPS-Endpunkten verbieten oder zulassen.
Kann ich Remoting auf einem einzelnen Computer testen, der sich nicht in einer Domäne befindet?
Ja. PowerShell-Remoting ist auch verfügbar, wenn sich der lokale Computer nicht in einer Domäne befindet. Sie können die Remotingfeatures verwenden, um eine Verbindung mit Sitzungen herzustellen und Sitzungen auf demselben Computer zu erstellen. Die Features funktionieren genauso wie beim Herstellen einer Verbindung mit einem Remotecomputer.
Wenn Sie Remotebefehle auf einem Computer in einer Arbeitsgruppe ausführen möchten, ändern Sie die folgenden Windows-Einstellungen auf dem Computer.
Achtung: Diese Einstellungen wirken sich auf alle Benutzer auf dem System aus, und sie können das System anfälliger für einen böswilligen Angriff machen. Achten Sie beim Vornehmen dieser Änderungen auf Vorsicht.
Windows Vista, Windows 7, Windows 8:
Erstellen Sie den folgenden Registrierungseintrag, und legen Sie dann den Wert auf 1 fest: LocalAccountTokenFilterPolicy in
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Sie können den folgenden PowerShell-Befehl verwenden, um diesen Eintrag hinzuzufügen:
$parameters = @{ Path='HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System' Name='LocalAccountTokenFilterPolicy' propertyType='DWord' Value=1 } New-ItemProperty @parameters
Windows Server 2003, Windows Server 2008, Windows Server 2012, Windows Server 2012 R2:
Es sind keine Änderungen erforderlich, da die Standardeinstellung der Richtlinie "Netzwerkzugriff: Freigabe und Sicherheitsmodell für lokale Konten" "Klassisch" lautet. Überprüfen Sie die Einstellung, falls sie geändert wurde.
Kann ich Remotebefehle auf einem Computer in einer anderen Domäne ausführen?
Ja. In der Regel werden die Befehle ohne Fehler ausgeführt, obwohl Sie möglicherweise den parameter Credential des Invoke-Command
, New-PSSession
oder Enter-PSSession
Cmdlets verwenden müssen, um die Anmeldeinformationen eines Mitglieds der Gruppe "Administratoren" auf dem Remotecomputer bereitzustellen. Dies ist manchmal auch dann erforderlich, wenn der aktuelle Benutzer Mitglied der Gruppe "Administratoren" auf den lokalen und Remotecomputern ist.
Wenn sich der Remotecomputer jedoch nicht in einer Domäne befindet, der der lokale Computer vertraut, ist der Remotecomputer möglicherweise nicht in der Lage, die Anmeldeinformationen des Benutzers zu authentifizieren.
Verwenden Sie zum Aktivieren der Authentifizierung den folgenden Befehl, um den Remotecomputer zur Liste der vertrauenswürdigen Hosts für den lokalen Computer in WinRM hinzuzufügen. Geben Sie den Befehl an der PowerShell-Eingabeaufforderung ein.
Set-Item WSMan:\localhost\Client\TrustedHosts -Value <Remote-computer-name>
Wenn Sie beispielsweise den Server01-Computer zur Liste der vertrauenswürdigen Hosts auf dem lokalen Computer hinzufügen möchten, geben Sie den folgenden Befehl an der PowerShell-Eingabeaufforderung ein:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value Server01
Unterstützt PowerShell Das Remoting über SSH?
Ja. Weitere Informationen finden Sie unter PowerShell-Remoting über SSH.