Remote Desktop Services über PowerShell installieren

    RD Session Deployment mit PowerShellEine RDS-Umgebung lässt sich nicht nur über die GUI des Server Managers bereit­stellen, sondern auch über Power­Shell. Zu­ständig dafür sind die Funk­tionen New-RDSession­Deployment und New-RDVirtual­Desktop­Deployment. Sie über­nehmen die Basis­installation, für die fol­gende Konfi­guration gibt es weitere Cmdlets.

    Greift man für die RDS-Installation zum Server Manager, dann bietet der Assistent zum Hin­zufügen von Rollen die Wahl zwischen Standard­bereitstellung und Schnellstart.

    PowerShell unterscheidet nicht zwischen den Bereitstellungstypen Standard und Schnellstart.

    Letzterer richtet den Connection Broker, RD Web Access und einen Session Host bzw. Virtualization Host auf einer einzigen Maschine ein.

    Rollen auf einem oder mehreren Servern

    Die PowerShell-Cmdlets kennen das Schnellstart-Konzept nicht, aber es lässt sich ohne weiteres umsetzen, indem man den Parametern für die drei Rollen immer den gleichen Server mitgibt.

    Die Sammlung und die RemoteApp, die der Assistent im Server Manager zusätzlich konfiguriert, müsste man durch eigene Befehle hinzufügen.

    RemoteDesktop-Modul laden

    Die benötigten Cmdlets und functions gehören zum Modul RemoteDesktop. Unter Windows Server ist es standard­mäßig schon vorhanden, unter Windows 10 muss man es erst installieren. Dieses importiert man mit dem Befehl

    Import-Module RemoteDesktop

    Neues Session-Deployment erstellen

    Anschließend ruft man New-RDSessionDeployment nach diesem Muster auf:

    New-RDSessionDeployment -ConnectionBroker <Server-FQDN> `
    -SessionHost <Server-FQDN> -WebAccessServer <Server-FQDN>

    Neue RDS-Bereitstellung erzeugen mit der Funktion New-RDSessionDeployment

    Wenn man als Wert für die drei Parameter nur den Hostname angibt, erhält man eine entsprechende Fehlermeldung und den Hinweis, den voll­qualifizierten Domänen­namen zu verwenden.

    VDI-Deployment erzeugen

    Analog dazu ruft man New-RDVirtual¬Desktop¬Deployment auf, wenn man keine Session-basierten, sondern virtuelle Desktops nutzen möchte:

    New-RDVirtualDesktopDeployment -ConnectionBroker <Server-FQDN> `
    -WebAccessServer <Server-FQDN> -VirtualizationHost <Server-FQDN>

    Troubleshooting

    Es ist nicht möglich, diese functions auf einem Server aufzurufen, auf dem solche Rollen installiert werden, die einen Neustart des Rechners erfordern. In diesem Fall gibt PowerShell die Meldung aus:

    New-RDSessionDeployment : Fehler beim Überprüfen des Parameters "Remotedesktop-Sitzungshost". Der lokale Server kann nicht neu gestartet werden.

    New-RDSessionDeployment muss remote und mit dem FQDN für die Server auf gerufen werden.

    Daher muss man die Operation auf einem anderen Server oder einer Workstation mit installiertem RemoteDesktop-Modul starten. Dabei kann man jedoch in folgenden Fehler stolpern:

    Fehler beim Überprüfen des Parameters "Remotedesktop-Verbindungsbroker". Es kann keine Verbindung mit dem Server über PowerShell-Remoting hergestellt werden.

    Das Problem mit PowerShell-Remoting kann auch im Server Manager auftreten.

    In diesem Fall muss man die übliche Check-Liste für WinRM durchgehen. Dazu gehört das Ausführen von

    winrm quickconfig

    und die Prüfung der Firewall-Regeln:

    Get-NetFirewallRule -displayname "Windows-Remoteverwaltung*" |
    select DisplayName, Enabled

    Falls diese Voraussetzungen gegeben sind, kann es knifflig werden, wie diese Tipps im TechNet-Forum zeigen. In einigen Fällen scheint es zu helfen, IPv6 vorübergehend zu deaktivieren.

    Host-Collection erstellen

    Wenn man gleich eine Sammlung von Session Hosts erstellen will, wie dies die Schnellstart-Option tut, dann geht man so vor:

    New-RDSessionCollection -CollectionName RDSessionCollection `
    -SessionHost <Server-FQDN> `
    -CollectionDescription "Meine erste Sammlung für Desktop Sessions” `
    -ConnectionBroker <Server-FQDN>

    Neue RDSH-Sammlung mit New-RDSessionCollection erstellen

    Weitere Session Hosts hinzufügen

    Nachdem die oben beschriebene Basisinstallation nur einen einzelnen Session Host eingerichtet hat und Collections normaler­weise mehrere Hosts umfassen, könnte man weitere davon mit Add-RDServer hinzufügen:

    Add-RDServer -Server <Server-FQDN> -Role RDS-RD-SERVER `
    -ConnectionBroker <Server-FQDN>

    Session Host zu einem Deployment hinzufügen mit Add-RDServer

    Möchte man mehr als einen Session Host zu einer Sammlung hinzufügen, dann muss man ihre Namen dem Parameter SessionHost als Array @("<Server-1-FQDN>", "<Server-2-FQDN>") übergeben.

    Keine Kommentare