Skype for Business – Update Installer – There were errors during the installation process.

I was recently installing the latest Skype4B CU and came across a strange issue where one of the updates would not install. The error message I received was: “Skype for Business Server 2015 Update Installer: There were errors during the installation process. For details, see the log file atC:\Users\chris\AppData\Local\Temp\Skype_patchinstallerlog-FE01-[2016-08-01][15-28-31].txt” Checking the log files indicated an error 1603. A bit of googling led me to various blog posts advising to ensure all MMCs were closed, checking there was enough disk space on the Front End and also running the Deployment Wizard again. None of these solutions worked for me, I tried running the installer from an elevated prompt and also tried installing server.msp manually. ...

2 August 2016 · 3 min · Chris Hayward

How To: Upgrade Office Web Apps 2013 to Office Online Server 2016

On your current farm run “Get-OfficeWebAppsFarm”. Make a note of the InternalURL, ExternalURL, CertificateName and Machines (Note you may only have the ExternalURL configured). E.g. InternalURL: https://webapps.mycompany.local ExternalURL: https://webapps.mycompany.com CertificateName: My WAC Certificate Machines: WebApps01, WebApps02 Run “Get-OfficeWebAppsHost”. Make a note of the allowList. E.g. allowList: mycompany.com, mycompany.local On each Office Web Apps 2013 server: Uninstall “Microsoft Office Web Apps Server 2013” Install Windows Identity Foundation 3.5 (Add Roles and Features > Features) Install the Update for Universal C Runtime in Windows KB (https://support.microsoft.com/en-gb/kb/2999226) Install Microsoft Office Online Server 2016 Using the information you gathered from Get-OfficeWebAppsFarm, on the first machine in the farm (WebApps01) run New-OfficeWebAppsFarm, E.g. New-OfficeWebAppsFarm -InternalURL https://webapps.mycompany.local -ExternalURL https://webapps.mycompany.com -CertificateName “My WAC Certificate” ...

17 June 2016 · 1 min · Chris Hayward

Skype for Business – Office Online Server ISO Download

Microsoft recently released Office Online Server to replace Office Web Apps. OOS allows you to use Word, Excel, PowerPoint and OneNote from your browser. Lync and Skype for Business utilise OOS for enhanced PowerPoint sharing. All Microsoft articles advise to download Office Online Server from the Volume Licensing Service Center, however it’s quite difficult to find. Try searching for “Office”, “Office Online”, “Online” and you won’t find an “Office Online Server” download. That’s because it’s actually part of Office Professional Plus 2016. ...

14 June 2016 · 1 min · Chris Hayward

Skype for Business – Hide Response Group from Address Book

Back in 2012 I wrote a post on how to hide Response Groups from the Address Book in Lync 2010 using ADSI Edit. The same process also applied to Lync 2013. Original Article: /2012/10/16/hiding-response-groups-from-address-book-lync-server-2010/ The original article involved finding the Response Group AD Object manually using ADSI Edit and changing the msExchHideFromAddressLists (Exchange property) to TRUE. You could then run Update-CSAddressbook and Lync clients would pickup the change within due course. ...

15 April 2016 · 1 min · Chris Hayward

Lync 2013 – TLS Negotiation took too long to complete

I recently came across an issue with Lync 2013 where SCOM (System Center Operations Manager) was periodically reporting errors with the Conferencing Attendant and IM MCU. The SCOM errors were as follows: Alert: [LYNC] Conferencing Attendant failed to join the conference. Source: LS Conferencing Auto Attendant Component [F05.DOMAIN.LOCAL] Path: FE05.DOMAIN.LOCAL Last modified by: System Last modified time: 4/11/2016 11:01:50 AM Alert description: Conferencing Attendant failed to join the conference. Microsoft.Rtc.Signaling.ConnectionFailureException:Operation failed because the network connection was not available. ---> Microsoft.Rtc.Internal.Sip.TLSException: TLS Negotiation took too long to complete Alert: [LYNC] Lync Server IM MCU failed to connect to the SIP Front End. Source: LS Instant Message Conferencing Component [FE03.DOMAIN.LOCAL] Path: FE03.DOMAIN.LOCAL Last modified by: System Last modified time: 4/11/2016 11:35:24 AM Alert description: Lync Server IM MCU failed to connect to the SIP Front End. Local Machine name: FE03.DOMAIN.LOCAL FE hostname: FE06.DOMAIN.LOCAL IP address: 10.10.10.13:5061 Message: TLS Negotiation took too long to complete Strangely, no users had reported issues and initial thoughts were performance problems with the Lync Front End servers. This is quite a large Pool with 7 Front Ends and each Front End would periodically generate the above errors in SCOM. All servers were running the latest CU and all certificates were valid for 2 years. ...

13 April 2016 · 4 min · Chris Hayward

Skype for Business – Get QoS Configuration with PowerShell

When configuring QoS (Quality of Service) in Microsoft Lync / Skype for Business you need to modify the media port ranges for various Services and Configuration using PowerShell. Pat Richard has made a brilliant QoS calculator for Lync/Skype for Business here http://www.ehloworld.com/2821. The calculator will provide you with the PowerShell commands required to configure QoS port ranges and the GPO’s. The calculator also gives you the commands to verify the Configuration (which this post is based on). ...

26 January 2016 · 3 min · Chris Hayward

Skype for Business – Director Pool in DMZ (Secure Environment)

I was recently working for a customer where their security policy prohibited traffic from the internet terminating on servers within the LAN. Skype for Business (Including previous versions Lync and OCS) uses a Reverse Proxy to terminate web requests within the DMZ and re-write the requests to the Front End Pool(s) within the LAN. The request is received on TCP/443 (HTTPS) and sent to the Front End VIP on TCP/4443. In the case of Standard Edition servers the request would be direct rather than to the Hardware Load Balancer. See diagram below: ...

18 December 2015 · 3 min · Chris Hayward

Skype for Business 2015 – Enable User "Active Directory operation failed"

When enabling users for Skype for Business you may encounter the following error: “Active Directory operation failed on “Domain Controller”. You cannot retry this operation: “Insufficient access rights to perform the operation” I first blogged about this in 2011 for Microsoft Lync 2010 when moving users from an OCS 2007 R2 to Lync 2010 pool: /2011/03/28/lync-2010-move-user-1-errors-failed-while-updating-destination-pool/ This problem can occur when: Enabling a user Moving a user between pools Changing any of the users Skype for Business properties, including policies You verify that your administrative account is a member of CsAdministrator and you may also be a member of RTCUniversalServerAdmins and Domain Admins. ...

17 December 2015 · 2 min · Chris Hayward

Skype for Business 2015 – Edge Servers not discovered by SCOM SfB Management Pack

I recently came across an issue where the SCOM (System Center Operations Manager) Agent was installed on all servers in a customers Skype for Business (SfB) Edge pool but they were not appearing in the SfB Management Pack (Skype for Business 2015 Server Health). All Edge servers were showing as “Agent Managed” in SCOM and appeared in “Discovered Inventory” as Critical. Using Health Explorer on each Edge server showed the following: ...

10 December 2015 · 3 min · Chris Hayward

Skype for Business 2015 – Automated Backup Script

A few years ago I created a Lync 2013 backup script that would backup data from all servers in the Topology. Lync 2013 Automated Backup Script This script also works with Skype for Business 2015 but it specifically backed up Response Group and User data by identifying the pool version. The script below has been updated and tested on SfB 2015. <# Author: Chris Hayward, chrishayward.co.uk Purpose: Centralised script to backup Lync 2013 and SfB 2015 Version: 1.2 Changes: DATE - Change 06/11/2013 - Release 1.1 - Fixed code that deletes old backup directories (CH) 27/11/2015 - 1.2 Updated for Skype for Business (version -gt 7 rather than -eq 6) #> Import-Module Lync # Script Config $BackupPath = "D:\_Backup\" # Backup Path $BackupRetention = -14 # Number of days to keep old backups (Requires a "-", e.g. two weeks would be -14, 5 days would be -5) # *** Start of script *** # Delete old backup directories Get-ChildItem $BackupPath |? {$_.psiscontainer -and $_.lastwritetime -le (get-date).adddays($BackupRetention)} |% {remove-item $_.FullName -recurse -force} # Get date in day-month-year format and set backup path $DateStamp = Get-Date -Format dd-MM-yy $BackupPath = $BackupPath + "LyncBackup_" + $DateStamp +"\" New-Item $BackupPath -type directory -force # Backup the Lync Central Management Store $CMSBackupFile = $BackupPath + "Lync-CMS-Config.zip" Export-CsConfiguration -FileName $CMSBackupFile # Backup Location Information Service data $LISBackupFile = $BackupPath + "Lync-LIS-Config.zip" Export-CsLisConfiguration -FileName $LISBackupFile # Backup User Data (Lync 2013 & SfB 2015 servers only) $UserServer = Get-CsService -UserServer | Where-Object {$_.version -ge 6} ForEach ($Service in $UserServer) { $UserDataBackupFile = $BackupPath + "Lync-User-Config_" + $($Service.PoolFqdn) + ".zip" Export-CsUserData -PoolFQDN $($Service.PoolFqdn) -FileName $UserDataBackupFile } # Backup Response Group Configuration (Lync 2013 & SfB 2015 servers only) $ApplicationServer = Get-CsService -ApplicationServer | Where-Object {$_.version -ge 6} ForEach ($Service in $ApplicationServer) { $RGSBackupFile = $BackupPath + "Lync-RGS-Config_" + $($Service.PoolFqdn) + ".zip" Export-CsRgsConfiguration -Source ApplicationServer:$($Service.PoolFqdn) -FileName $RGSBackupFile } # Backup Voice Configuration $BackupPath = $BackupPath + "Lync-Voice-Config\" New-Item $BackupPath -type directory -force Get-CsDialPlan | Export-Clixml -path $BackupPath\DialPlan.xml Get-CsVoicePolicy | Export-Clixml -path $BackupPath\VoicePolicy.xml Get-CsVoiceRoute | Export-Clixml -path $BackupPath\VoiceRoute.xml Get-CsPstnUsage | Export-Clixml -path $BackupPath\PSTNUsage.xml Get-CsVoiceConfiguration | Export-Clixml -path $BackupPath\VoiceConfiguration.xml Get-CsTrunkConfiguration | Export-Clixml -path $BackupPath\TrunkConfiguration.xml To run the script as a scheduled task: ...

27 November 2015 · 2 min · Chris Hayward