• Lync Server 2013 December 2014 Cumulative Update, Lync Web App & Google Chrome

    Update 12/27/14 - Added additional information on the change to Lync Web App.
    Update 12/17/14 - Added link to KB article.

    After applying the Lync Server 2013 December 2014 Cumulative Update, if a user using Google Chrome tries to use the Lync Web App to join a Lync meeting, they will get the following message:

    Google Chrome no longer supports Lync Web App

    Google is making multiple changes to the Chrome browser which affect the plug-in used by the Lync Web App (LWA) to provide a rich meeting experience including audio, video, and content sharing from the browser.  These changes include discontinuing 32-bit Chrome support for Mac, and discontinuing support for the so-called "Netscape Plug-in API" (or NPAPI) commonly used by browser plugins.  Microsoft is making changes to the Lync Web App to reduce the impact of these Google changes on our customers.  For now, users will need to use Internet Explorer or Firefox if they would like to join the Lync meeting using Lync Web App.  Additional information can be found here.

  • Issue with Lync Conversation Window Extension

    I had a customer question the other day that I hadn't seen before.  The issue was that people were noticing that every time when they initiated an IM conversation to a specific user, they would get the following in the IM window:

    Context not supported: this conversation includes context which requires a Microsoft Lync plug-in. Please contact your administrator to enable this context.

    What was interesting is that it only happens in one direction.  Using the users in the example above, anyone initiating an IM to Judith saw the issue, but if Judith initiated the conversation, the message wasn't displayed in either IM window.  We looked at the trace file from William's Lync client and it shows an INVITE being received by the Lync client with information about an application ID:


    Note: You may need to click on the image above in order to read the text.

    It turns out that Judith has a Conversation Window Extension (CWE) registered on her machine.  You can learn more about contextual Lync conversations and Conversation Window Extensions here.  This application was only registered on Judith's local machine and not everyone else that was trying to IM her.  If other users had the same application installed, they wouldn't see the message in the IM window.  To figure out what the application was we opened Registry Editor on Judith's computer and navigated to:

    HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Lync\Addins\{D0C33971-D36C-4063-885A-1CC3E8AF1253}

    This shows that the name of the application is "Logi Far End Control":

    Looking in Programs and Features shows that Judith installed a plugin from Logitech.  Specifically this plugin is used for far-end camera control for a Logitech webcam:

    The user didn't need the far-end camera control plugin installed, so after they uninstalled it users were no longer getting the message in their IM window.

  • Issue Installing SQL Server 2012 Express Instances on Lync Server 2013

    I ran into this issue at a customer recently.  The Lync Server 2013 Deployment Wizard would throw an error while trying to install SQL Server 2012 Express:

    Checking prerequisite SqlInstanceRtc...installing...failure code -2067922934
    Prerequisite installation failed: SqlInstanceRtc

    Clicking on View Log didn't tell us a lot either:


    Note: You may need to click on the image above in order to read the text.

    Neither did the SQL installation log file, which can be found at C:\Users<username>\AppData\Local\Temp\1\SqlSetup.txt:


    Note: You may need to click on the image above in order to read the text.

    The only real interesting thing in the log file was:

    Process returned exit code: 0x84BE000A

     

    This particular customer uses OS images that have been hardened according to a set of STIGs (Security Technical Implementation Guide).  You can find some more information on STIG here.  In comparing the changes to a default installation of Windows we found that all of the users had been removed from the "Debug programs" policy:


    Note: You may need to click on the image above in order to read the text.

    The user running the Lync Server 2013 Deployment Wizard needs to be included in order for SQL to be installed.  The default setting includes the local Administrators group:


    Note: You may need to click on the image above in order to read the text.

    After adding the local Administrators group and rebooting the server, we were able to complete the SQL Server 2012 Express installation and continue on with the Lync Server 2013 install:

     

    If you are installing Lync Server 2013 on an OS that has been hardened, ensure that the user doing the install has all the rights necessary for a smooth installation.

  • How To Remove Legacy OCS Dial-in Simple URL from Lync Server

    If you've migrated to Lync Server from a previous version of OCS, you may have noticed that you might have an additional simple URL configured.  You can see this in the Lync Server Control Panel under Topology > Simple URL:


    Note: You may need to click on the image above in order to read the text.

    It shows up as Dialin13.  You can also see it if you run:

    Get-CsSimpleUrlConfiguration | Select-Object -ExpandProperty SimpleUrl

    This is the dial-in URL that was used in OCS.  So where did this URL come from?  First, the dial-in URL was part of the Communicator Web Access component of OCS.  You can find some additional information in the Ten Things You Might Not Know About the 2007 R2 Release of Communicator Web Access TechNet article.  Specifically you needed to run Step 4 under Deploy Communicator Web Access:

    This step published the URLs for Communicator Web Access.  You can find some additional information in the Publishing Communicator Web Access URLs TechNet article.

    So when you click on Publish, where does that information get stored?  It is actually stored in two locations.  The first is in WMI on the CWA Server(s):

    The second location is in Active Directory.  Specifically in the Global Settings folder under RTC Service:

    The two attributes are: ms-RTC-SIP-DefaultCWAExternalURL and ms-RTC-SIP-DefaultCWAInternalURL.  So now that we know where the information is stored, how did it get into Lync?  The Dialin13 simple URL was created in Lync when you ran Import-CsLegacyConfiguration as part of the migration steps from OCS to Lync Server.  In order to remove the old OCS dial-in simple URL, we're going to follow the steps outlined in Example 3 in the Set-CsSimpleUrlConfiguration TechNet article:

    Because the Set-CsSimpleUrlConfiguration cmdlet needs to work with URL objects, the example starts by creating a new object that contains the exact same property values as the URL to be deleted.  To do that, the first command uses the New-CsSimpleUrlEntry cmdlet to create a URL entry that points to https://im.test.deitterick.com/dialin; this URL entry is stored in a variable named $urlEntry:

    $urlEntry = New-CsSimpleUrlEntry -Url "https://im.test.deitterick.com/dialin"

    After the URL entry has been created, the second command uses the New-CsSimpleUrl cmdlet to create an in-memory instance of a simple URL.  In this example, the URL Component is set to Dialin13; the domain is set to *; the ActiveUrl is set to https://im.test.deitterick.com/dialin; and the SimpleUrl property is set to $urlEntry, $urlEntry being the URL entry created in the first command.  This creates an in-memory URL ($simpleUrl) that has the same property values as the URL to be deleted:

    $simpleUrl = New-CsSimpleUrl -Component "Dialin13" -Domain "*" -SimpleUrlEntry $urlEntry -ActiveUrl "https://im.test.deitterick.com/dialin"

    The final command in the example then deletes the URL from the simple URL collection for the Global site.  This is done by using the Set-CsSimpleUrlConfiguration cmdlet, the SimpleUrl parameter, and the parameter value @{Remove=$simpleUrl}.  This syntax simply causes the URL stored in the object reference $simpleUrl to be removed from the SimpleUrl property:

    Set-CsSimpleUrlConfiguration -Identity Global -SimpleUrl @{Remove=$simpleUrl}

    Once the command completes, you will see a warning message about running Enable-CsComputer.  You can go ahead and run Enable-CsComputer on your Lync Server Front End Servers for good measure:

    If you go back to the Lync Server Control Panel and look in Topology > Simple URL, you will see that the Dialin13 simple URL is no longer there:


    Note: You may need to click on the image above in order to read the text.

     

    One important thing to remember is that if you run Import-CsLegacyConfiguration again for any reason, it will recreate the Dialin13 simple URL!  The reason for this is that those attributes still exist in Active Directory and the cmdlet will import them again.  However, this shouldn't be a big issue, since you shouldn't need to run the Import-CsLegacyConfiguration cmdlet again once you've decommissioned your OCS environment.

  • Issue Installing August 2014 Cumulative Update for Microsoft Lync Server 2013

    You may encounter an issue while trying to install the August 2014 Cumulative Update for Microsoft Lync Server 2013 on a computer with just the Lync Server Core Components and/or Lync Server Administration Tools installed.  In the screenshot below, you can see that I only have the Lync Server Core Components and Lync Server Administration Tools installed:

    If I try to apply the August 2014 Cumulative Update for Microsoft Lync Server 2013:

    I get the following error message:

    There were errors during the installation process. For details, see the log file at C:\Users\Administrator.TEST\Desktop\Lync_patchinstallerlog-TEST-LS15-MGMT-[2014-08-19][15-53-17].txt

    and you can see that the Lync Server Core Components aren't updated:

     

    For more information on this issue, please see KB2993188.