Saturday, December 1, 2012

Disabling IM for Lync 2013 Client

I suppose there are a few reasons that you might want to disable IM functionality for certain users in Lync.  This can be easily accomplished by modifying the registry (which can be controlled with a GPO).

Before we get started, let’s look at what typical options would look like for a Lync 2013:

Lync 2013 - Disable IM - IM enabled

As you can see, the IM button is present and active for my contacts.  The location in the registry to implement policies for Lync 2013 are in a different location compared to earlier versions.  Now you can locate or create policies in the HKLM (or HKCU)\Software\Policies\Microsoft\Office\15.0\Lync

You can disable IM by running the following command from an elevated command prompt:

reg add HKLM\Software\Policies\Microsoft\Office\15.0\Lync /v DisableIM /t REG_DWORD /d 1 /f

Lync 2013 - Disable IM - cmd

This will result in creating a new DWORD “DisableIM” with a value of “1”:

Lync 2013 - Disable IM - registry

After exiting and restarting the client, the IM icon is no longer visible:

Lync 2013 - Disable IM - IM disabled

This post shows you how to disable IM functionality within the Lync 2013 client.

Monday, November 26, 2012

Administering Lync 2010 and 2013 Coexistence

As everyone is out migrating their Lync 2010 environments to Lync 2013, you must plan for coexistence.  This post will discuss the appropriate tools to use to administer certain scenarios once Lync 2013 is introduced into the environment.

Topology Changes

For any Topology changes (including adding Lync 2010 pools), you must use the Lync Server 2013 Topology Builder.  This is true even if a Lync 2010 pool is still hosting the CMS.  If you attempt to open the Lync Server 2010 Topology Builder, you will receive the following error:

“The topology is from a later version of the product.  Use the correct version of Topology Builder to open this topology.”

Lync Coexist Admin - 2010 Topo

Moving Users Across Pools of Different Versions

For all user moves across pool versions, the Lync Server 2013 tools must be used (Control Panel and Management Shell).  If you try to move a user from Lync 2010 to Lync 2013 or from Lync 2013 to Lync 2010 with the Lync 2010 tools, you will get the following error:

“Move to or from the future version of the product is not supported.”

Lync Coexist Admin - 2010 CP move to 2013 (error)

Moving Users Across Pools of Same Version

For all users moves across pools of the same version, that version of tools can be used to move the user.  This means that Lync 2010 tools can be used to move users between 2010 Lync pools and Lync 2013 tools can be used to move users between 2013 Lync pools.  Also, you can use the Lync 2013 tools to move Lync 2010 users between 2010 pools, but you cannot use Lync 2010 tools to move users between Lync 2013 pools.

Assigning User Policies or User Settings

Assigning user policies or changing user settings can be performed with either set of tools no matter what version of pool the user is homed on.

Summary

Below is a summary of the different scenarios above. 

  Lync 2010 Tools Lync 2013 Tools
Topology Changes

no

YES

Move user from 2010 to 2013 no YES
Move user from 2013 to 2010 no YES
Move user between 2010 pools YES YES
Move user between 2013 pools no YES
Assign user policies and settings YES YES

Conclusion

To avoid any confusion, I recommend using the Lync 2013 tools exclusively for any administrative tasks once you have introduced Lync Server 2013 into your environment.

Thursday, November 1, 2012

Exploring Default Installation and SQL Paths in Lync Server 2013

A shift has been made in Lync Server 2013 to process more SQL transactions local on the server than on Lync Server 2010.  One of the main reasons for this is to provide better resilience across all workloads (including user/conferencing services) compared to just voice resiliency in Lync Server 2010.  This post will review different installation paths of Lync components based on drives available at the time of installation.

First let’s review the SQL Express instances that are running local on the Lync Front-end servers.  In my example, I will be looking at the Standard Edition of Lync.  The Enterprise Edition Front-End server will only have LYNCLocal and RTCLocal SQL instances.

Lync 2013 - DB Location - 1234 SE Services

The following lists each SQL instance and the databases associated with it:

  • LYNCLOCAL
    • Lyss
  • RTC – located on local Standard Edition servers and in back-end SQL instance for Enterprise Edition
    • RTCab
    • CpsDyn
    • RgsConfig
    • RgsDyn
    • RTCShared
    • RTCXDS
  • RTCLOCAL
    • XDS
    • RTC
    • RTCDyn

I wanted to see what would happen to default installation locations based on drives available.  Here are the scenarios that I tested:

Scenario #1 – C: drive only, default installation path

In a very default installation with only a C: drive, obviously all components get installed in their default locations.  The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 1 SE c only

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths:

Lync 2013 - DB Location - 1 SE C Only SQL Install

RTCReplicaRoot path:

Lync 2013 - DB Location - 1 SE C Only RTCReplicaRoot

Database and Logs paths:

Lync 2013 - DB Location - 1 SE C Only CsData

Note that the RTCLocal database and log for XDS will always be located on the C: drive in the SQL installation path

Scenario #2 – C: and E: drive, default installation path

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 2 SE c e

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal database and log for XDS will always be located on the C: drive in the SQL installation path

RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (all on E: ):

Lync 2013 - DB Location - 2 SE CE CsData-RTCReplica

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Scenario #3 – C:, E:, and F: drive, default installation path

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 3 SE c e f

Lync installation path:

Lync 2013 - DB Location - 123 setup location default

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal databases and logs (XDS) will always be located on the C: drive in the SQL installation path

RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (on E: ):

Lync 2013 - DB Location - 3 SE CEF E Volume

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Log paths for RTC, RTCLocal, and LYNCLocal (on F: )

Lync 2013 - DB Location - 3 SE CEF F Volume

Scenario #4 – C:, E:, and F: drive, Change installation path to E:

The following screenshots shows the location of each Lync component.

Drive configuration:

Lync 2013 - DB Location - 3 SE c e f

Lync installation path:

Lync 2013 - DB Location - 4 setup location

SQL installation paths (on C: ):

Lync 2013 - DB Location - 23 SE CE SQL Install

Note that the RTCLocal databases and logs (XDS) will always be located on the C: drive in the SQL installation path

Lync Program Files, RTCReplicaRoot, Database and Log paths for RTC, RTCLocal, and LYNCLocal instances (on E: ):

Lync 2013 - DB Location - 4 SE RTCReplicaRoot and lync install

Note that you can tell what SQL instance each database belongs to by looking at the parent folder to the DBPath/LogPath folders.

Log paths for RTC, RTCLocal, and LYNCLocal (on F: )

Lync 2013 - DB Location - 3 SE CEF F Volume

Wednesday, October 24, 2012

The 2013 Collaboration Wave Has Arrived!

Microsoft-Lync-2013-Logo Exchange_2013

Today was a big day for Microsoft…  No, I am not talking about Windows 8 or Windows Server 2012 or Surface or Windows Phone 8.  Wow, it is truly a big year.  I am the most interested in the Office 2013, Lync 2013, Exchange 2013, and yes even SharePoint 2013 RTM releases.  Today, all of these products are available for download via MSDN/Technet.  If you do have a subscription, start downloading and learning about the final releases of these products.  Here are a few resources to help along the way:

Lync 2013

Exchange 2013

I will be sure to update my Lync and Exchange References pages in the near term as new resources become available.  Happy downloading and installing!

Looking forward to a lot of new blogging material.

Thursday, October 11, 2012

Lync October 2012 Server and Client Updates Released

The Lync team has released server and client updates for October 2012. Here are all the details:

Server Updates (7577.205) – DownloadKB 2493736

Note: Use the cumulative LyncServerUpdateInstaller.exe to install the updates to make sure all needed updates are applied.

Clients (7577.4356)

Wednesday, October 3, 2012

OCS 2007 R2 September 2012 Updates Released

Microsoft released a few updates for OCS 2007 R2 in September 2012.

Here are the components that were updated:

Group Chat (6907.265)

XMPP Gateway (6907.263)

Monday, September 10, 2012

Failover\Fallback SQL Mirror in Lync Server 2013

NOTE: The following post is based on Lync Server 2013 Preview. Procedures and screenshots are subject to change when Lync Server 2013 is RTM.

In my previous post, I described how to add a SQL mirror to your back-end database for SQL high availability.  In this post, I will describe how to failover and then fallback the SQL databases between the mirror.

Before failing over the SQL mirror, you need to determine whether or not your back-end database is hosting the Central Management Store (CMS) database.  You can determine this by running the following command:

Get-CsService –CentralManagement

Lync 2013 - SQL M failover - get-csservice

If the output shows the pool that you are failing over the back-end for then you must failover the CMS database.  In my lab I have all databases as part of the mirror configuration: User, CMS, Archiving, Monitoring, Apps, PersistentChat, PersistentChatCompliance:

Primary SQL Node:

Lync 2013 - SQL M failover - pricipal

Mirror SQL Node:

Lync 2013 - SQL M failover - mirror

You can also check the state of your mirror status by running the following:

Get-CsDatabaseMirrorState –PoolFQDN pool01.w15lab.local –DatabaseType User

Lync 2013 - SQL M failover - get-mirrorstate user

The supported –DatabaseType values are: App, Archiving, CentralMgmt, Monitoring, Provision, User, PersistentChat, PersistentChatCompliance

I need to run the following commands to failover all databases:

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType User –NewPrincipal mirror

Lync 2013 - SQL M failover - invoke-failover user

Now I run the similar command for the rest of my database types:

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType App –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType CentralMgmt –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType Archiving –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType Monitoring –NewPrincipal mirror

Invoke-CsDatabaseFailover –PoolFQDN labad03lyse01.w15lab.local –DatabaseType PersistentChat –NewPrincipal mirror (note that my persistent chat pool is my Standard Edition server)

Invoke-CsDatabaseFailover –PoolFQDN labad03lyse01.w15lab.local –DatabaseType PersistentChatCompliance –NewPrincipal mirror (note that my persistent chat pool is my Standard Edition server)

After all commands have been executed, I can look at my SQL nodes again and see that my mirror node now has the active database:

Primary SQL Node:

Lync 2013 - SQL M failover - primary - post failover

Mirror SQL Node:

Lync 2013 - SQL M failover - mirror - post failover

When you are ready to fallback to the primary SQL node, just run the same commands but change the –NewPrincipal parameter to “primary”

Invoke-CsDatabaseFailover –PoolFQDN pool01.w15lab.local –DatabaseType User –NewPrincipal primary

Lync 2013 - SQL M fallback- invoke-failover user

This post describes how to manually fail your mirror databases over to the secondary SQL node and then fall back.

Wednesday, August 22, 2012

Adding a SQL Mirror to an Existing Lync Server 2013 Back-End

NOTE: The following post is based on Lync Server 2013 Preview. Procedures and screenshots are subject to change when Lync Server 2013 is RTM.

Lync Server 2013 now supports SQL mirroring (synchronous) for back-end databases.  In fact, this is the preferred/supported configuration.  This post will describe how to add a SQL mirror database to an existing pool’s back-end SQL instance.  This post is not meant to show SQL specific configurations. 

Here are a few prerequisites, requirements, and notes:

  • All SQL servers including the mirror must be at the same SQL version
  • The two SQL mirror nodes must use the same Edition, the mirror can be different
  • Use a witness server if you want to achieve automatic failover of the SQL database between the mirror
  • You must deploy the witness at the same time as the mirror is set up within the Lync topology
  • The database instance that will be used as the mirror should have the same LUN/file path configuration as the primary database
  • The SQL mirror does not need to be configured beforehand, publishing the Lync topology will configure and enable mirroring
  • The SQL servers and witness must be members of the same domain

In my example, I am going to deploy the SQL mirror without a witness server due to lab constraints.  This post also assumes that you have a second SQL instance already configured to host the mirrored databases.

If you are adding the SQL mirror after deploying your primary database, make sure that the mirroring port is configured on the SQL instance in the topology.  You can see this setting by navigating to Site –> Shared Components –> SQL Server Stores

Lync 2013 - SQL Mir - 2 primary port define

First step is to edit the topology.  Navigate to the Enterprise Front-End pool and select Edit Properties…

Lync 2013 - SQL Mir - Edit Pool

Check the option to Enable SQL Server store mirroring, then click the New… button:

Lync 2013 - SQL Mir - Edit Pool - assoc - markup

Next define SQL server store for the mirror:

Lync 2013 - SQL Mir - define sql

Click OK and then publish your topology.  You will be prompted to configure a File Share on the Create Mirror Databases dialog:

Lync 2013 - SQL Mir - publish

Click on the “File Share is required” error and click Settings… button and define a files share:

Lync 2013 - SQL Mir - publish - sql file share2

Remember, for your file share to make sure the proper permissions are set up so that both SQL servers have access to the share.  Thanks to Doug Deitterick’s Blog for that help.

Lync 2013 - SQL Mir - file share perms

Finish the Publishing Wizard, make sure everything is a “Success”. 

Lync 2013 - SQL Mir - publish - success

Also, check the “To-Do List” link. It says I need to restart my Lync services on the FE Pool servers.  This can easily be done by running:

Get-CsWindowsService | Stop-CsWindowsService

Get-CsWindowsService | Start-CsWindowsService

Lync 2013 - SQL Mir - restart services

Checking the SQL Mirror Node, we can see the Lync databases:

Lync 2013 - SQL Mir - mirror node check

You can also added your Monitoring and Archiving databases to the SQL mirror by editing the topology and adding the already defined mirror on those databases:

Lync 2013 - SQL Mir - Edit Pool - ArchMon

This post described how to add SQL mirroring to your Lync Server 2013 back-end.

Saturday, August 18, 2012

Exchange 2010 SP2 Update Rollup 4 Available

An update for Exchange 2010 SP2 has just released and can be downloaded at: Exchange 2010 SP2 Update Rollup 4 Download.

This will take you Exchange version up to 14.2.318.2

For a description of all the included fixes, see KB 2706690

For those of you running DAGs, please see the following article: Applying Updates to Exchange 2010 SP1 and SP2

If you are running third party products (like anti-virus, etc), it is important that you disable them before updating.

More information can be found on the Exchange Team Blog site.

Exchange 2010 SP1 Update Rollup 7 Available

An update for Exchange 2010 SP1 has just released and can be downloaded at: Exchange 2010 SP1 Update Rollup 7 Download.

This will take you Exchange version up to 14.1.421.0

For a description of all the included fixes, see KB 2743248

For those of you running DAGs, please see the following article: Applying Updates to Exchange 2010 SP1 and SP2

If you are running third party products (like anti-virus, etc), it is important that you disable them before updating.

Exchange 2007 SP3 Update Rollup 8 Available

An update for Exchange 2007 SP3 has just released and can be downloaded at: Exchange 2007 SP3 Update Rollup 8 Download

This brings the build number to: 8.3.279.3

  • For a description of all the included fixes, see KB 2734323

If you have a clustered environment, please see this article: Applying Exchange 2007 Update Rollups to Clustered Mailbox Servers

Remember to disable or remove all third party software during the upgrade (like antivirus, backup agents, disclaimers, etc.)

More information can be found on the Exchange Team Blog site.

Thursday, August 16, 2012

Installing Office Web Apps Server for Lync Server 2013

UPDATE: I have updated this post for Lync Server 2013 RTM, although some screenshots may still say “preview” on them.

Introduced in Lync Server 2013 is the requirement of Office Web Apps server to support the use of PowerPoint presentations in Lync Online Meetings.  The purpose of this post is to show the absolute minimum requirements in order to get Office Web Apps integrated and usable with the Lync Server 2013 environment.  This does not take into account high availability or other design decisions that may need to be made for your overall implementation.

Requirements and Prerequisites

Office Web Apps cannot be collocated on any Lync server, so I am starting off with a fresh installation of Windows 2008 R2 SP1 (Windows 2012 can also be used).  You will need to install the following on the Windows 2008 R2 server:

Next thing needed is to install supporting Windows Components.  For Windows 2008 R2, run:

Import-Module ServerManager

Add-WindowsFeature Web-Server,Web-WebServer,Web-Common-Http,Web-Static-Content,Web-App-Dev,Web-Asp-Net,Web-Net-Ext,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,Web-Security,Web-Windows-Auth,Web-Filtering,Web-Stat-Compression,Web-Dyn-Compression,Web-Mgmt-Console,Ink-Handwriting,IH-Ink-Support

For Windows 2012, run:

Import-Module ServerManager

Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Includes,InkandHandwritingServices,NET-Framework-Features, NET-Framework-Core, NET-HTTP-Activation, NET-Non-HTTP-Activ, NET-WCF-HTTP-Activation45

Installation of Office Web Apps Server

Download the Office Web Apps Server and start the installation.  Default installation is fine:

Lync 2013 - OWA - install - mark

Configuration of Office Web Apps Server

The first step is to create an Office Web Apps Server farm.  I will do this by running the following command.  Note that I am only configuring an Internal URL for my lab and already have a certificate provisioned for the URL referenced.

New-OfficeWebAppsFarm -InternalURL “https://labad03app01.w15lab.local” –CertificateName “Office Web Apps Certificate”

Lync 2013 - OWA - PS create

Validate the configuration by navigating to the discovery URL of the Office Web Apps server.  In my case, that is https://labad03app01.w15lab.local/hosting/discovery

You should see something similar to the following XML output:

Lync 2013 - OWA - xml

If you get an error, try repairing .NET by running:

%systemroot%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -iru

Lync 2013 - OWA - net repair

Configure Lync Topology

To add the Office Web Apps server to your Lync 2013 Topology, open Topology Builder and navigate to “Site –> Shared Components –> Office Web Apps Servers”.  Right-click and select “New Office Web Apps Server…”

Lync 2013 - OWA - TB

Next, type in the FQDN of your newly deployed Office Web Apps server and the discovery URL should auto-fill:

Lync 2013 - OWA - TB - add

Next validate (or assign) the Office Web Apps server to your Front-End servers:

Lync 2013 - OWA - TB - associate - markup

Publish your topology.

Validate Lync Functionality

The first things to validate for your Office Web Apps implementation is look at the Front-End servers Event Viewer.  In the Lync Server logs, you will see two different Events:

Event 41032 stating that Web Conferencing Server Office Web Apps Server (WAC) discovery succeeded:

Lync 2013 - OWA - event - 41032

Event 41034 stating that PowerPoint content is enabled:

Lync 2013 - OWA - event - 41034

If you see Event 41033 then something is wrong.  Go back and check all the previous steps.

Lync 2013 - OWA - event - fail

Now on to validating PowerPoint uploads with the Lync client.  In this example, I am just going to start an ad-hoc conference with Meet Now and upload a PowerPoint presentation:

Lync 2013 - OWA - client1

Lync 2013 - OWA - client

This post described how to get an Office Web Apps server deployed and integrated with Lync Server 2013.