Lync Server 2010 / 2013 – SQL Server updaten

Bei der Lync Server Installation wird ein lokaler SQL Server 2012 Express installiert. Da mittlerweile das Service Pack 4 für SQL Server 2012 erschienen ist, werde ich die Installation beschreiben.

SQL Server 2012 Service Pack 4 Download: https://www.microsoft.com/de-DE/download/details.aspx?id=56040 Es muss darauf geachtet werden, dass immer die englische Variante heruntergeladen wird, da auch diese automatisch mit dem Lync Server installiert wird, selbst wenn dieser auf einer anderen Sprache beruht.

Installation SQL Server Service Pack 4 auf Lync Server

Die Installation kann einfach über die GUI durchgeführt werden. Nachdem der Server auf Kompatibilität geprüft wurden, werden die SQL Server Express Instanzen angezeigt, die geupdatet werden können.

Nachdem diese ausgewählt wurden, verläuft der Rest automatisiert. Nach der Installation sollte ein vollständiger Neustart durchgeführt werden.

Lync Server 2010 / 2013 (Skype Server) – Installation Cumulative Updates

Microsoft veröffentlicht regelmäßig Cumulative Updates für den Lync Server 2010 / 2013 (beim Skype Server funktioniert dies aber ähnlich), die aber nicht per Windows Updates verteilt werden, sondern manuell installiert werden müssen. Die Installation erfordert allerdings Aufgaben, die manuell ausgeführt werden müssen.

Zum Zeitpunkt des Beitrags war das Cumulative Update Juli 2018 grade erschienen, welches hier heruntergeladen werden kann: https://support.microsoft.com/de-de/help/4295705/july-2018-cumulative-update-5-0-8308-1001-for-lync-server-2013-front

Installation Cumulative Update

Der heruntergeladene Installer „LyncServerUpdateInstaller.exe“ kann einfach per GUI ausgeführt werden oder mit folgenden Parametern, deren Bedeutungen sich aus den Namen erschließen:

/Silentmode 
/Silentmode /Forcereboot 
/Extractall

Die Installation mit GUI muss einfach nur mit „Install Updates“ bestätigt werden. Die Komponenten die ein Update benötigen, werden automatisch ermittelt.

Lync 2010 / 2013 Datenbanken

Die Datenbanken auf den Lync Servern müssen nach der Installation manuell aktualisiert werden. Ob dies nötig ist, verraten folgende Powershell CMDLets:

Test-CsDatabase -ConfiguredDatabases -SqlServerFqdn sqlserver.domain.local | FT DatabaseName, ExpectedVersion, Installedversion
Test-CsDatabase -CentralManagementDatabase | FT DatabaseName, ExpectedVersion, InstalledVersion

Hier sieht man, dass in dem Fall alle Datenbanken auf dem aktuellen Stand sind.

Install-CsDatabase -Update -LocalDatabases -Verbose
Install-CsDatabase -Update -CentralManagementDatabase -SqlServerFqdn sqlserver.domain.local -Verbose
Install-CsDatabase -Update -ConfiguredDatabases -SqlServerFqdn sqlserver.domain.local -Verbose
Enable-CsTopology

Um die Unified Communications Web API (UCWA) zu aktivieren, muss noch der Bootstrapper ausgeführt werden:

%ProgramFiles%\Microsoft Lync Server 2013\Deployment\Bootstrapper.exe

Exchange Server – EWSEditor

Heute möchte ich mal das Tool EWSEditor vorstellen. Der kleine (große) Helfer kann sehr nützlich sein, wenn man in einer Exchange-Umgebung mit EWS arbeitet, da man auf die Root-Struktur der jeweiligen Mailbox zugreifen kann. Man kann nicht nur sämtliche Elemente einsehen, sondern diese auch editieren. Außerdem stehen einige Tools zur Verfügung.

Das Tool EWSEditor ist unter folgendem Link zum offiziellem Download bereitgestellt: https://github.com/dseph/EwsEditor

Lync / Skype for Business automatisch starten per Gruppenrichtlinie

Unsere Nutzer beenden Skype for Business regelmäßig und manche sind sogar so schlau, dass sie den Autostart deaktivieren. Das wollen wir aber nicht, da sonst die Presence Funktion, die an die Telefonanlage angebunden ist, für den Benutzer nicht mehr sichtbar ist.

Leider findet sich in den offiziellen ADMX-Dateien zu Office 2013 / Office 2016 keine Konfiguration für den Autostart. Es gibt zwar einige inoffuielle Erweiterungen, die aber mit Vorsicht zu genießen sind. Alle die ich ausprobiert hatte, haben einfach einen Key im Ordner Run erzeugt, der aber keinen Bezug zur installierten x32/x64 Version hatte. Demnach wird der Key für x32 Systeme falsch gesetzt. Das Gleiche gilt für andere Office Versionen: Wenn z.B. Office 2016 installiert ist, stimmt der Pfad auch nicht mehr.

Beispiel Skype for Business mit Office 2016 in x64 installiert auf x64 Windows

"C:\Program Files\Microsoft Office\Office16\lync.exe" /fromrunkey

Beispiel Skype for Business mit Office 2016 in x32 installiert auf x64 Windows

"C:\Program Files(x86)\Microsoft Office\Office16\lync.exe" /fromrunkey

Beispiel Skype for Business mit Office 2013 in x64 installiert auf x64 Windows

"C:\Program Files\Microsoft Office\Office15\lync.exe" /fromrunkey

Beispiel Skype for Business mit Office 2013 in x32 installiert auf x64 Windows

"C:\Program Files(x86)\Microsoft Office\Office15\lync.exe" /fromrunkey

Aus diesem System kann man alle anderen Office, Lync, Skype for Business und x32 / x64 Varianten ableiten.

Gruppenrichtlinie erstellen

Nun kann man diesen Registry Schlüssel einfach per GPO erzeugen oder man benutzt folgende Variante: Benutzerkonfiguration -> Administrative Vorlagen -> System -> Anmelden -> Diese Programme bei der Benutzeranmeldung ausführen und benutzt dann den zuvor erstellten Pfad. Beispiel für Office 2013 in 32 bit installiert, auf einem 64 bit Windows: C:\Program Files(x86)\Microsoft Office\Office15\lync.exe

Blackberry Enterprise Server – Lync Server – Collaboration Probleme

Nach Maintanance Release 5 Für das aktuelle Service Pack der BES treten bei der Kopplung von Lync folgende Fehler auf:

<2012-09-07 14:21:44.513 MESZ>:[114]:<BBIM_S8KV004_BBIM_1>:<ERROR>:<LAYER = BBIM, [OCSC] BlackBerry OCSConnector will terminate...>
<2012-09-07 14:21:44.513 MESZ>:[112]:<BBIM_S8KV004_BBIM_1>:<ERROR>:<LAYER = BBIM, [OCSC] Error: No certificates were found matching the required criteria>
<2012-09-07 14:21:44.513 MESZ>:[111]:<BBIM_S8KV004_BBIM_1>:<ERROR>:<LAYER = BBIM, [OCSC] No certificates were found matching the required criteria>

Damit wird die Verbindung von BES und Lync 2010 komplett deaktiviert, da der Dienst beendet wird. Das kommt daher, dass die Verifizierung des Zertifikates geändert wurde. Das Zertifikat wird mit einem Microsoft Kommandozeilen Programm analysiert, welche die Informationen zu dem Zertifikat zurückliefert. Dieser Informationen sind aber nach der eingestellen Sprache variabel und damit nicht mehr stimmig.

Changelog mit MR5

As of BlackBerry Enterprise Server 5.0 SP3 MR5, there is a change in how the BlackBerry Collaboration Service retrieves the local certificate. It is no longer required to set the Friendly Name field to OCSConnector.
If the BlackBerry Collaboration Service has been installed for use with Microsoft Office Communications Server 2007 R2, the certificate check looks like this:
Retrieve all local certificates that have the:

  • Enhanced Key Usage attribute set to Server Authentication
  • Subject Name matches the Fully Qualified Domain Name of the local server

Lösung

Einfach das englische Language Pack (MUI) runterladen und installieren und die Systemsprache auf Englisch ändern. Danach funktioniert der Collaboration Dienst wieder wie gewohnt.

Das MUI kann direkt bei Microsoft runtergeladen werden: http://www.microsoft.com/en-us/download/details.aspx?id=1246

Active Directory – User Bilder – Outlook 2010 / Lync 2010 – Teil 2

Jetzt werde ich zeigen, wie man das zuvor aktivierte Feature auch benutzen kann, bzw. Bilder in das Active Directory laden kann.

Einschränkungen für Bilder

  • Bilder müssen kleiner als 10 KB sein
  • Bilder müssen im JPG oder GIF Format vorlieren

Bilder in das Active Directory laden

Dem Benutzer manuel.maliszewski wird das Bild „C:\Users\chilli\Desktop\manuel.maliszewski.jpg“ zugeordnet und hoch geladen.

Import-RecipientDataProperty -Identity manuel.maliszewski -Picture -FileData ([Byte[]]$(Get-Content -path "C:\Users\chilli\Desktop\manuel.maliszewski.jpg" -Encoding Byte -ReadCount 0))

Bilder hochladen automatisieren

Damit das folgendes Script funktioniert, müssen die Bilder im Verzeichnis „C:\Photos“ vorname.nachme.jpg heißen. Der Aufruf würde dann so aussehen: script.ps -all

param([Switch]$all, [String]$UserName)

#Default Values. Change them based on your environment.
$DefaultPhotoPath = 'C:\Photos'

Function CheckPhoto(){
 Write-Warning "Validating file(s).."
 Write-Host "File exists... " -nonewline
 If (Test-Path $PhotoPath)
 {
 Write-Host "[OK]" -ForeGroundColor Green
 Write-host "Photo size... " -nonewline
 $PhotoSize = Get-ChildItem $PhotoPath | select Length
 If ($PhotoSize.Length -le 10000) { Write-Host "[OK]" -ForeGroundColor Green } Else { Write-Host "[Fail]" -ForeGroundColor Red; exit }
 }
 Else
 {
 Write-Host "[Fail]" -ForeGroundColor Red
 Exit
 }
}

Function UploadAll(){
 ForEach ($TempFile in Get-ChildItem $DefaultPhotoPath | Where-Object { $_.Extension -eq ".jpg" } )
 {
  $TempUserName = $TempFile.Name.substring(0, $TempFile.Name.Length - 4)
  Write-Host $TempUserName -ForeGroundColor Yellow -NoNewLine
  Import-RecipientDataProperty -Identity $TempUserName -Picture -FileData ([Byte[]]$(Get-Content -path $TempFile.Fullname -Encoding Byte -ReadCount 0))
  Write-Host "[Done]" -ForeGroundColor Green
 }
}

If ( $all -eq $true)
 {
 Write-Warning " ## This action will upload all pictures of C:\Photos to the AD users."
 Write-Warning " ## All pictures must have the same name of the usernames"
 Write-Warning "Are you sure that you want upload all pictures to the users (Y/N)?"
 $Opt = Read-Host
 If ( $Opt -eq 'y' ) { UploadAll; } Else { Write-Host "No changes were made."; Exit }
 }
Else
 {
 $PhotoPath = $DefaultPhotoPath + $UserName + '.jpg'
 CheckPhoto;
 If ( $AbortMission -eq '$true' ) { Write-Error "Please, review the errors and try again." } Else { Import-RecipientDataProperty -Identity $UserName -Picture -FileData ([Byte[]]$(Get-Content -path $PhotoPath -Encoding Byte -ReadCount 0)) }
 }

Dateinamen anpassen

Um den Upload Prozess zu automatisieren, ist es sinnvoll alle Bilder in dem Syntax vorname.nachname.jpg zu speichern. Da das in der Regel nicht der Fall ist, kann mit einigen Tools Dateinamen umbenennen. Wir haben z.B. Bilder im Format Nachname-Vorname_s.jpg und müssen diese entsprechend anpassen. Dafür kann man z.B. Total Commander benutzen und mit dem Dateiumbennenungs-Feature arbeiten.

In dem Beispiel würde das dann so aussehen:

Suchen nach: (.*)\-(.*)\_s.jpg
Ersetzen mit: $2.$1.jpg

Links

Active Directory – User Bilder – Outlook 2010 / Lync 2010 – Teil 1

Um jedem Active Directory Benutzer ein Bild zuzuordnen, muss erstmal ein bisschen was konfiguriert werden.

Active Direcory

DLL regestrieren

Um die Bilder im Active Directory aktivieren zu können, muss zuerst eine DLL registriert werden.

Start -> Ausführen -> regsvr32 schmmgmt.dll

Active Directory Schema

Jetzt muss das Attribut des Bildes auf allen Globalen Katalog Server repliziert werden.

  • Im ADSI-Editor das User Objekt öffnen
  • Das Attribut thumbnailPhoto öffnen
  • Die Eigenschaft „Replicate this attribute to the Global Catalog“ aktivieren

Offline Adressbuch

Jetzt muss das Offline Adressbuch angepasst werden. Damit werden die Bilder dem OAB hinzugefügt und stehen damit dem Exchange Cache-Modus zur Verfügung.

Attribut löschen

$attributes = (Get-OfflineAddressBook).ConfiguredAttributes
$attributes.Remove("thumbnailphoto,Indicator")
Get-OfflineAddressBook | Set-OfflineAddressBook -ConfiguredAttributes $attributs

Neues Attribute hinzufügen

Nun kann das Attribut mit dem Bild dem OAB hinzugefügt werden.

$attributes.Add("thumbnailphoto,Value")
Get-OfflineAddressBook | Set-OfflineAddressBook -ConfiguredAttributes $attribute

Offline-Adressbuch regenerieren

Damit die Änderungen aktiviert werden, muss das OAB regeneriert werden.

Get-OfflineAddressBook | Update-OfflineAddressBook

Ergebnis in Outlook 2010 und Lync 2010

Blackberry Enterprise Server – Lync Integration

Lync 2010 kann mit dem Blackberry Enterprise Server verbunden werden. Somit kann man mit dem Blackberry über Lync schreiben und angeschrieben werden.

Blackberry Enterprise Server – Vorraussetzungen

  • Dot Net – Windows Feature installieren
  • C++ 2008 Runtime Installieren/li>
  • SQL Nativ Client 64 Bit Installieren/li>
  • Microsoft Unified Communications Managed API 2.0 Core Redist 64Bit Installieren/li>
  • Microsoft Unified Communications Managed API 2.0 Core Redist 64Bit – Update I Installieren/li>
  • Office Communications Server 2007 R2 Core Components Installieren

Blackberry Enterprise Server – Zertifikat

Der Blackberry Enterprise Server braucht ein Zertifikat, dass ihm die Verbindung zum Lync Server 2010 erlaubt. Das Zertifikat muss mit bestimmten Attributen angefordert werden, damit der BES die Zuordnung treffen kann. Das Zertifikat muss aus der Domänen CA kommen.

Eigenschaften

CN=S8K023.hypoport.local
DNS=S8K023.hypoport.local
Friendly-Name: OCSConnector

Zertifikat – Installation

Das angeforderte und ausgestellt Zertifikat von der Domänen CA muss in den lokalen Computer unter eigene Zertifikate importiert werden.

Activ Directory – Konfiguration

RTCUniversalAdmins – BESAdmin

BESAdmin der Gruppe RTCUniversalAdmins hinzufügen

Blackberry Enterprise Server – Collaboration Server

Blackberry Enterprise Server Collaboration muss installiert sein, damit Lync mit dem BES verknüpft werden kann.

Blackberry Enterprise Server Collaboration – Konfiguration

Instant Messaging Server-Pool: S8K023.hypoport.local
Blackberry Collaboration Service FQDN: S8KV004.hypoport.local
Protokoll: TLS
Port: 65061

Blackberry Enterise Server – Lync App verteilen

Damit jedes Blackberry automatisch den Enterprise Messenger für Lync erhält, muss dieser per Software-Richtlinie an alle Blackberrys verteilt werden.
Blackberry Enterprise Server – Enterprise Messenger

  • Enterprise Messenger als Anwendung importieren
  • Softwarekonfigurationsgruppe anpassen