Category Archives: Lync Server 2010

Lync 2010 In A Resource Forest Topology

I came across a user not being able to sign in to the Lync 2010 client when Lync 2010 server was deployed in a resource forest.

The user was getting the normal error message.

Cannot sign in to Lync. You may have entered your sign-in address, user name, or password incorrectly. If your sign-in information is correct and the problem persists, please contact your system administrator.

Since the error message pointed to login credentials, I verified the following.

  • I reset the user password to be sure.
  • Account was not locked out.
  • I could sign in from the user machine, which confirms that it is not a machine issue.

The problem was that a required attribute was not set for the user. When Lync 2010 is deployed in a resource forest along with Exchange, the MSRTCSIP-OriginatorSID attribute should match the msExchMasterAccountSid. In this user’s case, the attribute was not set (blank).

Once I set the attribute using ADSIEdit, the user was able to sign in straightaway.

Where Is Lync MSI File?

A question that came via email from an AD admin was about ways to package an MSI file for Lync 2010 client installation via group policy.

It is a common practice to deploy software using group policies and Lync is no exception. But, when you have a look at the downloaded Lync 2010 client, it is an exe and not an msi file. So, how do we go about packaging the Lync client?

Fortunately, Microsoft does provide an MSI, but not in a straightforward fashion. install the Lync 2010 client on a machine and the MSI file is created as part of the install in C:\Program Files (x86)\OCSetup folder. There it is!


Use this msi file to push the Lync 2010 client using group policy. One hurdle that you need to overcome is the fact that msi install of Lync client is not allowed by default. A registry edit takes care of this problem. Read KB2477965 for the fix.

Happy installing icon_wink

Enable Enterprise Voice & Lync Functionality For A User From The Shell

Enabling a user for Lync and enterprise voice is easy, if you know how the Enable-CsUser cmdlet works.

You can always enable a user for Lync and enterprise voice in one go from the Lync control panel. You can assign all the policies as well from the GUI.


If you want to enable a user for Lync from the shell, the cmdlet we need to use is Enable-CsUser. In order to find user(s), the cmdlet is Get-CsUser.

The Get-CsUser cmdlet gives us most of the info regarding a user – like the SIP address, pool fqdn, whether the user is enabled for enterprise voice, various policies etc.


Hence, you would think that you can use the Enable-CsUser to enable a user for Lync and enterprise voice using the same cmdlet. Wrong! You need to use the Enable-CsUser and Set-Csuser. The reason for this is that the Enable-CsUser cmdlet doesn’t pass objects through the pipeline by default. You need to use the –PassThru paramter and pipe the output to the Set-CsUser cmdlet.

For example, to enable a user for Lync and EV, the command is as follows.

Enable-CsUser “user” –RegistrarPool “pool fqdn” –SIPAddressType EmailAddress –PassThru | Set-CsUser –EnterpriseVoiceEnabled $true


The Enable-CsUser does not have a EnterpriseVoiceEnabled parameter which you can set to $true. You can always break the commands into two and avoid using the –PassThru parameter as well.

This piece of info will come in handy if you are scripting the Lync administration – maybe in a migration or new Lync deployment.

Make Lync Call The Default In Lync 2010 Client

I came across a deployment in which the work number was the default option while selecting the “Call” option in the Lync client.


How to change it so that the default is always a Lync call? Pretty straightforward – All that is needed is a change to the client policy. Run the command below in the Lync Shell.

Set-CsClientPolicy “Policy Name” –EnableVOIPCallDefault $true


Once the change is made, the default option is always the Lync call.

If you have custom client policies defined, say a site level or user level one, make sure that the change is made on the policy that gets applied to the end user.

Joining Lync Meeting With Chrome Set As The Default Browser

What are the different ways to join a Lync online meeting with Chrome set as the default browser?

You want the Lync 2010 thick client to be “the client” for everything including joining online meetings. But when Chrome is set as the default browser, it comes up with a webpage asking us to join the meeting using the browser or to download the Lync Attendee. If IE is your default browser, there is no issue.


One workaround is to use the IE Tab extension from the chrome web store.


Once the extension is active, you can join the meeting as you would when you have IE as the default browser. You can of course copy and paste the meeting url into an IE browser and join the meeting that way.

Any other workaround guys?

Find Version Of Lync Server Components Installed


Many a times you have to find the version of the various components installed on your Lync server. What are the different ways to figure it out?

There is no native one-liner Lync Shell cmdlet to find this information. The easiest option will be to go to Programs & Features (in the control panel) and you will have a list of all Lync components and their versions.


Another option is to use a WMI query. Get-WmiObject –query ‘select * from win32_product’ | where {$ –like “Microsoft Lync Server*”} | ft Name, Version –AutoSize –Wrap


A third way is to use the Lync Server Update Installer that comes with each CU. Run the installer and it will show you all the components on the server and the installed version. You can patch the server using the same tool.


Yet another option is to run Get-CsManagementStoreReplicationStatus from the Lync Shell.


There are few more ways to find the base version of the product. But, are there any other ways to find the version of the components?

Configuring External Communications In Lync Online (Office 365)

The title might confuse you, as many of you might have heard that everything is setup correctly in Office 365. I found that the external communications was disabled for my tenant for some reason.

While checking out the settings for Lync Online, I found the status for external communications to be Enabled, but the status was listed as disabled for all my domains, including the one.

Disabled by default

In order to fix it, I had to disable the external communications using the Disable button. That changed all my domain status to Connection Pending.

External Comms pending

It took more than a day for me to get all my domains enabled for external communications.

External Comms enabled finally

Next time you play with Office 365, check all the settings. Don’t just assume that everything is setup correctly & will work out of the box Winking smile. I learned this the hard way while setting up my on-premise Lync to federate with Lync Online, covered here. I was troubleshooting the on-premise deployment, while the problem was clearly with the Office 365 setting!

Enable Lync On-Premise To Federate With Lync Online (Office 365)

One of the selling features of Lync 2010 is the ability to communicate with users outside your organization – be it a remote user, federated or PIC. How can we communicate with a company who has Office 365 subscription?

Lync 2010 doesn’t allow communication with Lync Online (Office 365) out of the box. You need to add a provider for Lync Online for the communication to work. Let me explain.

I have an Office 365 subscription with a Lync user My on-premise Lync has an account I want my on-premise Lync deployment to communicate with Office 365. How can I do it?

Launch Lync Control Panel and navigate to External User Access –> Provider. There are only three provders by default.

Default providers

We need to create a new provider for Lync Online. Hit the New button and create a new Hosted Provider. Give LyncOnline as the name of the provider and as the access edge fqdn. Select Allow all communications with this provider, unless you want something granular. Hit the Commit button.

Create provider for LyncOnline

Make sure that the new provider is enabled.

Lync Online Provider Enabled

That’s it. If you are into PowerShell, open up Lync Shell and run the following command to achieve the same result.

New-CSHostingProvider –identity LyncOnline –ProxyFqdn –Enabled $True

You should now be able to add the Office 365 user in your on-premise Lync client and the presence will be updated immediately & you can chat straightaway (provided that you have enabled external communications, covered here).

Onpremise Lync client

Sure enough, the Office 365 side (OWA and Lync client) picks up the on-premise presence as well.

Office 365 client

Pretty good Winking smile