Skype for Business Server 2015 Installation – Teil 1

Da ich derzeit häufiger über die Grundlagen von Skype for Business (SfB) Server 2015 reden muss, habe ich hier einmal Informationen für die Bereitstellung einer Demo-Infrastruktur gesammelt. Diese setze ich in Hinblick auf Skype for Business entweder komplett vorinstalliert oder nur in ihren Grundzügen vorbereitet in meinen Seminaren ein.Dazu verwende ich derzeit Windows 10 Version 1607 mit installiertem Hyper-V als Virtualisierungsplattform. Als virtuelle Maschinen kommen dabei die folgenden Server- und Clientsysteme zum Einsatz:

  • DC (192.168.0.100/24)
    Windows Server 2012 R2, Domänencontroller, DNS-Server, Zertifizierungsstelle
  • EX (192.168.0.101/24)
    Windows Server 2012 R2, Exchange Server 2016
  • OOS (192.168.0.102/24)
    Windows Server 2012 R2, Office Online Server 2016
  • SFB (192.168.0.103/24)
    Windows Server 2012 R2
  • WKS1 (192.168.0.10/24)
    Windows 10 Version 1607, Office 2016 Professional
  • WKS2 (192.168.0.11/24)
    Windows 10 Version 1607, Office 2016 Professional

Alle Systeme sind vollständig in die virtuelle Netzwerkinfrastruktur eingebunden und via Hyper-V NAT-Switch (192.168.0.1) auch mit dem Internet verbunden. Darüber hinaus sind diese als Mitglied einer fiktiven Active Directory-Domäne ‚firma.local‘ konfiguriert. Der Einfachheit halber besitzen alle Benutzer auf den Workstations lokale Administratorberechtigungen.

In diesem ersten Teil werde ich zunächst auf die Vorbereitung einer SfB-Infrastruktur eingehen. Im zweiten Teil beschreibe ich anschließend die Bereitstellung des ersten SfB Standard Edition-Server und die Aktivierung der Benutzer für die PC-zu-PC-Kommunikation.

Schritte der Vorbereitung

Die Vorbereitung einer SfB-Infrastruktur gliedert sich in fünf der offiziell insgesamt acht Installationsschritte, die seitens Microsoft in der folgenden Reihenfolge angeordnet sind:

  1. Software-Voraussetzungen des SfB-Servers installieren
  2. Bereitstellen einer Dateifreigabe
  3. Verwaltungstools installieren
  4. Active Directory vorbereiten
  5. DNS-Einträge konfigurieren

Diese Schritte dürfen dabei in beliebiger Reihenfolge bearbeitet werden, müssen jedoch erfolgreich abgeschlossen sein, bevor die verbleibenden drei Installationsschritte in exakter Abfolge durchgeführt werden:

  1. Erstellen und veröffentlichen einer SfB-Topologie
  2. Bereitstellen der Systemkomponenten auf den jeweiligen Servern
  3. Überprüfen der Infrastruktur

Dann also hier die Abfolge der ersten fünf vorbereitenden Schritte…

Software-Voraussetzungen des SfB-Servers installieren

Die Installation der Windows Server-eigenen Rollen und Features muss auf jedem zukünftigen SfB-Server durchgeführt werden. Dabei unterscheiden sich die die zu installieren Komponenten im Zusammenhang mit der später auszuführenden SfB-Funktion. Ein Standard Edition Server oder ein Mitglied eines Enterprise Edition Pools benötigt andere Komponenten, als ein Director, Persistent Chat oder Edge Server. Weiterführende Informationen dazu finden sich im Microsoft TechNet hier (Stand: September 2016).

In meinem Szenario möchte ich zunächst einen Standard Edition Server bereitstellen und installiere daher die folgenden Komponenten per PowerShell:

Add-WindowsFeature Web-Server,Web-Static-Content,Web-Default-Doc,Web-Http-Errors,Web-Dir-Browsing,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Http-Logging,Web-Log-Libraries,Web-Request-Monitor,Web-Http-Tracing,Web-Basic-Auth,Web-Windows-Auth,Web-Client-Auth,Web-Filtering,Web-Stat-Compression,Web-Dyn-Compression,Web-Asp-Net45,Web-Mgmt-Tools,Web-Scripting-Tools,Web-Mgmt-Compat,Server-Media-Foundation,BITS,NET-Framework-Core,Windows-Identity-Foundation,Server-Media-Foundation,NET-WCF-HTTP-Activation45,RSAT-ADDS

In der Praxis verwende ich dazu ein umfangreicheres PowerShell-Skript (im Anhang), welches einige Eventualitäten automatisch abfängt und mir die Auswahl der zu installierenden Rolle ermöglicht. Im Detail sieht der Vorgang dabei wie folgt aus:

sfb-prereq1
PowerShell-Skript zur Vorbereitung eines SfB-Servers

Die Ausführung des Skripts installiert die notwendigen Windows Server Rollen und Features – anschließend steht ein obligatorischer Neustart an.

sfb-prereq2
Installation der vorbereitenden Windows Server Rollen und Features.

Nach diesem Neustart führe ich noch eine Windows-Update Aktualisierung aus und patche das System auf den aktuellsten Stand. Dabei wird jedoch unter Windows Server 2012 R2 ein Hotfix (KB2982006) nicht länger installiert, da dieses durch ein kumulatives Update ersetzt wurde. Die spätere Installationsroutine des SfB prüft jedoch genau dieses Hotfix und bricht gegebenenfalls den Installationsvorgang ab. Daher installiere ich hier dieses Hotfix von Hand:

sfb-prereq3
Hotfix – KB2982006 für Windows Server 2012 R2

Nach kurzer Bestätigung sollte sich dieses unter Windows Server 2012 R2 fehlerfrei installieren lassen:

sfb-prereq4

sfb-prereq5

Notwendige Updates
Neben Windows Server 2012 R2 werden auch die Betriebssysteme Windows Server 2012 und Windows Server 2008 R2 durch die SfB-Installationsroutine genauer unter die Lupe genommen. Dabei sind die folgenden Hotfixes bedeutsam:

Damit ist die Vorbereitung des zukünftigen SfB-Server abgeschlossen und es geht weiter mit der Bereitstellung einer Dateifreigabe…

Bereitstellen einer Dateifreigabe

Die Bereitstellung der Dateifreigabe kann in der Praxis von jedem beliebigen Dateiserver übernommen werden. Allerdings ist dabei dringend angeraten die Redundanz im Auge zu behalten und nach Microsofts Empfehlung die Freigabe im Kontext einer Distributed File System (DFS) Dateifreigabe zu realisieren. In meiner Testumgebung verwende ich dazu allerdings den SfB-Server, was seitens Microsoft wiederum für Teststellungen durchaus realisiert werden darf. So habe ich direkt im Stammverzeichnis des Laufwerks C:\ einen Ordner ‚SfBShare‘ erstellt und diesen freigegeben:

sfb-share1
Bereitstellen der Dateifreigabe auf dem SfB-Server

In den Freigabeberechtigungen wähle ich anschließend die Gruppe der lokalen ‚Administratoren‘ aus und gebe diesen die Berechtigung ‚Vollzugriff‘. Die Gruppe ‚Jeder‘ verbleibt mit der Standardberechtigung ‚Lesen‘ in der Konfiguration – Microsoft erwähnt nicht explizit diese Gruppe zu entfernen oder anderweitig zu modifizieren:

sfb-share2
Freigabeberechtigungen der Dateifreigabe

Anschließend sollte die Dateifreigabe im Netzwerkkontext erscheinen:

sfb-share3
Netzwerkansicht der Dateifreigabe

Damit ist die Bereitstellung der Dateifreigabe abgeschlossen und ich mache mit der Installation der administrativen Werkzeuge weiter…

Verwaltungstools installieren

Auf dem zukünftigen SfB-Server benötige ich zur Vorbereitung der Installation einige Werkzeuge, mit denen der lokale Server, aber auch die globale SfB-Topologie und auch das Active Directory vorbereitet werden kann. Dazu stelle ich mir die Installationsdateien auf dem SfB-Server lokal zur Verfügung und führe die Datei ‚Setup.exe‘ aus. Ein Dialogfeld fragt nach dem Speicherort der SfB-Dateien und der Option, aktuelle Updates aus dem Internet zu laden. Ich behalte die Standardauswahl und klicke auf ‚Installieren‘:

sfb-admintools1
Starten der SfB-Setuproutine

Nach kurzer Zeit – es werden Visual C++ und zwei SfB-Komponenten installiert – öffnet sich der SfB-Bereitstellungs-Assistent. Sollte dies nicht automatisch geschehen, findet sich eine neue Verknüpfung sowohl für den SfB-Bereitstellungsassistent, als auch für die SfB-Management Shell im Startmenü / Startbildschirm:

sfb-admintools2
Installation der Verwaltungstools
sfb-admintools3
Abrufen von Updates
sfb-admintools5
Installation erster SfB-Komponenten
sfb-admintools6
Start des SfB-Bereitstellungs-Assistent

Im Bereitstellungs-Assistent kann nun der Eintrag ‚Verwaltungstools installieren‘ gewählt werden und eine weitere Installationsroutine beginnt:

sfb-admintools7
Installieren der Verwaltungstools

Nach Abschluss der Installation erscheint eine Zusammenfassung mit der Möglichkeit das Protokoll einzusehen:

sfb-admintools8
Installation der Verwaltungstools erfolgreich abgeschlossen

Somit sind die Verwaltungstools erfolgreich installiert und der nächste Schritt kann in Form der Active Directory-Vorbereitung in Angriff genommen werden…

Active Directory vorbereiten

Die Vorbereitung der Active Directory Infrastruktur erfolgt in drei Schritten:

  1. Die Vorbereitung des Active Directory Schemas
  2. Die Vorbereitung der Active Directory Gesamtstruktur
  3. Die Vorbereitung der Active Directory Domäne

Während die ersten beiden Schritte einmalig und global in der Gesamtstruktur durchgeführt werden müssen, ist die Domänenvorbereitung für all die Domänen verbindlich, in denen sich zukünftig SfB-aktivierte Benutzer befinden sollen. Die erfolgreiche Ausführung eines Konfigurationsschritts sollte dabei stets überprüft werden, bevor die Konfiguration fortgeführt wird.

Die Vorbereitung der Active Directory Struktur beginnt mit der Wahl der Funktion ‚Active Directory vorbereiten‘:

sfb-preparead1
Vorbereitung der AD-Infrastruktur

Anschließend kann über die Funktion ‚Schema vorbereiten‘ das Active Directory Schema um SfB-Klassen und -Attribute erweitert werden:

sfb-preparead2
Vorbereitung des AD-Schemas

Ist dieser Vorgang abgeschlossen, kann wahlweise das Vorgangsprotokoll angezeigt werden:

sfb-preparead3
Das AD-Schema wurde erweitert

Die Kontrolle der erfolgreichen Erweiterung des Active Directory-Schemas erfolgt im Anschluss mit Hilfe des Tools ADSI-Editor. Im Kontext der Schemapartition muss Schemacontainer ein Eintrag ‚CN=ms-RTC-SIP-SchemaVersion‘ existieren. Dieser muss ein Attribut ‚rangeUpper‘ mit dem Wert 1150 und ein Attribut ‚rangeLower‘ mit dem Wert 3 besitzen. Ist dieser Eintrag nicht vorhanden, oder die Attribute weisen nicht die richtigen Werte auf, ist entweder das Active Directory-Schema nicht vorbereitet worden, oder es hat noch keine vollständige Replikation stattgefunden.

Weiter geht es anschließend mit der Vorbereitung der AD-Gesamtstruktur:

sfb-preparead4
Vorbereiten der AD-Gesamtstruktur

In diesem Schritt wird nun die AD-Gesamtstruktur einmalig auf den Einsatz von SfB vorbereitet. Dazu müssen einige universelle AD-Gruppen erstellt werden, wobei deren Speicherort möglichst zentral definiert wird. Ein Dialogfeld bietet die Möglichkeit diesen zu bestimmen:

sfb-preparead5
Definition des Speicherorts der universellen Gruppen

Ist der Vorgang erneut abgeschlossen, bleibt die Überprüfung des Protokolls:

sfb-preparead6
Die Gesamtstruktur wurde vorbereitet

Zur Kontrolle der erfolgreichen Vorbereitung der AD-Gesamtstruktur kommt die SfB Verwaltungsshell zum Einsatz. Wird das SfB-Cmdlet ‚Get-CsAdForest‘ ausgeführt, sollte als Ergebnis ‚LC_FORESTSETTINGS_STATE_READY‘ zurückgeben werden.

Der dritte Schritt bereitet nun die jeweilige lokale Domäne auf den SfB-Einsatz vor:

sfb-preparead8
Vorbereiten der AD-Domäne

Nach Abschluss dieses Konfigurationsschritts bleibt erneut nur die Kontrolle der Protokolldatei:

sfb-preparead9
Die lokale Domäne wurde vorbereitet

Wurde die Domäne erfolgreich für SfB vorbereitet, kann dies erneut über die SfB Verwaltungsshell überprüft werden. Dazu muss diesmal das SfB-Cmdlet ‚Get-CsAdDomain‘ ausgeführt werden:

Get-CsAdDomain -Domain <DNS-Domänenname> -GlobalSettingsDomainController <beliebigerDC>
Der richtige Domänencontroller
Der Parameter ‚GlobalSettingsDomainController‘ gibt den Domänencontroller an, der als Speicherort für die globalen Konfigurationseinstellungen dient. Bei neuen SfB-Bereitstellungen ist dies der Konfigurationscontainer (Configuration Partition)  des Active Directory und somit kann jeder beliebige Domänencontroller der Gesamtstruktur als Wert eingetragen werden.

In Upgradeszenarien können die globalen Konfigurationseinstellungen jedoch noch im Systemcontainer einer Domäne (Domain Partition) gespeichert sein. In diesem Fall muss über diesen Parameter ein Domänencontroller in der Stammdomäne der Gesamtstruktur angegeben werden. Sollte die Konfiguration noch an dieser Stelle gelagert sein, kann dies umgestellt werden. Eine Anleitung findet sich dazu im TechNet an dieser Stelle. (Stand: September 2016)

Der Vorgang sollte mit der Meldung ‚LC_DOMAINSETTINGS_STATE_READY‘ bestätigt werden. Die dreistufige Vorbereitung der AD-Infrastruktur sollte damit abgeschlossen sein:

sfb-preparead10
Die Vorbereitung der AD-Domäne ist abgeschlossen

Der letzte Schritt der AD-Vorbereitung muss nun manuell durchgeführt werden und bestimmt dabei die administrative Kontrolle über die zukünftige SfB-Infrastruktur. Dazu müssen die entsprechenden AD-Benutzerkonten in die nun zur Verfügung stehende Gruppe ‚CSAdministrator‘ verschachtelt werden:

sfb-preparead11
Anpassen der Gruppe ‚CSAdministrator‘

Hier füge ich den Domänenadministrator als einziges Mitglied hinzu:

sfb-preparead12
Ändern der Gruppenmitgliedschaft in ‚CSAdministrator‘

Nach den TechNet-Anweisungen ist damit die Vorbereitung des Active Directory abgeschlossen. In der Praxis empfiehlt es sich den Administrator zusätzlich noch in die SfB-Gruppe ‚RTCUniversalServerAdmins‘ aufzunehmen, da ansonsten einige Berechtigungen fehlen:

sfb-preparead13
Anpassen der Gruppe ‚RTCUniversalServerAdmins‘

Auch hier passe ich die Gruppenmitgliedschaft nur durch das Hinzufügen des Domänenadministratorkontos an:

sfb-preparead14
Ändern der Gruppenmitgliedschaft in ‚RTCUniversalServerAdmins‘

Somit ist die Vorbereitung des Active Directories abgeschlossen und es folgt der offiziell  letzte Vorbereitungsteil: die Konfiguration der DNS-Einträge…

DNS-Einträge konfigurieren

Für den Betrieb einer SfB-Infrastruktur sind – in Abhängigkeit der Bereitstellungsform als reine interne oder kombinierte interne und externe Kommunikationslösung – eine Reihe von DNS-Einträgen notwendig. Diese stehen nicht nur im Zusammenhang mit dem Standort des Clients, sondern auch mit der verwendeten Version desselben. Die folgende Tabelle zeigt eine Übersicht der in meinem Szenario notwendigen DNS-Einträge. Eine weiterführende Konfiguration findet sich im TechNet hier oder hier (Stand: September 2016).

NameBeschreibungTyplöst auf nach
sfb.firma.localinterne Adresse des SfB-ServersHost (A)192.168.0.103
sip.firma.localAutodiscover-AdresseHost (A)192.168.0.103
_sipinternaltls._tcp.firma.local:5061Autodiscover-AdresseDienstidentifizierung (SRV)sfb.firma.local
admin.firma.localZugriff auf die SfB-SystemsteuerungHost (A)192.168.0.103
dialinZugriff auf SfB-EinwählkonferenzenHost (A)192.168.0.103
lyncdiscoverinternalAutodiscover-AdresseHost (A)192.168.0.103
meetZugriff auf SfB-KonferenzenHost (A)192.168.0.103

Ein wichtiges Thema ist dabei die Funktion Autodiscover, die clientseitig seit Lync 2013 zum Einsatz kommt. Clients versuchen den Kontakt zum SfB-Server automatisch anhand bestimmter DNS-Adressen herzustellen. Dies läuft dabei in der folgenden Reihenfolge ab (Mobile Clients und App-Clients beenden den Vorgang dabei jedoch bereits nach Schritt 2):

  1. lyncdiscoverinternal.<sip-Domäne des Benutzers>
  2. lyncdiscover.<sip-Domäne des Benutzers>
  3. _sipinternaltls._tcp.<sip-Domäne des Benutzers>
  4. _sipinternal._tcp.<sip-Domäne des Benutzers>
  5. _sip._tls.<sip-Domäne des Benutzers>
  6. sipinternal.<sip-Domäne des Benutzers>
  7. sip.<sip-Domäne des Benutzers>
  8. sipexternal.<sip-Domäne des Benutzers>

Für meine Zwecke habe ich dazu ein kleines PowerShell-Skript entworfen, welches mir die manuelle Konfiguration ein wenig erleichtert. Die foreach-Schleife scheint in diesem Kontext ein wenig überflüssig zu sein, allerdings kann ich dort je nach Kundenpräferenz mit Host (A)- oder CNAME (Alias)-Einträgen arbeiten und entsprechend schnell wechseln:

sfb-dns1
PowerShell-Skript zur Erstellung der SfB-DNS-Einträge

Im Anschluss zeigt sich meine DNS-Struktur im Bereich der Zone ‚firma.local‘ wie folgt:

sfb-dns2
DNS-Einträge in der Forward-Lookup-Zone

Der Dienstidentifizierungseintrag (SRV) zeigt sich im Bereich ‚_tcp.firma.local‘:

sfb-dns3
Dienstidentifizierungseintrag im Bereich ‚_tcp.<Domänenname>

Die Einträge sollte mit Hilfe des Befehls ’nslookup‘ im Anschluss überprüft werden. Sind die Eintragungen korrekt vorgenommen worden, ist dieser Teil der Konfiguration und somit die Vorbereitung einer SfB-Installation offiziell abgeschlossen. Da in diesem Szenario jedoch ein Standard Edition Server installiert werden soll, bedarf es eines weiteren Konfigurationsschritts. Die Ablage des zentralen Verwaltungsdienst – üblicherweise zentral durch einen Backend SQL-Server bereitgestellt – wird in diesem Szenario ebenfalls durch den SfB-Server gehosted. Daher muss ich den lokalen Server nun noch für diese Rolle vorbereiten…

Zentralen Verwaltungsdienst bereitstellen

Zur Bereitstellung des zentralen Verwaltungsdienstes greife ich erneut auf den SfB Bereitstellungs-Assistenten zu. Dort wähle ich die Funktion ‚Ersten Standard Edition-Server vorbereiten‘:

sfb-cms1
Vorbereitung des ersten Standard Edition Servers

Anschließend gilt es im Dialog lediglich auf ‚Weiter‘ zu klicken:

sfb-cms2
Einzelnen Standard Edition-Server vorbereiten

Ist der Vorgang abgeschlossen, besteht wie üblich die Möglichkeit das Installationsprotokoll anzuzeigen:

sfb-cms3
Abschluss der Vorbereitung

Nun sind in meinem Szenario alle vorbereitenden Schritt abgeschlossen und der erste SfB-Server kann in der Infrastruktur vorbereitet und bereitgestellt werden. Dies gibt des dann im Detail im zweiten Teil…

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.