12. Dezember 2011

Lync 2010 für Windows Phone verfügbar

Im Microsoft Marketplace taucht seit kurzem die lang erwartete Mobilvariante des Lync Clients auf. Vielen Dank an meinen Kollegen Marco Scheel aka GeekDotNet für den Hinweis. Die Versionen für Android und iOS werden in Kürze folgen und sind bereits im Freigabeprozess.

http://www.windowsphone.com/de-DE/apps/9ce93e51-5b35-e011-854c-00237de2db9e

Bevor man sich aber mit dem neuen Client arbeiten kann, sind erst noch ein paar Voraussetzungen zu erfüllen.

  • Die Lync Server müssen das letzte kumulative Update vom November 2012 haben.
  • Die Updates für Lync Server 2010 Mobility Service und Microsoft Lync Server 2010 Autodiscover Service müssen installiert und konfiguriert sein.
  • Es werden neue DNS-Records für lyncdiscover.<sipdomain> und lyncdiscoverinternal.<sipdomain> benötigt.
  • Eventuell benötigt man für die externen Webservices auf dem Reverse Proxy ein neues Zertifikat, wenn man den Komfort des Autodiscover Service nutzen will und kein Wildcard-Zertifikat einsetzt.
  • Auf den internen Lync Servern müssen die Webservice Zertifikate erneuert werden um den Autodiscover Service unterstützen zu können.

In Kürze wird es eine Übersicht zur Installation des Mobility Service hier geben.

21. November 2011

Lync Telefon-Updates CU4

Passen zu den CU4 Update sind auch die Firmwares der Lync-Telefone aktualisiert worden. Dieses mal sind auch die neuen HP Lync Telefone dabei!
Produkt Artikel Download Link Version
Lync 2010 Phone Edition (Polycom CX700 and LG-Nortel IP Phone 8540) 2636066 MS download 4.0.7577.4047
Lync 2010 Phone Edition (Aastra 6721ip and Aastra 6725ip) 2636068 MS download 4.0.7577.4047
Lync 2010 Phone Edition (PolycomCX500, Polycom CX600 and Polycom CX3000) 2636067 MS download 4.0.7577.4047
Lync 2010 Phone Edition (HP 4110 and HP 4120) 2636069 MS download 4.0.7577.4047

20. November 2011

Neue Lync Hotfixes CU4

Microsoft hat für Lync neue Updates herausgegeben. Es handelt sich um neue kumulative Updates (CU4). Diese Updates könnte man eigentlich auch als Service Pack bezeichnen, da einige Veränderungen in den Lync Funktionalitäten vorgenommen wurden. So ist es nun möglich  Dateiübertragungen mit föderierten Kontakten zu unterbinden und dieses Update stellt die benötigten Voraussetzungen für die neuen Lync Mobile Clients zur Verfügung.
Produkt Artikel Download Link Version
Lync Server 2493736 MS download 4.0.7577.183
Lync 2010 (64-Bit) 2514982 MS download 4.0.7577.4051
Lync 2010 (32-Bit) 2514982 MS download 4.0.7577.4051
Lync 2010 Group Chat Server 2514984 MS download 4.0.7577.4051
Lync 2010 Group Chat Client 2636065 MS download 4.0.7577.4051

16. November 2011

Roundtable (CX5000) Update

Polycom hat kürzlich ein neues Update für das CX5000 veröffentlich, das die Audioqualität in bestimmten Situationen verbessern soll.

25. Oktober 2011

Neue UC Symbole für Visio (Stencils)

Auf der schweizer Internetseite des Microsoft UC Teams sind neue Visio Stencils veröffentlicht worden. Hier gibt es jetzt auch Vorlagen für Aastra, Polycom und Radvision. Ein Gesamtpaket (38 MB) kann hier direkt heruntergeladen werden.

image

Die anderen Stencils für Microsofts UC Familie gibt es hier:

Lync Server 2010 Visio Stencil
Office Communications Server 2007 and 2007 R2 Visio Stencils
Microsoft Exchange 2010 Visio Stencil

25. Juli 2011

Neue Lync Hotfixes

Microsoft hat für den Lync Client neue Updates herausgegeben. Diese beheben Probleme mit Presence und Lync Telefonen. Es handelt sich um kumulative Updates.

 

Produkt Artikel Download Link
Lync 2010 (64 Bit)

2571543

MS download
Lync 2010 (32 Bit)

2571543

MS download
     

16. Juni 2011

RoundTable Firmware Upgrade

Microsoft hat eine neue Firmware für das RoundTable herausgegeben:

http://support.microsoft.com/kb/2559123 

Der Update erfolgt durch einen PC der an das RT angeschlossen wird und die Firmware via USB mit dem RTManage.exe Tool überträgt, oder via Software Update Service des OCS Serves. Details zum Aktualisieren des Roundtable findet man hier.

Folgende Probleme werden dadurch behoben:

945609  A RoundTable device may unexpectedly stop processing audio

945610  The power frequency of the VDSP is not reported in a RoundTable log file

945611  The firmware on a RoundTable device may incorrectly resolve an error code when the image on the RoundTable device is updated

945619  Exception when you perform stress test by using Microsoft RoundTable

945664  A computer may not recognize Microsoft RoundTable

945665  The firmware in Microsoft RoundTable may not correctly wake up the base when you plug in a USB dial pad

945666  Video may flicker when you use Microsoft RoundTable

945667  When you restart Microsoft RoundTable after you perform an Enterprise Image Update, the computer may not restart correctly

945668  The time setting in Microsoft RoundTable is incorrect

945670  An entry is deleted when you release the Delete button instead of when you press the Delete button on the Microsoft RoundTable firmware device

945671  Microsoft RoundTable does not clear previously-entered digits when you select a telephone number from the speed dial list

945672 When you use Microsoft RoundTable to record multichannel audio, the audio file has lots of echo

942334  Description of the Microsoft RoundTable firmware hotfix package: September 14, 2007

10. Juni 2011

Virtuelle Testumgebung für Lync

Microsoft hat gestern eine virtuelle Testumgebung für Microsoft Lync als Download zur Verfügung gestellt. Die Umgebung beinhaltet alle wichtigen Komponenten um Lync einmal komplett und ohne Einfluss auf die eigene Infrastruktur zu testen.

Auf Basis von Hyper-V VMs kann man so das Zusammenspiel von Lync, Exchange und SharePoint ausprobieren.

VHD Test Drive - Lync Server 2010 VHD

Neue OCS 2007 R2 Hotfixes

 

Microsoft hat für Office Communication Server 2007 R2 Group Chat und den Communicator herausgegeben. Es handelt sich um kumulative Updates.

Produkt Artikel Download Link
Office Communicator 2007 R2 2549042

MS download

Office Communications Server 2007 R2
Group Chat Server
2549044 MS download
Office Communications Server 2007 R2
Group Chat-Client
2549043 MS download
Office Communications Server 2007 R2
Group Chat Admin Tool
2502323 MS download
Microsoft Office Communications Server 2007 R2 Group Chat Add ins API Dokumentation 2549044 MS download
New Features in the Update for Office Communications Server 2007 R2 Group Chat 2549044 MS download

8. Juni 2011

Powershell Script zum Backup eines Lync Servers

Wie bereits letzte Woche angekündigt habe ich nun endlich mein Backup Script für Lync in der Version 1.0 fertiggestellt.

Es sichert alle wichtigen Einstellungen und Dateien um im Katastrophenfall auch einen Lync Server wiederherstellen zu können.

Das Script steht hier zum Download bereit.

Damit das Script auf dem Lync Server laufen kann, muss evtl. die Execution Policy for Scripte geändert werden:

Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Code des Lync Backup Scriptes.


###################################################################################
## Script Version: 1.0
###################################################################################
## This Scripts collects important data from your Lync environment and
## stores it in files to a Backup path. With this data you should be able
## to recover from a desaster issue in your lync environment.
## Currently this script should be run on at every Frontend Server.
## I do not warrant any functionalty or completeness on this script. 
## You run it on your own risk and it does not replace proper backups 
## and system management!
## I do not collect data for the following roles:
## Group Chat, Monitoring, Archiving, XMPP, EDGE
## 
## Credits to Adrian, Dough, Kevin, Nick, Scott, Vincent
## for helping me and inspiring me on this script
##
## ChangeLog: -
##
## Open Topics:
## - powershell remoting to other Lync servers
## - Edge Server Backup (Network, Routes, Host file, Certificates, RootCertificates)
####################################################################################
 
#Please specify your backup folder here
$BackupPath = "C:\Backup"
 
#Specify if you want to export Certificates with private Keys, 
#needs Admin Rights and may be a security risk!
$ExportCert = $true
# Passphrase Secret for exported Certificate PFX
$SecretForPFX = "geheim"
 
#-----------------------------------------------------------------------------
 
# Funktion to test if Modules are abvailable
Function Get-MyModule { 
    Param([string]$name) 
    if(-not(Get-Module -name $name)) 
    { if(Get-Module -ListAvailable | Where-Object { $_.name -eq $name }) 
    { Import-Module -Name $name 
    Write-Host "`nModule for $name was loaded!" } 
    else { Write-Host -BackgroundColor DarkRed "`nModule for $name was not loaded!" }
    } # end if not module 
    else {Write-Host "`nModule for $name was already loaded!" } 
    }
Get-Mymodule -name "Lync"
 
#Build up Unique Foldername and create required path
$filepath = $BackupPath + "\{0:yyyyMMdd-HHmm}\" -f (Get-Date)
If(!(Test-Path -Path $BackupPath)) {New-Item $BackupPath -Type directory |Out-Null}
if(!(Test-Path -Path $filepath)) {New-Item $filepath -Type directory|Out-Null}
 
#Get basic topology data
Write-Host Exporting Basic Topology Data
Export-CSconfiguration -Force:$True -AsBytes | Set-Content -Encoding Byte ($filepath + "CSConfiguration.zip")
Export-CsLisConfiguration -AsBytes | Set-Content -Encoding Byte ($filepath + "CSLISConfiguration.zip")
Get-CsService |Export-Csv ($filepath + "Get-CsService.csv")
Get-CSTopology -asxml | out-file ($filepath + "CurrentTopology.tbxml")
(Get-CSSimpleUrlConfiguration).SimpleUrl | out-file ($filepath + "SimpleURLs.txt")
 
#Export User Data
Write-Host Exporting Users
Get-CsUser |Export-Csv ($filepath + "user.csv")
 
#Backup Filestores in Oganization including encrypted Meeting Data
$FileStores = Get-CsService -Filestore
foreach ($FileStore in $FileStores){
    Write-host Copying File from $FileStore.UncPath 
    #icacls $($FileStore.UncPath)\* /save ($filepath + "FileStore-ACLs.txt") /T
    robocopy $($FileStore.UncPath) $($filepath + $FileStore.ServiceId + "\") /NFL /NDL /NP /E /SEC /DCOPY:T /XF Meeting.Active
}
 
#Export Certificates w/ private Keys if exportable and requested above
get-cscertificate | Out-File ($filepath + "InstalledCertificates.txt")
If ($ExportCert) {
    dir cert:\LocalMachine\my |Where-Object { $_.hasPrivateKey } |Foreach-Object { [system.IO.file]::WriteAllBytes(    "$filepath\$($_.FriendlyName)-$($_.ThumbPrint).pfx",($_.Export('PFX', $SecretForPFX)))}
    Write-Host -BackgroundColor DarkGreen Certificates with PrivateKey were exported!
}
 
#Export ResponseGroup Configuration
$ApplicationServers = Get-CsService -ApplicationServer
If (Test-Path "C:\Program Files\Microsoft Lync Server 2010\ResKit\RgsImportExport.ps1") {
    Import-Module "C:\Program Files\Microsoft Lync Server 2010\ResKit\RgsImportExport.ps1"
    foreach ($ApplicationServer in $ApplicationServers){
    Write-Host Exporting ResponseGroup Configuration Data from $($ApplicationServer.Identity)
    Export-CsRgsConfiguration -Source $($ApplicationServer.Identity) -FileName ($filepath + $ApplicationServer.PoolFqdn +"-CsRgsConfiguration.zip") 
    }
}
 
#Export Conference Directories and Users Contacts and premissions
$ApplicationDatabases = Get-CsService -ApplicationDatabase
foreach ($ApplicationDatabase in $ApplicationDatabases){
Write-Host "Exporting User Data (Contacts, Conference) from" + $($ApplicationDatabase.Identity)
& 'C:\Program Files\Common Files\Microsoft Lync Server 2010\Support\DBImpExp.exe' /hrxmlfile:c:\file.xml /sqlserver:$($ApplicationDatabase.PoolFqdn + "\" +  $ApplicationDatabase.SqlInstanceName)
}
 
#Backup IIS Settings
Write-Host Running IIS Backup:
Invoke-Expression "C:\Windows\System32\inetsrv\appcmd.exe add backup"
$IISBackupPath = $($filepath + "IIS-Backup\")
New-Item $IISBackupPath -Type directory |Out-Null
foreach ($folder in Get-ChildItem C:\Windows\system32\inetsrv\backup) {
    #copy Backup from within the last 10 minutes
    if ($folder.CreationTime -gt ($(Get-Date).AddMinutes(-10))){
        Copy-Item $folder.FullName -destination $IISBackupPath -Recurse -ErrorAction SilentlyContinue
    }
}
 
#Backup some Network Configuration data from local server 
Write-Host "Backup some Network Configuration data from local server (hosts, Network Config)"
&ipconfig /all > $($filepath + "network-Settings.txt")
&route print >> $($filepath + "network-Settings.txt")
copy-item C:\Windows\System32\drivers\etc\hosts -destination ($filepath + "etc-hosts-file.txt") -ErrorAction SilentlyContinue
 
#SQL Backups on XDS,LIS,RTC,RTCAB,RGCCONFIG from RTC Instance
$SQLBackupFile = $($filepath + "Backup-LYNC-DBS.sql")
$SQLBackupPath = $($filepath + "SQL-Backup\")
New-Item $SQLBackupPath -Type directory |Out-Null
#First, build a Backup Script File
$DBs = "XDS", "LIS", "RTC", "RTCAB", "RGSCONFIG"
foreach ($DB in $DBs){
    $sqlstatement = "BACKUP DATABASE " + $DB + " TO DISK = '" + $SQLBackupPath + $DB + ".bak';"
    Add-Content -Path $sqlbackupfile  "$sqlstatement`n"
}
#Run SQL Backup with SQLCMD Tool
$CMSDatabase = Get-CsService -CentralManagementDatabase
Write-Host Backing SQL from $($CMSDatabase.PoolFqdn + "\" +  $CMSDatabase.SqlInstanceName)
& 'C:\Program Files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE' -S $($CMSDatabase.PoolFqdn + "\" +  $CMSDatabase.SqlInstanceName) -i $sqlbackupfile
Remove-Item -Path $sqlbackupfile
Write-Host "`nBackup run has finished! "
Write-Host "You may backup your files from $filepath to tape!"

3. Juni 2011

Lync Ressource Kit Buch

Nach dem in der Vergangenheit einzelne Kapitel bereits veröffentlicht wurden, ist nun das gesamte Buch als technische Referenz für Microsoft Lync verfügbar.

Seit gestern ist es von dem Technet downloadbar.

Jeder der etwas tiefer in die Funktionalitäten und Zusammenhänge von Lync einsteigen will, sollte sich dieses Werk genauer ansehen.

1. Juni 2011

Backup eines Lync Servers

Der Lync Server speichert einen Großteil seiner Einstellungen und Konfigurationen  in seinen Datenbanken auf dem SQL Server. Es werden aber auch Daten als Dateien im Dateisystem und dem Betriebssystem abgelegt.  Dieser Artikel wird sich damit beschäftigen welche wichtige Daten man regelmäßig sichern sollte um sie in einem Katastrophenfall parat zu haben. Die Group Chat Rolle wird hier nicht berücksichtigt!

Datenbanken

Fangen wir mit den Datenbanken auf dem SQL Server an:

image

Wichtig sind hier natürlich alle Topologieinformationen aus dem CMS. Diese sind in der XDS.mdf Datenbank gespeichert. Der “Topology Builder” schreibt seine Daten in diese Datenbank, die dann auf alle anderen Server verteilt wird. Als zweites müssen die Daten aus der RGSConfig.mdf Datebank gesichert werden. Hier sind alle Einstellungen zu Response Groups Agents, den Warteschlangen (queues) und den Workflows gespeichert.

Als dritte Datenbank müssen wir ggf. die Lis.mdf Datenbank sichern. Hierin sind die “Location Information”-Daten des Lync Servers für die E9-1-1 Notruffunktionalitäten und die Netzwerkinformationen gespeichert. Wer diese E9-1-1 nicht nutzt und keine IP-Netzwerkdaten in Lync Importiert hat, braucht diese Datenbank nicht zu sichern.

Diese drei Datenbanken liegen bei einem Standard Edition Server lokal mit auf dem Server in der RTC Instanz der SQL Express Datenbank. Hier ist es einfach den Ort zu bestimmen. In einem großen Umfeld, in dem auch Enterprise Edition Server zum Einsatz kommen, werden separate SQL Server verwendet. Der erste Lync Server der installiert wurde, bekommt somit auch die CMS Rolle zugesprochen, und speichert diese in seinem zugeordneten SQL Server.

Datenbanken die den Suffix dyn im Namen tragen, enthalten nur dynamische Informationen, die nicht kritisch sind und nicht gesichert werden brauchen aber können.

Wenn man herausfinden möchte, wer aktuell die CMS Rolle verwaltet und auf welchem Server die Datenbanken gespeichert sind, kann dies mit der Lync Powershell abfragen:

Get-CsService -CentralManagement

Identity : CentralManagement:fe1.uccloud.net
FileStore : FileStore:fe1.uccloud.net
CentralManagementDatabase : CentralManagementDatabase:fe1.uccloud.net
DependentServiceList : {}
ServiceId : 1-CentralMgmt-1
SiteId : Site:MainSiteOffenbach
PoolFqdn : fe1.uccloud.net
Version : 5
Role : CentralManagement




Hier sieht man die Central Management Rolle wird vom Server fe1.ucclooud.net verwaltet. Eine andere Installation hat folgende Daten:

Get-CsService -CentralManagement

Identity : CentralManagement:eepool01.testlab.net
FileStore : FileStore:filesrv52.testlab.net
CentralManagementDatabase : CentralManagementDatabase:sqlclu12.testlab.net
DependentServiceList : {}
ServiceId : 1-CentralMgmt-1
SiteId : Site:MainSiteFrankfurt
PoolFqdn : eepool01.testlab.net
Version : 5
Role : CentralManagement



Her sieht man besser, dass die SQL Datenbank auf einem eigenen SQL Server (sqlclu12.testlab.net) gespeichert ist. Wenn man wissen will, ob die Datenbank in einer eigenen Instanz des SQL Serves läuft, benötigen wir ein weiteres Powershell cmdlet:

Get-CsConfigurationStoreLocation
sqlclu12.testlab.net\LYNC



Hier sehen wir also das die CMS Datenbank auf dem Server sqlclu12 in einer eigenen SQL-Instanz mit Namen LYNC läuft.


Diese Instanz sollte auf unbedingt in das SQL-Backup aufgenommen werden und regelmäßig gesichert werden.


Wird auch noch ein Monitoring oder Archiving Server eingesetzt, sollten auch diese Daten gesichert werden. Hier kann man einfach auf ein SQL Backup setzen und die Daten wegsichern. Für den Betrieb von Lync sind diese Daten nicht notwendig und können im Katastrophenfall als letztes wiederhergestellt werden.


Dateifreigaben (Fileshares)


Lync speichert weitere Einstellungen und Daten in seinem FilleStore. Auch hier gibt uns ein Powershell cmdlet mehr Details preis.

PS C:\> Get-CsService -FileStore

Identity : FileStore:fe1.uccloud.net
ShareName : Lync
UncPath : \\fe1.uccloud.net\Lync
DependentServiceList : {WebServer:fe1.uccloud.net, ConferencingServer:fe1.ucclo
ud.net, ApplicationServer:fe1.uccloud.net, CentralManage
ment:fe1.uccloud.net}
ServiceId : 1-FileStore-1
SiteId : Site:MainSiteOffenbach
PoolFqdn : fe1.uccloud.net
Version : 5
Role : FileStore


Identity : FileStore:file.uccloud.net
ShareName : lync
UncPath : \\file.uccloud.net\lync
DependentServiceList : {WebServer:frapool01.uccloud.net, ConferencingServer:fra
pool01.uccloud.net, ApplicationServer:frapool01.uccloud.
net}
ServiceId : 3-FileStore-1
SiteId : Site:MainSiteFrankfurt
PoolFqdn : file.uccloud.net
Version : 5
Role : FileStore



Des existieren hier also zwei Lync Server mit eigenen File Shares: “\\file.uccloud.net\lync” und “\\fe1.uccloud.net\Lync“. Beide Shares sollten in die Datensicherung auf Dateiebene aufgenommen werden! Alternativ kann man sie auch per Robocopy und den Optionen “/E /SEC /DCOPY:T /XF Meeting.Active”  an einen anderen Ort sichern.


Betriebssystem


Lync nutzt stark Komponenten des Betriebssystems. So ist es naheliegend auch hier alle wichtigen OS Einstellungen zu sichern. Hierrunter fallen:



  • Netzwerkkonfiguration (IP Adressen, Routen, hosts Datei etc.)

  • IIS Einstellungen

  • Zertifikate

Lync Einstellungen und Applikationen


Lync selbst liefert ein eigenes Powershell cmdlet mit, dass alle Topologiedaten, Richtlinien (Policies) und weitere Einstellungen in eine XML Datei sichert.

Export-CsConfiguration –FileName "C:\Backup\Backup.zip"





Für die Location Information Daten gibt es ein ähnliches cmdlet:

Export-CsLisConfiguration -FileName "C:\Backup\E911Config.zip"



Für die “Response Group”-Einstellungen hat Microsoft im Lync Resource Kit ein separates cmdlet zur Verfügung gestellt. Man muss es importieren und kann es dann in Powershell benutzen.

Import-Module .\RgsImportExport.ps1
Export-CsRgsConfiguration ApplicationServer:frapool01.uccloud.net -FileName "C:\Backup\RgsConfig.zip"



Benutzerdaten


Die Benutzerdaten, wie z.B. Kontakte und geplante Konferenzen sind in den Backend-Datenbanken der Lync Server gespeichert. Auch hier gibt es wieder ein Resource Kit Tool.

C:\Program Files\Common Files\Microsoft Lync Server 2010\Support\Dbimpexp.exe /hrxmlfile:D:\BackupUser.xml /sqlserver:sql01.uccloud.net\rtc



Alle diese einzelnen Schritte (ohne das SQL Backup)  habe ich in einem PowerShell Script zusammengefasst, das ich in einem separaten Post veröffentlichen werde.