Tag Archives: lync 2013

Please Don’t In-Place Upgrade Your Lync OS

I felt the need to blog about this quickly as it’s a question that’s coming up very frequently on the TechNet forums as firms are looking to perform an in-place upgrade of Lync Server 2013 to Skype for Business Server 2015.  Many have deployed Lync on Windows Server 2008 R2, and they’d like to move to Skype for Business Server on Windows 2012 R2.  Many want this simply because they want a more recent operating system.  Further confusion arises from the TechNet article found here: https://technet.microsoft.com/en-us/library/Dn951388.aspx.  Many read that Windows 2008 R2 is not listed as a supported operating system and stop reading.  There is a further note that says:

You may have noticed Windows Server 2008 R2 isn’t on this list. That’s because we recommend Windows Server 2012 R2 for all new servers to be used for SFB. You should only be using Windows Server 2008 R2 when you have existing servers with Lync Server 2013 already installed, and you’re intending to do an in-place upgrade of them.

If you fall into this category, in hopes that you find it in your research, this blog is simply here to say DON’T DO IT!  If you want to move to Windows 2012 R2 as part of your upgrade, please build fresh servers and move your users and objects over.  Not only is this a supported upgrade path, there’s less downtime and potentially less risk as you can test and pilot all features before moving objects.  In-place upgrades of the OS are unsupported and have been well known to break Lync.  If you want some more evidence beyond my random blog, some of the comments in Doug’s blog post (two pages of comments) are a fun read:

http://blogs.technet.com/b/dodeitte/archive/2013/10/25/lync-server-2013-now-supported-on-windows-server-2012-r2.aspx#pi75101=1

Nosign

Updated Tool: Lync Common Area Phone Management (GUI)

If you haven’t seen it or played with it, there’s a free tool available to you that I’ve developed that will help manage Lync Common Area Phones with a GUI interface.  There is nothing to install, it’s a pure PowerShell script you can run.  Read more about that here if you haven’t seen it: http://www.lyncfix.com/?p=715

What’s new is that it’s been updated again due to a request by a user.

Marcel writes:

“Hi Anthony, thank you for this great tool. It is very helpful doing maintenance on the common area phones.
I have a few questions/suggestions:
– You cannot select multiple cap’s to make changes. For example: I want to assign a new Pin Policy on 100 phones. I have to do it one by one now. Can you make it possible to select multiple phones?
– The company I work for has one the largest and complex installations. When I start this tool I see all (3300+ phones on 100+ pools). Is it possible that you add a feature to select the correct pool?”

Introducing Version 1.2!  These capabilities have now been added.  As you can see in the screenshot below, there is a Filter dropdown that allows you to filter by pool, or all pools.  The ability to select multiple phones and set the pin, make changes, or remove them is now available as well.  If you wanted to grab a selection of phones from pool1 and move them to pool2 with a new voice policy and dial plan, just select the phones on the left, change the relevant dropdowns, and click the “Save Changes” button.  Fields that do not have values selected will not change when the “Save Changes” button is pressed.   This way, you can modify only one or a few settings at a time.

multiselect

If you have any thoughts, comments, bug reports, or feature requests, the Q/A section in the TechNet gallery is the best place, but I’m also watching here as well.

As with any free tool you find on the Internet, use at your own risk!

To download the program, please find it here in the TechNet Gallery: http://gallery.technet.microsoft.com/lync/Lync-2013-Common-Area-57bc4ff1

If you like it, please give it 5 stars over at the TechNet Gallery.  If not, please drop me a line before you rate it and give me a chance at fixing whatever bug you may have found.   I might also be able to add a feature you’d like to see!

Thanks again and let me know what you think!

Change Lync 2013 Privacy Relationships via Update-CSUserData

A question came up recently where a Lync 2013 admin was pre-populating contacts for users.  They were using a custom XML that was generated from a Export-CSUserData dump from a template Lync user.  (If you want to know more about how to do that, I can explain another time, just ask).  They then modified the DocItemSet file within the exported zip to match each user and were running either Import-CSUserData or Update-CSUserData to merge the data into the user’s contact lists.  The issue was that they couldn’t figure out how to set the privacy relationship within this file.  This took a bit of reverse engineering, so take this with a grain of salt, but the key is to look at the container tags.

docitemxml

In the above pic, you’ll see under DocItemSet.DocItem.Data.HomedResource.Containers there are several containers each with a unique ContainerNumber.  The important ones to know are the following:

  • 100 = External Contacts
  • 200 = Colleagues
  • 300 = WorkGroup
  • 400 = Friends and Family
  • 32000 = Blocked
  • No container = Default

Adding the <UserMember Member=”sipaddress@domain.com”/> tag directly under the appropriate container number and merging the data using Update-CsUserData appears to properly reassign the user’s privacy relationship.  Removing all <UserMember> tags that correspond to a user sets them back to the default relationship, for internal users this would be Colleagues.

For more information on running the Export-CSUserData, Import-CSUserData, and Update-CSUser data commands, please see the TechNet Wiki article below: http://social.technet.microsoft.com/wiki/contents/articles/25001.backing-up-and-restoring-lync-2013-contacts.aspx

For more information on the differences between privacy relationships, please look here: http://office.microsoft.com/en-us/lync-help/control-access-to-your-presence-information-in-lync-HA102925421.aspx

 

New Tool: Lync 2013 Contact Backup and Restore Tool (GUI)

I developed this tool simply because I realized when attempting a Lync 2013 contact restore that it’s difficult to tell which backup to use.  This is especially true when the user can’t quite remember when or how the contacts were removed.  I also realized that for some companies, not all of the staff is PowerShell savvy and enabling them to make easy backups and restores through a GUI would prove to be quite helpful.  What I’ve done is written a tool that allows for easy backups and restores of contact data, and also allows you to review the contents of your backup before you merge the data into your production system.  To run the tool, simply download the script from the TechNet Gallery and run it from a Lync server.  One item to note before we start, the PowerShell commands this tool uses do not work with the unified contact store (UCS).  What this means is you’re fine with this tool if you’re running Exchange 2010 or prior, or if you’re running Exchange 2013 but haven’t enabled the unified contact store to move your contacts out of Lync and exclusively into Exchange.

Run the script and right away you’ll see a form like below.  Click the Step 1 button to load up an existing backup file.  These backup files are created by running Export-CSUserData and should be included as part of a script that runs on your systems nightly.  If you don’t have one (you should), you can also create one by clicking one of the backup buttons at the bottom of the form.  Once you click the Step 1 button, a browse dialog will pop up allowing you to select your backup file.  The script will then load your users into the box above the button.

Step1

Once your contacts are loaded, you can then select a user by highlighting them.  If you know the data is good, you can proceed directly to Merge Selected User, which will be described later, or to review the contents of the backup file, you can click the Step 2 button.

Step2b

This button should load the contact information for the selected user only and display it for you to see.  Again, if the appropriate information is selected, you can skip right to the Merge Selected User button, or if you’d like to compare the information to the current contact information, you can click the Step 3 button as seen below.

Step3

You should now see both the current and backup contact information displayed side by side for comparison.  In the picture below, I found a deleted phone number and distribution group.  I can now simply click the Merge button and the contacts will be merged into your current Lync contacts.  Once the user has logged out and back into the Lync client, the restored contacts will reappear.

Step4

Finally, there are two buttons at the bottom that allow for easy user level and pool level backups.  Simply enter the sip address or the pool FQDN when prompted, and select a save location for your newly created file.

StepOther

To quit, please press the Quit button to allow the program to properly clean up after itself or you might see a temporary directory where the contents of your backups have been extracted.

To download the program, please find it here in the TechNet Gallery: http://gallery.technet.microsoft.com/Lync-2013-Backup-and-1f3167c8

If you like it please give it 5 stars over at the TechNet Gallery, if not, please drop me a line before you rate it and give me a chance at fixing whatever bug you may have found.   I might also be able to add a feature you’d like to see!

Thanks again and let me know what you think!

 

Lync Quick Tip: Disable Pre-Population of Contacts

You may have noticed when enabling a fresh Lync 2010 or Lync 2013 user, upon first login they already have some contacts in their favorites or frequent contacts.  Sometimes these contacts are odd and show up as a phone or mobile number.  Where do they come from and how do you get rid of them?

Well, it’s actually been around and is a feature introduced in Lync 2010.  From the article: http://technet.microsoft.com/en-us/library/gg398159.aspx we read:

“The Frequent Contacts group shows the 10 contacts a user most frequently has conversations with (not necessarily the most recent). Lync pre-populates the group with the user’s team members. Users can pin their favorite or important contacts to the top of their Frequent Contacts group.”

In Lync 2013 of course, Frequent Contacts was renamed to Favorites.    These team members can be found in the Organization tab of the Active Directory User:

prepop

So, how do we turn this off?   Well, we can remove the direct reports in AD, but it’s probably there for a reason (we don’t want to go head to head with whomever in HR may have published them).  Enter the AutoInitiateContacts  parameter within the privacy configuration.  We can set this with the Set-CSPrivacyConfiguration command: http://technet.microsoft.com/en-us/library/gg398484.aspx.  From the article: “If True, Lync will automatically add your manager and your direct reports to your Contacts list. The default value is True.”

To disable this for all of your privacy configurations, run the following command:

Get-CSPrivacyConfiguration | Set-CSPrivacyConfiguration -AutoInitiateContacts $False

To set it for a specific site, you’ll want to run the Set-CSPrivacyConfiguration with the identity parameter pointing to your site if you have this configured.

 

Reviewing and Reordering Lync 2013 Dial-In Conferencing Numbers

You’re using Lync 2013, you’ve entered several different conferencing numbers for your region, and now when you go to create a Lync meeting invite the numbers are out of order or just aren’t logically arranged.  How can you change the order?  Well, there’s a setting for that and the trick is of course in PowerShell with the Lync Management Shell.  This can be a bit tricky at first because if you simply run Get-CSDialinConferencingAccessNumber you won’t see the priority list.  Well, there’s a trick to that too, you have to specify the region and also specify that you want to see all parameters as shown below:

Get-CSDialinConferencingAccessNumber -Region “Illinois” | format-list *

get

You’ll see the a priority 0 and a priority 1 entry.  The lowest number is the first to be displayed in the meeting invite.  In our example above, this means that 312 666 1212 is displayed before 312 555 1212, and that CAN NOT HAPPEN!  So, the simple trick to make the change with Set-CSDialinConferencingAccessNumber.  To run this command, you’ll need to specify two settings, the first is the Priority, the second is the ReorderRegion.  In our example, I effectively want to move our 312 555 1212 to the top of the list.  To do this I’d run:

Set-CsDialInConferencingAccessNumber -Identity sip:temp1dialin@domain.com – Priority 0 -ReorderedRegion “Illinois”

Notice here that I set the priority of temp1dialin (which matches the 312 555 1212 number we want to move up) to 0, which is the lowest number.  However, isn’t this number already specified as the priority of the other number?  Not to worry, Lync figures it out and reorders appropriately.

set

If we wanted more granular control, perhaps we have many numbers, we could execute the command repeatedly with priorities starting from 0 and moving higher like so:

Set-CsDialInConferencingAccessNumber -Identity sip:temp1dialin@domain.com -Priority 0 -ReorderedRegion “Illinois”

Set-CsDialInConferencingAccessNumber -Identity sip:temp2dialin@domain.com -Priority 1 -ReorderedRegion “Illinois”

Set-CsDialInConferencingAccessNumber -Identity sip:temp3dialin@domain.com -Priority 2 -ReorderedRegion “Illinois”

That’s pretty much it.  It’s not difficult, but it’s also not something you might just stumble across.  Good luck and if you have any questions, remember the best way to reach me is via LinkedIn or Twitter so find me and ping me there!  Also, stay tuned because in the next post I will reveal a simple GUI that does all of this for you!