In Teil 1 ging es um das Herstellen der Voraussetzungen für das Remotemanagement. In diesem Teil greifen wir nun auf den Client zu und führen administrative Aufgaben aus.

Einmal findet der Zugriff über den Hostnamen statt und einmal über die IP, falls der Hostname nicht mit der momentanen IP im DNS eingetragen ist.

Zugriff über den Hostnamen

Dies ist die normale Art der Remoteadmnistration. Das funktioniert direkt, sofern dem Client über DNS eine IP zugeordnet ist und der Client den DNS Server erreichen kann, um Kerberos Tickets abzuholen. Wenn diese Voraussetzungen nicht erfüllt sind geht es als Fallback über die IP, siehe weiter unten.

Als Administrator auf Server anmelden, Powershell starten.

Enter-PSSession clientname

Die Shell wechselt bei Erfolg auf den Client und der Prompt wechselt zu soetwas wie

[clientname:] PS C:\users\adminman\Documents>

Zugriff über die IP

Der Zugriff per IP geschieht in mehreren Schritten

  1. TrustedHosts auf Serverseite definieren
  2. Credentials abfragen
  3. Session starten

Zuerst als Administrator auf Server anmelden, Powershell als Administrator starten.

1. TrustedHosts auf Serverseite definieren

cd wsman:\localhost\Client
Set-Item TrustedHosts -Value * -Force
dir

Ein Sternchen bedeutet alle Hosts sind vertrauenswürdig. Die Einstellung ist Beispielhaft und sollte in einem Produktivsystem angepasst werden. Z.B. immer auf die Client-IP, den man erreichen will. Oder auf die Client DHCP Range.

Man löscht die TrustedHosts mit

Set-Item TrustedHosts -Value "" -Force

2. Credentials abfragen

Beim Zugriff über eine IP muss eine explizite Authentifizierung erfolgen.

$cred = Get-Credential

3. Session starten

Enter-PSSession <ip> -credential $cred -Authentication Negotiate

Fertig

Die Eingabe von Kommandos kann nun erfolgen. Sie werden im Kontext des Benutzers ausgeführt, der den Befehl Enter-PSSession ausgeführt hat. Ein sogenannter second Hop ist nicht möglich. Man kann von dem Client aus keine anderen Computer oder Netzlaufwerke über die Windows-Authentifizierung erreichen. HTTP und HTTPS geht aber zum Beispiel.

In diesem Zusammenhang ein paar Scriptebeispiele, die in einer solchen Sitzung Sinn machen: