Remote Desktop Service Farm für Anwendungsbereitstellung unter Server 2016

Microsoft hat in den letzten Jahren in Sachen Remote Desktop Bereitstellung extrem aufgeholt und zum Teil überholt. Diesmal geht es um eine einfache Anwendungsbereitstellung die mit PowerShell umgesetzt wird. Im APPDeployment, oder  Anwendungsbereitstellung, werden installierte Programme an einen Client gestreamt. Die verfügbaren Anwendungen werden über eine Webseite oder RDS bereitgestellt.

Die Umgebung

In diesem Beispiel ist eine Domäne (joinpowershell.ab) vorhanden. In dieser Domäne befindet sich ein SQL Server und einige Mitgliedserver, welche für die Bereitstellung benötigt werden. Der seperate SQL-Server dient zur Demonstration einer Hochverfügbarkeit. Es ist genauso gut, SQL-Express auf einen der Server zu installieren.

Im Folgenden ist eine Grafik des Netzwerkes dargestellt.

Network of RDS Deployment

Die einzelnen RDS Dienste

Lizenz- Server

Die Remote Desktop Session Dienste gehören zu den Features, die eine eigene CAL erfordern. Für die Verwaltung dieser ist der Lizenz-Server zuständig und ein Bestandteil der RDS.
Hosts lassen sich in sogenannte Farmen (Sammlungen) zusammenfassen. In diesen Farmen werden Sitzungen dynamisch verteilt. Es ist daher nicht praktikabel, die Lizenzschlüssel an einzelne Hosts zu binden. Der Lizenz-Server übernimmt die Aufgabe die vorhandenen Cals zentral zu verwalten und sie nach Bedarf an aktive Sitzungen zuzuweisen. Einen ausführlichen Artikel über die Installation des Lizenz-Servers ist auf der Seite von WindowsPro zu finden.

Verbindungsbroker

Der Remotedesktop-Verbindungsbroker (RD-Verbindungsbroker) erfüllt im Wesentlichen die folgenden Funktionen:

  • Benutzer können eine vorhandene Sitzung wiederherstellen. Dadurch werden doppelte Sitzungen verhindert und die Last gleichmäßig verteilt.
  • Die Sitzungslast kann gleichmäßig auf Hosts für Remotedesktopsitzungen verteilt werden.
  • Benutzer können über RemoteApp und Remotedesktopverbindung auf virtuelle Desktops zugreifen, die auf Remotedesktop-Virtualisierungshostservern gehostet werden, und auf RemoteApp-Programme, die auf Servern mit dem Host für Remotedesktopsitzungen gehostet werden.

In einer Serverfarm mit dem Host für Remotedesktopsitzungen mit Lastenausgleich werden die Benutzersitzungen durch den Verbindungsbroker nachverfolgt. In der Datenbank des Remotedesktop-Verbindungsbrokers werden Sitzungsinformationen gespeichert, einschließlich des Namens des Servers mit dem Host für Remotedesktopsitzungen, auf dem sich die jeweilige Sitzung befindet, des Sitzungsstatus und der Sitzungs-ID der jeweiligen Sitzung sowie des der jeweiligen Sitzung zugeordneten Sitzungsnamens. Diese Informationen werden vom Remotedesktop-Verbindungsbroker verwendet, um einen Benutzer mit einer vorhandenen Sitzung an den Server mit dem Host für Remotedesktopsitzungen umzuleiten, auf dem sich diese Sitzung befindet.

Web Access Server

Mit dem Web Access für Remotedesktop (Web Access für RD) wird die Möglichkeit bereitgestellt, dass Nutzer über das Startmenü auf einem Computer oder über einen Webbrowser auf RemoteApps oder Remotedesktops zugreifen können. Weiterhin stellt der Web Access Server das Feature Remotedesktop-Webverbindung bereit. Dadurch ist es möglich eine Remoteverbindung von einem Webbrowser auf jeden Desktop herzustellen.

Sessionhost

Der Server mit der Funktion des Remote Desktop Session Hosts ist ein Server, der Windows-basierte Programme oder gar ganze Desktops für Remotedesktop-Clients hostet.

Gateway

Das Remotedesktopgateway (RD-Gateway) ermöglicht dem Remotenutzer das Herstellen einer Verbindung in das Firmennetzwerk, von jedem Gerät mit Internetzugang.

RD-Gateway bringt darüber hinaus noch weitere Vorteile:

  • Das Herstellen einer Verbindung mit den internen Netzwerkressourcen über das Internet mithilfe einer verschlüsselten Verbindung, ohne VPN dafür konfigurieren zu müssen.
  • Das Gateway bietet umfassende Sicherheitskonfigurationsmodelle um den Zugriff auf interne Ressourcen zu steuern.
  • Es ermöglicht die Herstellung zu privaten Netzwerken,die hinter Firewalls und über NAT gehostet werden.
  • Mit dem Remotedesktopgateway-Manager gibt es die Möglichkeit Autorisierungsrichtlinien zu definieren. Die Richtlinien enthalten Bedingungen, die erfüllt werden müssen, damit eine Verbindung hergestellt werden kann.
  • Es werden eine Anzahl von Tools zur Überwachung bereitgestellt.
  • Es kann der Netzwerkzugriffsschutz (Network Access Protection) NAP aktiviert werden, um die Sicherheit zu erhöhen.
  • Der RD-Gatewayserver kann mit ISA Server (Microsoft Internet Security and Acceleration) verwendet werden, um die Sicherheit zu erhöhen.

Remote Desktop Services installieren

Mit der PowerShell ist es wesentlich einfacher die Remote Desktop Services bereitzustellen, als mit der GUI. Es müssen nur einige Vorüberlegungen getroffen werden:

  • Welche Server soll welche Rolle(n) übernehmen
  • Lizenzierung pro Nutzer oder Gerät
  • Sollen Anwendungen (Apps) oder Desktops bereitgestellt werden.
  • DNS Namen

Als erstes wird eine Shell mit Administratorrechten gestartet, andernfalls kommt es zu Warnungen.

Für ein einfaches Arbeiten in der Shell werden zu Beginn die Variablen Definiert.

Da Anwendungen bereitgestellt werden sollen, muss die Funktion “New-RDSessionDeployment” genutzt werden. Schaut man sich die Parameter an, stellt man fest, dass diese sehr überschaubar sind:

New-RDSessionDeployment [-ConnectionBroker] <String> [-SessionHost] <String[]> [[-WebAccessServer] [<String>]][<CommonParameters>]

Beachtet: Der Sitzungshost braucht einen Neustart des Servers. Sollten sich die Rollen RD-Sitzungshost und RD-Verbindungsbroker auf einem Server befinden, sollte der Befehl Remote ausgeführt werden, andernfalls kommt es zu einem Fehler.

Mit folgender Zeile lässt sich nun RDS einrichten und grundkonfigurieren:

Das Deployment wird einige Minuten in Anspruch nehmen und es gibt auch keine Ausgaben, daher ist es immer sinnvoll den Schalter Verbose zu setzen.

Der Verbindungsbroker ist sozusagen der ‚Manager’ in der Farm, daher laufen alle Befehle gegen ihn, auch die Abfrage nach den RD-Servern.

RDS-Server01

In nächsten Schritt muss noch der Lizenzserver zur Farm hinzugefügt werden. Die Installation der Features und Rollen erfolg wie beim Deployment vollautomatisch.

Linzenz-Server hinzufügen

 

RDS-AddLicensing

Für die Testumgebung wird die Lizenzierung pro Nutzer genommen. Zum Testen hat man eine RD-Lizenzierung von 120 Tagen.

Mit Get-RDLicenseConfiguration kann man die Lizenzierung überprüfen.

RDS-Get-License

Mit Get-RDServer kann man die Server und der Rollen nochmals überprüfen.

RDS-AllServer

Auch wenn schon einige Neustarts durchgeführt wurden, ist es sinnvoll nochmals alle Server neuzustarten.

Anwendungen bereitstellen

Anwendungen werden in sogenannten Collections bereitgestellt. Es ist möglich, mehrere Collections anzulegen, so kann man gut die Anwendungen nach Themen- oder Aufgabengebieten trennen. Weiterhin wird hier definiert, auf welchen Sessionhosts die Anwendungen ausgeführt werden sollen.

Neue Collection anlegen:

RDS-New-Sessioncollection

Mit Get-RDSessionCollection kann man sich alle Collections anzeigen lassen.

Get-RD-CollectionIm letzten Schritt muss noch eine Remote Anwendung freigegeben werden.

RDS-NewWebApp

Wer bis dahin noch nicht in den Servermanager geschaut hat, wird jetzt feststellen, dass die Remote Desktop Services auch da zu finden sind:

RDS-EnviromentRDS-Deployment-Servers

RDS-Overview

Über die Weboberfläche kann man nun die bereitgestellten Anwendungen starten. Da noch kein https und dns konfiguiert wurde, muss man die Sicherheitswarnung ignorieren und den Web-Access-Server direkt ansprechen.

RDS-WebSite-Login

RDS-WebSite-Apps

RDS-Connect-Webapp

Mit Get-RDUserSession lassen sich die aktuellen Verbindungen anzeigen.

RDS-Connected-UserHier ist auch zu sehen, dass die Sitzungen auf die beiden Hosts aufgeteilt werden.

Mit PowerShell unter Windows Server 2016 hat man enorme Möglichkeiten die Remote Desktop Services zu installieren und zu konfigurieren. In einem weiteren Blog wird es um die Hochverfügbarkeit des Verbindungsbroker gehen.

Über Andreas Bittner

MCSA Server 2016, MCSA Server 2012R2, Exchange 2010 & SharePoint Devop
Dieser Beitrag wurde unter DevOps, Grundlage, PowerShell, Remote Desktop Services, Scripting abgelegt und mit , , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.