Showing posts with label Lync 2013. Show all posts
Showing posts with label Lync 2013. Show all posts

20 June 2014

Smilies as Links

I ran into an interesting bug/fluke the other day. This happened to one of the guys working on our Service Desk. Jonatan (our Service Desk hero) is homed on one of my 2013 pools and is using the 2013 client. Dana is one of our end users, and is homed on a 2010 pool and uses the 2010 client.

While they were on IM working through an issue, every link that Dansa IM's came across on Jonatan's client as a smiley. We do have links enabled, and it didn't matter if it was an email address or URL.


In Dana's chat window, and in Jonatan's Conversation History everything appeared normal. Links other users would send him would appear and work fine. Restarting Jonatan's Lync client didn't resolve the issue either.


This is the first time I have had this reported. I'm still not sure what caused this to happen, but figured I would share anyway.

~ brad

Fun Fact:
During the initial compilation of the Oxford English Dictionary, the largest contributor of more than ten thousand words was Dr. W.C. Minor, an American Civil War veteran who was an inmate in an asylum for the criminally insane.

10 June 2014

PowerShell: Disabling Lync Accounts

When you use certificate authentication with Lync, a user can still use Lync for up to 6 months by default. You can change this setting using the Set-CsWebServiceConfiguration -MaxValidityPeriodHours XX cmdlet. Even when we change this setting, once a user's AD account has been disabled we don't want them signing into Lync and using the system. In my environment when the user's account is disabled, the Lync account is disabled that night. Rather than adding to the Service Desk's task list, I automated the process.

This script searches AD for disabled accounts, checks to see if the account is still enabled for Lync and if so Lync disables it. It also removes the account from the AD Lync groups that we have. It then sends an email report of the accounts disabled and what the Conferencing Policy was.

Email report

** I'm posting the script here for you to review, but the display can mess with some of the HTML code I have included in the script. If you waould like to use it, I would recommend you download it from here.

#******************************************
#
#   DESCRIPTION:  Disables Lync accounts after the AD account has been disabled and removes from Lync AD groups
#   VERSION:  1.0
#   UPDATED: 
#   AUTHOR: Brad Roberts
#   CONTACT: brad@thatucguy.com
#   BLOG: http://www.thatUCguy.com
#   BLOG ENTRY:  http://www.thatucguy.com/2014/06/powershell-disabling-lync-accounts.html
#
#   DISCLAIMER: You running this script means you won't blame me if this breaks your stuff. This script is provided AS IS and is not guaranteed to work perfectly in your environment. Testing is always a good idea. Any risk in running this script is entirely on you.
#
#******************************************

#******************************************
#
# Variable Definitions
#
#******************************************

$strComputerName = gc env:computername
$strSMTPServer = "smtp.thatucguy.com"
$strToEmail = "lync.admin@thatucguy.com"
$strFromEmail = "no-reply@thatucguy.com"
$strSubject = "Lync User Disablement Report"
$dtTimeNow = get-date

#******************************************
#
# Load Required PS Modules
#
#******************************************

if ((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
if ((Get-Module Lync) -eq $null){Import-Module Lync}

#******************************************
#
# Prepare HTML for email
#
#******************************************

$strScriptInfo = "


Script Info
Script Name: " + $MyInvocation.MyCommand.Definition + "
Time: " + $dtTimeNow + "
Run From: " + $strComputerName $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLFooter = $strHTMLFooter + $strScriptInfo $strHTMLFooter = $strHTMLFooter + "" $strHTMLFooter = $strHTMLFooter + "" #******************************** # # Look for AD accounts that are disabled but still enabled for Lync # Remove from Lync AD groups # Generate report of accounts to disable in Lync and disable them # #******************************** $strResults = $strResults + "

Lync User Disablement Report

" $DisabledUsers = Get-CsAdUser | ?{$_.UserAccountControl -match "AccountDisabled" -and $_.Enabled -eq $true} if ($DisabledUsers) { $DisabledUsers | Disable-CsUser Remove-ADGroupMember -Identity "Lync-2010-Users" -Members $DisabledUsers.samaccountname Remove-ADGroupMember -Identity "Lync-2010-Silver" -Members $DisabledUsers.samaccountname Remove-ADGroupMember -Identity "Lync-2010-Gold" -Members $DisabledUsers.samaccountname Remove-ADGroupMember -Identity "Lync-2010-Platinum" -Members $DisabledUsers.samaccountname $DisabledUsers = $DisabledUsers | Get-CsUser | Select-Object DisplayName,SamAccountName,SipAddress,ConferencingPolicy | ConvertTo-Html -fragment } else { $DisabledUsers = "There is no one to disable." } $strResults = $strResults + $DisabledUsers #******************************** # # Create email body # #******************************** $strHTMLBody = $strHTMLHeader + $strResults + $strHTMLFooter #******************************** # # Send email report # #******************************** $msg = new-object Net.Mail.MailMessage $smtp = new-object Net.Mail.SmtpClient($strSMTPServer) $msg.From = $strFromEmail $strToEmail | foreach {$msg.To.Add($_)} $msg.subject = $strSubject $msg.IsBodyHtml = $true $msg.body = $strHTMLBody $smtp.Send($msg)

~ brad

"Good communication is as stimulating as black coffee, and just as hard to sleep after." ~ Anne Morrow Lindbergh

20 May 2014

Couple Updates

Couple updates for you.

Lync 2013 Client - CU7 for May 2014 - KB2880980
Version 15.0.4615.1001

This update resolves the following issues:

  • 2961173 Incorrect emoticons in a conversation after you install Office 2013 SP1 or a later version of Lync 2013
  • 2961174 Update reports NMOS in QoE for calls between Lync 2013 and a Lync mobile client
  • 2961175 Cannot hear the voice in an audio/video call in Lync 2013


Also the Office 2013 Visio stencil has been updated. You can grab the new file here.

~brad

“The original question, 'Can machines think?' I believe to be too meaningless to deserve discussion.” ~ Alan Turing, Mechanical Intelligence: Collected Works of A.M. Turing

13 May 2014

Powershell: Lync User Report

When I first started in my current position, we were positioning to roll out Lync to all of our users company wide. My boss wanted a way to track how many users we actually had enabled. Rather than giving him a simple number of users by running (Get-CsUser).Count, I wanted to be able to provide him more information. In addition I could easily see how well my pools were balanced. This is actually part of a larger report that I have set up as a daily scheduled task. I decided to break it into two pieces for the blog and will post the combined script after that.

Basically this script collects user counts based on registrar pool and Conferencing policy, puts it into a couple nice tables, and emails the report to me. This script provided here looks at two registrar pools and three Conferencing policies. You should be able to modify this as needed for your environment.

I have run this on my Lync 2010 and 2013 Front End servers.

Download the script here. Some of the HTML code included in the script doesn't show up correctly in the preview below.

#******************************************
#
#   DESCRIPTION: Email Report of Lync users based on Registrar Pool and Conferencing Policy
#   VERSION: 1.0
#   UPDATED: 
#   AUTHOR: Brad Roberts
#   CONTACT: brad@thatucguy.com
#   BLOG: http://www.thatUCguy.com
#   BLOG ENTRY: http://www.thatucguy.com/2014/04/powershell-lync-user-report.html
#
#   DISCLAIMER: You running this script means you won't blame me if this breaks your stuff. This script is provided AS IS and is not guaranteed to work perfectly in your environment. Testing is always a good idea. Any risk in running this script is entirely on you.
#
#******************************************

#******************************************
#
# Variable Definitions
#
#******************************************

$strSubject = "Lync User Report"
$strSMTPServer = "smtp.thatucguy.com"
$strToEmail = "lync.admin@thatucguy.com"
$strFromEmail = "no-reply@thatucguy.com"
# Registrar Pools
$poolAmericasFQDN = "lync-pool-americas.thatucguy.com"
$poolAmericas = "Americas Users"
$poolEMEAFQDN = "lync-pool-emea.thatucguy.com"
$poolEMEA = "EMEA Users"
# Conferencing Policies
$ConfSilver = "Lync-Conferencing-Silver"
$ConfGold = "Lync-Conferencing-Gold"
$ConfPlatinum = "Lync-Conferencing-Platinum"

#******************************************
#
# Load Required PS Modules
#
#******************************************

if ((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
if ((Get-Module Lync) -eq $null){Import-Module Lync}

$blnDebug = $false

#********************************
#
# Get User counts, total and for each pool
#
#********************************

$counttotal = (Get-CsUser -OnLyncServer).count
$countamericas = (Get-CsUser -filter {registrarpool -eq $poolAmericasFQDN}).count
$countemea = (Get-CsUser -filter {registrarpool -eq $poolEMEAFQDN}).count
$usercount = $usercount + "

Lync User Report

" $usercount = $usercount + "" $usercount = $usercount + "
Total Users$poolAmericas$poolEMEA
$counttotal$countamericas$countemea
" #******************************** # # Get User counts by Conferencing Policy # #******************************** $countSilver = (Get-CsUser -filter {ConferencingPolicy -eq $ConfSilver}).count $countGold = (Get-CsUser -filter {ConferencingPolicy -eq $ConfGold}).count $countPlatinum = (Get-CsUser -filter {ConferencingPolicy -eq $ConfPlatinum}).count $ConfCount = $ConfCount + "

Lync User Report by Conferencing Policy

" $ConfCount = $ConfCount + "" $ConfCount = $ConfCount + "
Silver UsersGold UsersPlatinum Users
$countSilver$countGold$countPlatinum
" #******************************** # # Create and send email # #******************************** $strComputerName = gc env:computername $dtTimeNow = get-date $strScriptInfo = " Script Info Script Name: " + $MyInvocation.MyCommand.Definition + " Time: " + $dtTimeNow + " Run From: " + $strComputerName $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLHeader = $strHTMLHeader + "" $strHTMLFooter = $strHTMLFooter + $strScriptInfo $strHTMLFooter = $strHTMLFooter + "" $strHTMLFooter = $strHTMLFooter + "" $strHTMLBody = $strHTMLHeader + $usercount + $ConfCount + $strHTMLFooter $msg = new-object Net.Mail.MailMessage $smtp = new-object Net.Mail.SmtpClient($strSMTPServer) $msg.From = $strFromEmail $strToEmail | foreach {$msg.To.Add($_)} $msg.subject = $strSubject $msg.IsBodyHtml = $true $msg.body = $strHTMLBody $smtp.Send($msg)

Hope this helps!

brad

Fun Fact:
Louisiana is the first state to have an Official Crustacean and it is the crawfish.

25 March 2014

Lync Architecture Poster

In case you haven't seen it yet, Microsoft has updated the Lync Workload poster for 2013. They have also added a few new posters. These are helpful to any Lync administrator, new or experienced.

Links to all of them can be found on TechNet.

Lync Server 2013 On Premises Architecture
     Architectural guidance
Lync Call Quality Methodolgy
     Help find and eliminate call quality issues
     Metrics for server monitoring
Lync 2013 Platform Options
     Shows various platforms options - Online, Hybrid, Onsite and Hosted
Microsoft Lync 2013 Protocol Workloads
     How Lync workloads are processed

~ brad

"Books may look like nothing more than words on a page, but they are actually an infinitely complex imaginotransference technology that translates odd, inky squiggles into pictures inside your head." ~ Jasper Fforde

20 March 2014

Lync Client Version Numbers


Here is a list of all the CUs that have been released for the Lync Client. Lync Server version numbers can be found here.

Last Updated 13 June 2014

Lync Client 2010

CU # Release Date Version Link
CU1 January 2011 4.0.7577.108 http://support.microsoft.com/kb/2467763
CU2 April 2011 4.0.7577.253 http://support.microsoft.com/kb/2496325
CU3 May 2011 4.0.7577.280 http://support.microsoft.com/kb/2551268
CU4 July 2011 4.0.7577.314 http://support.microsoft.com/kb/2571543
CU5 November 2011 4.0.7577.4051 http://support.microsoft.com/kb/2514982
CU6 February 2012 4.0.7577.4072 http://support.microsoft.com/kb/2670326
CU7 June 2012 4.0.7577.4103 http://support.microsoft.com/kb/2701664
CU8 October 2012 4.0.7577.4356 http://support.microsoft.com/kb/2737155
CU9 March 2013 4.0.7577.4378 http://support.microsoft.com/kb/2791382
CU10 April 2013 4.0.7577.4384 http://support.microsoft.com/kb/2815347
CU11 July 2013 4.0.7577.4398 http://support.microsoft.com/kb/2842627
CU12 October 2013 4.0.7577.4409 http://support.microsoft.com/kb/2884632
CU13 January 2014 4.0.7577.4419 http://support.microsoft.com/kb/2912208


Lync Client 2013

CU # Release Date Version Link
CU1 February 2013 15.0.4454.1509 http://support.microsoft.com/kb/2812461
CU2 July 2013 15.0.4517.1004 http://support.microsoft.com/kb/2817465
CU3 November 2013 15.0.4551.1005 http://support.microsoft.com/kb/2825630
CU4 December 2013 15.0.4551.1007 http://support.microsoft.com/kb/2850057
CU5/
SP1
February 2014 15.0.4569.1503
http://support.microsoft.com/kb/2817430
CU6 April 2014 15.0.4605.1003 http://support.microsoft.com/kb/2880474
CU7 May 2014 15.0.4615.1001
http://support.microsoft.com/kb/2880980


Lync for Mac 2011

CU # Release Date Version Link
CU1 October 2011 14.0.1 http://support.microsoft.com/kb/2634523
CU2 April 2012 14.0.2 http://support.microsoft.com/kb/2690036‎
CU3 August 2012 14.0.3 http://support.microsoft.com/kb/2726395
CU4 February 2013 14.0.4 http://support.microsoft.com/kb/2778095
CU5 June 2013 14.0.5 http://support.microsoft.com/kb/2844274
CU6 October 2013 14.0.6 http://support.microsoft.com/kb/2888920
CU7 December 2013 14.0.7 http://support.microsoft.com/kb/2909662
CU8 April 2014 14.0.8 http://support.microsoft.com/kb/2952672
CU9 June 2014 14.0.9 http://support.microsoft.com/kb/2963369

Hope this helps!

~ brad

"The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents."  ~ Nathaniel Borenstein

Lync Server Version Numbers


Here is a list of CUs released for Lync Server. Lync Client version numbers can be found here.

Last Updated: 20 March 2014

Lync Server 2010

CU # Release Date Version Link
CU1 January 2011 4.0.7577.108 http://support.microsoft.com/kb/2467775
CU2 April 2011 4.0.7577.137 http://support.microsoft.com/kb/2500442
CU3 July 2011 4.0.7577.166 http://support.microsoft.com/kb/2571546
CU4 November 2011 4.0.7577.183 http://support.microsoft.com/kb/2514980
CU5 February 2012 4.0.7577.190 http://support.microsoft.com/kb/2670352
CU6 June 2012 4.0.7577.199 http://support.microsoft.com/kb/2701585
CU7 October 2012 4.0.7577.203 http://support.microsoft.com/kb/2737915
CU8 March 2013 4.0.7577.216 http://support.microsoft.com/kb/2791381
CU9 July 2013 4.0.7577.217 http://support.microsoft.com/kb/2860700
CU10 October 2013 4.0.7577.223 http://support.microsoft.com/kb/2889610
CU11 January 2014 4.0.7577.225 http://support.microsoft.com/kb/2909888

Lync Server 2013

CU # Release Date Version Link
CU1 February 2013 5.0.8308.291 http://support.microsoft.com/kb/2781547
CU2 July 2013 5.0.8308.420 http://support.microsoft.com/kb/2819565
CU3 October 2013 5.0.8308.556 http://support.microsoft.com/kb/2881684
CU4 January 2014 5.0.8308.577 http://support.microsoft.com/kb/2905048

Hope this helps!

~ brad

"A computer will do what you tell it to do, but that may be much different from what you had in mind."  ~ Joseph Weizenbaum

14 March 2014

Persistent Chat Settings Disappear

One of the best new features in Lync 2013 is the built-in Persistent Chat role. This is a new role for me and lately we have been piloting the feature in my environment. Everything is working great, but a couple of my pilot users complained about the notification settings in the client not being retained. After some testing, I found that the 2013 client would hold the settings on a simple log out, log in; but if you did a full restart of the client or rebooted the machine that settings would revert back to default of no notifications.


Doing some research, I didn't find much. These settings don't appear to be stored in the registry as the values don't change when settings are changed.

The Persistent Chat policy in Lync is very basic, basically one setting to turn persistent chat on or off for the user base. By default a Global policy is created when you enable Persistent Chat in the topology. Like most Global Policies that are assigned by default, when you look at a user in PowerShell the field shows up blank.



Global automatic policies are a great idea, but in this case appears to only partway work. It does enable users to use Persistent Chat but doesn't save their settings related to it.

As a workaround, I created a new pool policy for the pool my account is in. A few minutes later I was able to exit the client and relaunch it, and my settings remained.

The Technet article for New-CsPersistentChatPolicy doesn't mention a pool policy, but it is available through the Control Panel.

~brad

“What we now want is closer contact and better understanding between individuals and communities all over the earth, and the elimination of egoism and pride which is always prone to plunge the world into primeval barbarism and strife... Peace can only come as a natural consequence of universal enlightenment...” 
~ Nikola Tesla