Quality of Service (QoS) Calculator – Plan Your Network, GPO, and Lync/Skype for Business Config More Easily

November 5th, 2014 25 comments

Description

When deploying Microsoft Lync/Skype for Business Server, network health and configuration can be crucial.

The QoS Calculator allows you to pick and choose what components and clients will be used in your environment as well as which specific clients. You’re also able to pick a starting port number, port count, and DSCP value for each modality. The calculator will ensure that port ranges are consecutive, and that they don’t extend past 65535. The calculator will list all relevant Group Policy Object (GPO) settings, as well as the PowerShell commands needed to configure Lync/Skype for Business Server. Clients available for configuration include Lync 2010 and Lync 2013 full client, Lync 2010 Attendant and Landis Computer’s Attendant Pro attendant clients, Windows Store App client, Lync Phone Edition, and more. Server side options include A/V conferencing, application sharing, Response Group Service applications, Conference Announcement service, Call Park, UCMA apps, PSTN audio, A/V Edge services, Exchange UM, and the VDI client.

To start with, go to the INPUT tab. Any of the green cells can be changed. Reset buttons allow you to set port and port count settings back to their original values. Future releases will also reset the DSCP values as well (just need to figure out how to do that in Office VBA). Red cells indicate an error (missing or incorrect data).

1

Enter your Front End and Edge pool FQDNs. If you have a separate mediation pool, enter that name as well. The values defined here are used to compose the PowerShell commands needed to configure Lync/Skype for Business Server.

2

You can show/hide different policy types using the appropriate check boxes.

qoscalculator3

If your Mediation role is collocated with your Front End servers, check the box. This will combine the appropriate GPO policies together.

qoscalculator4

Changes to green cells are immediately reflected elsewhere in the calculator.

Once you have the values entered/verified, go to the POLICIES tab to see a list of GPO settings needed. Check out Elan Shudnow’s awesome Enabling QoS for Lync Server 2013 and Various Clients and Jeff Schertz’s Lync Quality of Service Behavior for a deep dive into setting up QoS.

Next, go to the POWERSHELL-SERVER tab, and you’ll see the relevant Lync/Skype for Business Management Shell commands to configure the server-side based on the info you supplied. Copy and paste each into Lync/Skype for Business Server Management Shell.

Now, go to the POWERSHELL-GPO tab, and you can copy and paste PowerShell code into a PowerShell console on a domain controller to automatically create and configure the Group Policy Objects for server and client machines.

Lastly, the Registry-Edge tab contains the PowerShell code that updates the local security policy on the edge servers is used to configure QoS, since GPOs aren’t used in non-domain joined machines. It’s important that these commands be run in an elevated PowerShell session.

I have tons of ideas for more features and functionality. Feel free to comment below on things you’d like to see in future versions.

Syntax

None

Installation

None. Just open the file in Excel. As this is a macro based file, you’ll need to enable content when prompted.

Assumptions

None

Download

v1.7 – 02/28/2017 – QoS-Calculator-v1.7.xlsm

v1.6 – 12-19-2016 – QoS Calculator v1.6.xlsm

v1.5 – 11-04-2016 – QoS-Calculator-v1.5.xlsm

v1.4 – 09-13-2016 – QOS Calculator v1.4.xlsm

v1.3 – 04-26-2016 – Lync 2013 QoS Calculator v1.3.xlsm

v1.2 – 02-27-2015 – Lync 2013 QoS Calculator v1.2.xlsm

v1.1 – 01-26-2015 – Lync 2013 QoS Calculator v1.1.xslm

v1.0 – 11-5-2014 – Lync 2013 QoS Calculator v1.0.xlsm

Changelog

See the changelog for information on what’s changes/included in each version.

Changelog: QoS Calculator

November 5th, 2014 No comments

This is the changelog page for QoS Calculator. You will find a complete list of released versions, their dates, and the features and issues addressed in each. Please refer to the script’s main page for more information including download links, installation details, and more.

v1.7 – 02/28/2017

  1. Fixed a typo on the Registry Edge tab. The line that sets “Do not use NLA” had a typo. It mistakenly said “No not use NLA”.

v1.6 – 12-19-2016

  1. Minor tweak to PowerShell code for servers.
  2. Fixed an issue with some rows not being hidden or becoming visible on the PowerShell-GPO tab. Thanks to @GreigInSydney for pointing it out.
  3. Fixed an issue where changing the server audio DSCP value on the Input tab would not get reflected on the Registry-Edge tab
  4. Added Server Audio and Server App Sharing config to the Registry-Edge tab. Thanks to Brad for pointing it out.
  5. Fixed an issue where the wrong video ports could be set for the Skype for Business client. Thanks to Tim for pointing it.

v1.5 – 11-04-2016

  1. Updated URLs to new website (although going to old URLs will auto redirect to new ones)
  2. Fixed a couple of missing references to Skype for Business in the GPO code. No functionality change – just visual.
  3. Fixed an issue where deselecting some check boxes would hide the wrong line or no line on the PowerShell-GPO tab. Thanks to @GreigInSydney for pointing these out.
  4. Fixed an issue where changing the server audio port for Edge servers didn’t update the “Registry-Edge” tab code. Thanks to @GreigInSydney for pointing these out.
  5. Fixed an issue where deselecting all client policies would still output code for a client GPO (albeit empty)

v1.4 – 09-13-2016

  1. Fixed an issue with PowerShell code throwing an error when attempting to configure the registry on Edge servers.
  2. Fixed an issue where selecting/deselecting certain check boxes didn’t show/hide all of the related lines in the PowerShell-GPO worksheet.
  3. Added the executable name for VDI clients running Citrix HDX RealTime Optimization Pack 2.0 – Thanks to Ari for the info.

v1.3 – 04-26-2016

  1. Now generates the PowerShell code to create GPO for domain joined edge servers
  2. Now generates the PowerShell code to create local security policy for non-domain joined edge servers
  3. Now generates the PowerShell code to create GPO for Exchange UM
  4. Fixed issue with first trusted application port not processing correctly
  5. Disabled the UserConfiguration branch of GPOs for faster evaluation/processing
  6. Added buttons to copy policy code, config code, etc.
  7. Clarified polices required between Edge & Exchange UM based on executable info from Tony Smith @ Microsoft.
  8. Corrected Exchange UM DSCP value to match client audio value – was mistakenly set to match client video value. Thanks to @bricomp.
  9. Fixed two typos on PowerShell-Server tab in the verification code column. Thanks to @UCMadeEasy for pointing them out.
  10. Updated some naming to include both Lync and Skype for Business names”

v1.2 – 2-27-2015

  1. “PowerShell code for creating and configuring GPOs has been added. Note that since edge servers are not joined, GPOs have no effect on them. You must create the edge policies manually using the Local Security Policy on each edge server.
  2. SDN control port value (which is 9333 by default) can now be included, and a button checks to make sure the entered port is not within the defined port ranges.
  3. Up to 3 trusted app ports can also be defined, with the same button verifying there is no conflict. Examples of trusted apps include sefautil (port 7489).”

v1.1 – 01-26-2015

  1. Fixed server app sharing end port calculation. It was incorrectly showing an end port that was 1 higher than the correct amount.
  2. Moved edge server port definitions to destination instead of source
  3. Added fields to define trusted app ports, and SDN port. This will be used in the future to ensure there is no conflict in port assignments.
  4. Added configuration verification commands to PowerShell tab
  5. Fixed typo in PowerShell code for mediation server. Thanks to Andy.

v1.0 – 11-05-2014

  1. Initial version

Norway, Here I Come!

October 3rd, 2014 No comments

One of the great things about being involved in The UC Architects is all the people we meet. I’m part of a team of 15 of some really smart UC guys with TONS of experience. Nearly all are MVPs, some are MCMs, and all have a great deal of knowledge. With the collective reach of the individuals, we’ve made some amazing contacts.

So I was really excited (and honored) when I was invited to attend & host an episode at Norwegian Lync day on October 14. The Norwegian Lync Day will take place in Oslo, Norway, a locale I’ve yet to visit. It’s a one day conference with two tracks of sessions around Lync. Everything from Wi-Fi and BYOD, analytics and validation, to topics such as Hybrid, Skype, telephony and mobility. See the full session list in English here. With the exception of the keynote, everything else will be presented in English, which is good, because my Norwegian is pretty sad.

A pile of MVPs will be there, from fellow UC Architects host Steve Goodman and fellow Modality Systems colleague Tom Arbuthnot, to others including Martin Lidholm, Ståle Hansen, Tommy Clarke, Johan Delimon, and Adam Gent. MVPs will be participating in an Ask The Experts style event that will include Q&A, white boarding, etc. There will be tons of vendors there, so you can check out hardware, software, and services that are compatible with Lync.

My MVP and UC Architects colleague Stale Hansen has done a great video describing the event. Check it out below.

If you’re attending Norwegian Lync Day, stop by our live recording at 1600 and say hi! Or find me. I’ll be wearing a UC Architects t-shirt.

See you there!

Review: Logitech ConferenceCam CC3000e – Your Next Lync Conference Room System

July 8th, 2014 No comments

At the 2014 Lync Conference, Logitech showed their inexpensive conference room device called the ConferenceCam CC3000e. It got a lot of attention for several reasons. The first is the relatively low list price of $999. The second was the features that this unit contained. After seeing a quick demo at the conference, and talking to some folks at Logitech, I couldn’t wait to get my hands on one of these to play with. Finally, it showed up and I’ve been using it since.

The system comes with several key components:

cameraCamera. The free-standing camera unit has a 1080p HD camera on a motorized pan/tilt unit that’s controlled by either the control unit, the infrared remote control, or a small client plug-in that supports both local and remote (far end) control. The client plug-in is available for Lync 2010, 2013, Skype, and Cisco Jabber. The camera supports up to 30 frames per second, 10x zoom, and a 90 degree field of view, pans 260 degrees, and tilts 130 degrees. This yields excellent video quality and flexibility. The camera supports H.264 & SVC, which allows for the offloading of video processing onto the unit itself instead of the PC it’s connected to. When not in use, the camera reverts to a position aimed down and away from users. When it’s next used, it returns to its previous “home” position. The camera can be table mounted, wall mounted, or even attached to a tripod with its industry standard threaded insert on its bottom.

console and remoteConsole unit. This is the heart of the unit, and contains two full-duplex omnidirectional mics that pick up conversations for everyone within about 20 feet in your conference room. Unlike other systems, the CC3000e doesn’t require separate mic pods. The unit has both touch controls for common features such as adjusting the camera for pan, tilt, and zoom, as well as on/off hook, mute, volume, etc. Also located on the control unit is a digital display that shows call information including called number or caller ID, and a call timer. The console also support both Bluetooth and NFC connectivity to devices.

Remote control. This is a very simple remote that includes all of the buttons that the console unit has, except for the Bluetooth button. The buttons are large and easy to see in a dimly lit room. The remote sits on the console unit when not in use.

hubHub. This is the center of all physical connections. Among the connections to this hockey puck sized unit are a USB connection to a PC, a cable to the camera, a cable to the console unit, and a small power cable. This can be mounted or located out of sight. A small LED on the front indicates it has power.

Testing. I’ve been playing with this unit for several weeks now. This is one slick unit. It’s easy to set up and get going, and the controls are fairly intuitive. Even without installing the client plugin, I was up and running in seconds. An “idiot proof” pictograph on the inside lid of the box made connecting things simple.

I set my Lync client to default to the CC3000e, and started making audio and video calls. The sound was fabulous on both sides. The camera has great quality, and the ability to pan/tilt/zoom was something I was constantly playing with. I found myself using the CC3000e as my defacto device for all calls. Moving around my office, people in the conference could still hear me clearly, and I could adjust the camera if I decided to sit elsewhere in the room. A company initiative to add video to every call meant I had plenty of opportunities to test the video features. And, a nice, bright, obvious LED indicator shows muted/unmuted status that’s visible anywhere. This is a nice feature, as a common complaint I hear is that people often don’t notice they’re muted when using just the Lync client. With the CC3000e, you can’t miss it.

Updating the firmware of the device requires the installation of a small app, and it’s pretty straightforward. Personally, I’d like to see this rolled into the client plug-in instead of being a separate install/app to deal with.

As with any solution, nothing is perfect. I did notice a couple of things. First, entering a conference where you’re already muted sometimes shows the blue indicator (unmuted) instead of the expected red muted indicator. Pressing the mute button on the console quickly resolves this. But it can be a tad confusing when the client shows muted, but the console doesn’t. At any other time, the mute status on the console was correct.

Second, the console unit buttons can be a little hard to see in low light scenarios. So, when presenting something on a screen, with the lights turned low, the keys are just hard enough to make it difficult to distinguish the symbols on them. I did notice that the symbols on the remote control were easier to see. A possible solution would be backlit buttons on the console unit. But this is just a minor issue, as I don’t often have the lights turned down low.

Everything else worked great on all of my calls. I played around with putting the camera in different locations, at different heights. I tried audio from different spots in the room. And I certainly pushed all the buttons during calls. This is an excellent device that I would recommend to any org that expects up to 6-10 people in moderately sized conference rooms. It is well worth the price.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Removing PIC Federation Configuration for AOL and Yahoo!

July 7th, 2014 No comments

In November of 2012, Microsoft announced that Public IM Connectivity (“PIC”) federation for AOL and Yahoo! would be ending. Microsoft gave a good advanced warning, eventually saying it would cease on June 30, 2014. They held true to that date, and connectivity via the traditional methods is no longer available. Some have even reported that Yahoo! federation stopped working as early as April 2014.

I’ve run some reporting using Get-CsFederatedConversationDetails.ps1 and verified that other than my occasional conversations with dear old Mom, no one was using these PIC providers. So no big loss, and certainly, no business impact. But, for those orgs that DO require connectivity to AOL, such as some of the hedge fund groups, AOL does have a service that will allow your users to communicate with AOL users. It does. however, require a monthly per user fee. More information can be found at https://aimenterprise.aol.com/microsoft/.

For now, any AOL or Yahoo! contacts that users have in their contacts list will show as Presence Unknown.

It now makes sense to remove the related configuration for your Lync config – if you had it configured previously. PIC federation is configured via Public Providers. We can see the public providers configured via the Get-CsPublicProvider cmdlet, as shown below.

LSMS - before

Removing the configuration for AOL and Yahoo! can be performed with one line of code.

Get-CsPublicProvider | Where-Object {$_.ProxyFQDN -eq "sip.oscar.aol.com" -or $_.ProxyFQDN -eq "lcsap.msg.yahoo.com"} | Remove-CsPublicProvider

This will remove just the AOL and Yahoo! public providers, and leave any others, like Skype, as shown below when running Get-CsPublicProvider again.

LSMS - after

If you’re a little apprehensive about using PowerShell (and you shouldn’t be – embrace the shell!), we can also remove the public providers in the Lync Server Control Panel. Navigate to Federation and External Access>SIP Federated Providers. You’ll see a list of both public and hosted providers as shown below.

LSCP - before

Merely select the appropriate provider you’d like to remove, select Edit>Delete. Once you’ve removed both the AOL and Yahoo! providers, you’re left with any remaining public and hosted providers as shown below.

LSCP - after

Once clients refresh their config, the options for AOL and Yahoo! will no longer be available when adding new contacts.

client

Users wills still need to manually remove AOL and Yahoo! federated contacts from their contacts list, though.

Changelog: New-SignedScript

June 10th, 2014 No comments

This is the changelog page for New-SignedScript. You will find a complete list of released versions, their dates, and the features and issues addressed in each. Please refer to the script’s main page for more information including download links, installation details, and more.

v1.3 – 09-18-2016

  1. Now includes a selection box when more than one valid code signing certificate is found.

v1.1 – 06-10-2014

  1. Better handling when there is more than one code signing cert. Script now finds the first valid code signing cert and uses that.
  2. Better validation that the script is successfully signed

v1.0 – 09-20-2012

  1. Initial version
Categories: PowerShell Tags: , ,

Script: Get-CsFederatedConversationDetails.ps1 – See Stats About Conversations With Specific Federated Domains

May 13th, 2014 5 comments

Lync 2013 logo 128x128Description

Richard Schwendiman, PFE at Microsoft, came up with a great SQL query that you could plug into SQL Server Management Studio to see time & date info for conversations with federated or PIC domains. In Richard’s case, he used the aol.com PIC domain. Since PIC federation with AOL and Yahoo is ending next month, I thought this was great timing on Richard’s part. But sometimes, Lync admins can’t login to SQL servers to run queries due to security policy. Plus, the query is something you’d have to keep handy and edit accordingly each time you wanted to get data. So I figured – hey, why not whip up a quick script to allow an admin to query SQL for this data, allowing for any domain and time frame to be specified? Poof – out comes my script.

This script will query a specific SQL server for information about a specific federated SIP domain. The domain does NOT need to be in the allowed domains list if you’re open federating. Any SIP domain name works. You can specify a start date/time in the yyyy-MM-dd format, such as 2014-05-13 using the -TimeSpan parameter. Or, you can use some handy ranges I’ve included, including LastWeek (the last 7 days), Last30Days, Last year (last 365 days), FirstOfYear or ThisYear (since Jan. 1), FirstOfMonth or ThisMonth (since the 1st of the month), FirstOfWeek or ThisWeek (since Sunday). Optionally, you can specify an end date/time in the yyyy-MM-dd format. This script will default to FirstOfYear with no end date, and aol.com for the domain. As we see below, only the SQL server holding the LcsCDR database is queried.

aol3

Now, from this output, we see that there is not a lot of communications with people on AOL since the first of the year. The upcoming change should have very little impact.

If you’re using a named instance in SQL, you can specify it as well.

The script outputs a full object, just like other cmdlets, so you can pipe it to other commands to alter the display, including sorting, or my favorite, Out-GridView, as well as outputting to files such as .csv.

Hopefully, this tool will make life a little easier in digging out data.

Syntax

Get-CsFederatedConversationDetails.ps1 [[-SqlServer] ] [[-SqlInstance] ] [[-SipDomain] ] [[-TimeSpan] <object>] [[-EndDate] <object>] [-WhatIf ] [-Confirm ] [<commonparameters>]</commonparameters></object>

Installation

Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Assumptions

None

Download

v1.0 – 05-13-2014 – Get-CsFederatedConversationDetails.v1.0.zip

Changelog

See the changelog for information on what’s changed/included in each version.

 

Changelog: Get-CsFederatedConversationDetails.ps1

May 13th, 2014 No comments

This is the changelog page for Get-CsFederatedConversationDetails.ps1. You will find a complete list of released versions, their dates, and the features and issues addressed in each. Please refer to the script’s main page for more information including download links, installation details, and more.

v1.0 – 05-13-2014

  1. Initial version

Script: Get-CsUpdateVersion.ps1 – See the Cumulative Update Level Of All Lync/Skype for Business Servers

May 2nd, 2014 45 comments

Description

My work at Modality Systems often has me doing health checks for customer Lync environments. These can be due to customer requests, or as part of our onboarding for new managed support customers. If you’ve ever had an Active Directory Risk Assessment Program (ADRAP) or Exchange Risk Assessment Program (ExRAP), it’s quite similar. Lots of tasks to run, lots of data to sift through. So it’s always beneficial to standardize and automate the steps to get the data. The same is the case when you’re responsible for your own environment and want to ensure good health.

Just like Get-CsDatabaseUpdateStatus.ps1, Dave Howe from the Lync product group and I teamed up to automate something. In this case, it’s looking at what Cumulative Updates are installed on each server throughout a Lync environment. This script queries each pool, then finds what servers are part of that pool, and queries each server to find the CU that’s installed. It then provides an easy to read output of the entire environment (with exceptions) for easy review. As shown below, we see three multi-server pools, the version number and “friendly” Cumulative Update info.

PS C:\> .\Get-CsUpdateVersion.ps1

ComputerName   : sjc-edge01
PoolFqdn       : sjc-edge01.contoso.com
Version        :
Product        :
Update         :
FriendlyResult : PSRemoting failure
UpToDate       :
UpdateUrl      :

ComputerName   : sjc-fe01
PoolFqdn       : sjc-fe01.contoso.com
Version        : 6.0.9319.272
Product        : Skype for Business Server 2015
Update         : CU4 - 11/04/2016
FriendlyResult : Skype for Business Server 2015 CU4 - 11/04/2016
UpToDate       : False
UpdateUrl      : http://support.microsoft.com/kb/3199093

ComputerName   : sjc-pc01
PoolFqdn       : sjc-pc01.contoso.com
Version        : 6.0.9319.272
Product        : Skype for Business Server 2015
Update         : CU4 - 11/04/2016
FriendlyResult : Skype for Business Server 2015 CU4 - 11/04/2016
UpToDate       : False
UpdateUrl      : http://support.microsoft.com/kb/3199093

The script works fine with Standard Edition servers as well.

In the first example, you see that the first two servers show “PSRemoting failure”. This is because the script uses PowerShell Remoting to connect to each remote server to query information (see installation notes below). PSRemoting doesn’t really work the same when dealing with non-domain joined machines, such as the first two, which are edge servers. So the script isn’t able to communicate with them via PSRemoting, and flags them. If the script can’t ping a server, it will show as “offline”. The friendly name of the CU shown is coded in the online XML file that the script queries. So I’ll update it each time a new CU is released.

By default, the script checks all pools. But you can specify a single pool by using the -PoolFqdn parameter.

Syntax

Get-CsUpdateVersion.ps1 [[-PoolFqdn] ] [-WhatIf] [-Confirm]

Installation

This script uses PowerShell Remoting to query remote servers. PSRemoting is enabled by default on Windows Server 2012 and later, but disabled by default on 2008 R2. To enable PSRemoting on 2008 R2 servers, see Enable-PSRemoting. The script requires Internet access on the machine the script is running on. This is to query the XML file containing the update information.

Execution Policy: Third-party PowerShell scripts may require that the PowerShell Execution Policy be set to either AllSigned, RemoteSigned, or Unrestricted. The default is Restricted, which prevents scripts – even code signed scripts – from running. For more information about setting your Execution Policy, see Using the Set-ExecutionPolicy Cmdlet.

Donations

I’ve never been one to really solicit donations for my work. My offerings are created because *I* need to solve a problem, and once I do, it makes sense to offer the results of my work to the public. I mean, let’s face it: I can’t be the only one with that particular issue, right? Quite often, to my surprise, I’m asked why I don’t have a “donate” button so people can donate a few bucks. I’ve never really put much thought into it. But those inquiries are coming more often now, so I’m yielding to them. If you’d like to donate, you can send a few bucks via PayPal at https://www.paypal.me/PatRichard. Money collected from that will go to the costs of my website (hosting and domain names), as well as to my home lab.

Assumptions

None

Download

v3.9 – 03-08-2017 – Get-CsUpdateVersion.v3.9.zip

v3.8 – 02-14-2017 – Get-CsUpdateVersion.v3.8.zip

v3.7 – 02-05-2017 – Get-CsUpdateVersion.v3.7.zip

v3.6 – 01-06-2017 – Get-CsUpdateVersion.v3.6.zip

v3.5 – 11-28-2016 – Get-CsUpdateVersion.v3.5.zip

v3.4 – 11-12-2016 – Get-CsUpdateVersion.v3.4.zip

v3.3 – 08-31-2016 – Get-CsUpdateVersion.v3.3.zip

v3.2 – 07-15-2016 – Get-CsUpdateVersion.v3.2.zip

v3.1 – 07-05-2016 – Get-CsUpdateVersion.v3.1.zip

v3.0 – 04-21-2016 – Get-CsUpdateVersion.v3.0.zip

v2.9 – 04-07-2016 – Get-CsUpdateVersion.v2.9.zip

v2.8 – 01-26-2016 – Get-CsUpdateVersion.v2.8.zip

v2.7 – 12-14-2015 – Get-CsUpdateVersion.v2.7.zip

v2.6 – 11-17-2015 – Get-CsUpdateVersion.v2.6.zip

v2.5 – 11-11-2015 – Get-CsUpdateVersion.v2.5.zip

v2.4 – 10-03-2015 – Get-CsUpdateVersion.v2.4.zip

v2.3 – 09-09-2015 – Get-CsUpdateVersion.v2.3.zip

v2.2 – 07-14-2015 – Get-CsUpdateVersion.v2.2.zip

v2.1 – 06-21-2015 – Get-CsUpdateVersion.v2.1.zip

v2.0 – 05-12-2015 – Get-CsUpdateVersion.v2.0.zip

v1.9 – 02-19-2015 – Get-CsUpdateVersion.v1.9.zip

v1.8 – 02-09-2015 – Get-CsUpdateVersion.v1.8.zip

v1.7 – 01-01-2015 – Get-CsUpdateVersion.v1.7.zip

v1.6 – 12-12-2014 – Get-CsUpdateVersion.v1.6.zip

v1.5 – 11-21-2014 – Get-CsUpdateVersion.v1.5.zip

v1.4 – 09-24-2014 – Get-CsUpdateVersion.v1.4.zip

v1.3 – 09-02-2014 – Get-CsUpdateVersion.v1.3.zip

v1.2 – 08-07-2014 – Get-CsUpdateVersion.v1.2,zip

v1.1 – 06-02-2014 – Get-CsUpdateVersion.v1.1.zip

v1.0 – 05-02-2014 – Get-CsUpdateVersion.v1.0.zip

Changelog

See the changelog for information on what’s changed/included in each version.

Changelog: Get-CsUpdateVersion.ps1

May 2nd, 2014 3 comments

This is the changelog page for Get-CsUpdateVersion.ps1. You will find a complete list of released versions, their dates, and the features and issues addressed in each. Please refer to the script’s main page for more information including download links, installation details, and more.

v3.9 – 03-08-2017

  1. Converted script to return PowerShell objects instead of the previously used write-host and write-output. While this sheds the nicely colored output, it makes it far more effective, and better aligns with PowerShell best practices.
  2. Converted the script to ONLY use the online data for version info. This means that every time a new update is released for Lync Server 2010, Lync Server 2013, and/or Skype for Business Server 2015, I don’t need to release a new version of the script – merely update the hosted XML file containing the data. This also means that users of the script won’t need to always download a new version. This doesn’t mean there will be no further updates to the script.
  3. Fixed an issue where when using the online data (available in the last couple of versions using the -online switch) doesn’t check the online data for each server (and due to a glitch, sometimes twice for each server). The data is retrieved once when the script starts.
  4. Added some more verbose output, as large environments or those with slower connections to remote servers, or those with unreachable servers would slow the script down. Running it with the -verbose option will at least give the user some running information.
  5. Some code cleanup and optimization.

v3.8 – 02-14-2017

  1. added version 6.0.9319.277 for Skype for Business Server

v3.7 – 02-05-2017

  1. Code cleanup/optimization
  2. added version 5.0.8308.984 for Lync Server 2013

v3.6 – 01-06-2017

  1. Added 5.0.8308.977 for Lync Server 2013

v3.5 – 11-28-2016

  1. Added 5.0.8308.974 for Lync Server 2013
  2. Fixed an issue with the Get-UpdateInfo function that was causing unexpected “PSRemoting Failure” errors later in the script.
  3. Added the -online option, which will query update information from an online source instead of the info within the script itself. If this pans out ok, it will be the default method in future versions. It does require that the machine running the script have Internet access.

v3.4 – 11-12-2016

  1. Added new update mechanism
  2. Added some logging
  3. Added 4.0.7577.728 for Lync Server 2010
  4. Added 6.0.9319.272 for Skype for Business Server 2015

v3.3 – 08-31-2016

  1. Added build 5.0.8308.965 for Lync Server 2013

v3.2 – 07-15-2016

  1. Added build 5.0.8308.956 for Lync Server 2013

v3.1 – 07-05-2016

  1. Added build 6.0.9319.259 for Skype for Business Server 2015

v3.0 – 04-21-2016

  1. Added build 4.0.7577.726 for Lync Server 2010
  2. Added build 5.0.8308.949 for Lync Server 2013

v2.9 – 04-07-2016

  1. Added build 6.0.9319.235 (03/18/2016) – Thanks to Geir Age Moretensen for pointing it out

v2.8 – 01-26-2016

  1. Added support for Lync Server 2013 build 5.0.8308.945 (01/03/2016) – Thanks to Geir for pointing it out

v2.7 – 12-14-2015

  1. Added support for Lync Server 2013 build 5.0.8308.941 (12-14-2015)

v2.6 – 11-17-2015

  1. Added support for Skype for Business Server 2015 build 6.0.9319.102 (11/17/2015).

v2.5 – 11-11-2015

  1. Added support for Skype for Business Server 2015 build 6.0.9319.88 (9/26/2015).
  2. Removed references to Skype for Business Server 2015 Cumulative Updates due to general confusion.

v2.4 – 10-03-2015

  1. Added support for Lync Server 2013 CU15 (5.0.8308.927)
  2. Added support for Lync Server 2013 CU14 (5.0.8308.927). Thanks to Geir for submitting the info.
  3. added -SkipUpdateCheck to skip update check

v2.3 – 09-09-2015

  1. Added support for Skype for Business Server 2015 CU2 (6.0.9319.72)
  2. Added default of “Unknown version”. Thanks to Bernard for the idea.
  3. Code optimization
  4. server name is now only displayed as NetBIOS name to help reduce wordwrap (was previously FQDN). It’s red if the version is not the latest (or unknown), and green if it’s the latest version.

v2.2 – 07-14-2015

  1. Added support for Lync Server 2010 CU16 (4.0.7577.713) – Thanks to Martin for pointing it out.
  2. Added support for Lync Server 2013 CU13 (5.0.8308.920)

v2.1 – 06-21-2015

  1. Added support for Skype for Business Server 2015 RTM (6.0.9319.0)
  2. Added support for Skype for Business Server 2015 CU1 (6.0.9319.45)

v2.0 – 05-12-2015

  1. fixed typo for Lync Server 2010 CU15. Thanks to @greiginsydney for pointing it out.
  2. Updated Lync Server 2013 CU 11 – original download was 5.0.8308.871, but current download of CU 11 shows as 5.0.8308.872
  3. Added support for Lync Server 2013 CU 12 (5.0.8308.887)

v1.9 – 02-19-2015

  1. Added Lync Server 2013 CU 11 (5.0.8308.871)

v1.8 – 02-09-2015

  1. Added Lync Server 2010 CU 15 (4.0.7577.710)

v1.7 – 01-01-2015

  1. Added Lync Server 2010 CU 13 (4.0.7577.707)
  2. Added Lync Server 2010 CU 14 (4.0.7577.708)
  3. Added Lync Server 2013 CU 10 (5.0.8308.866)

v1.6 – 12-12-2014

  1. Added Lync Server 2013 CU 9 (5.0.8308.857)

v1.5 – 11-21-2014

  1. Added Lync Server 2013 post CU5 (5.0.8308.803)
  2. Added Lync Server 2013 CU 7 (5.0.8308.831)
  3. Added Lync Server 2013 CU 8 (5.0.8308.834)

v1.4 – 09-24-2014

  1. Added Lync Server 2013 CU6

v1.3 – 09-02-2014

  1. Added Lync Server 2010 CU12

v1.2 – 08-07-2014

  1. Added script check for updates. This is key because each time a new cumulative update comes out, the script will be updated with version info
  2. Added some preliminary code around getting version info for OWAS servers. Need to find a graceful way of getting the server names in a OWAS farm.
  3. Added Lync Server 2013 CU5

v1.1 – 06-02-2014

  1. Tweaked the PSRemoting code block for retrieving version numbers per Chris Irons. This should resolve unexpected results when querying Lync Server 2010 pools.
  2. Filtered out “Debugging Tools” “Resource Kit Tools” “Best Practices Analyzer” and “Meeting Room Portal” which could have a higher version number and cause incorrect results – thanks to Andy G for pointing that out.
  3. Shortened some of the output text to reduce the likelihood of word wrap.

v1.0 – 05-02-2014

  1. Initial version