Tracking Office 365 versions

I’ve just started to work on Office 365 and I wondered how I could track the different versions, their release notes, what changed, when…
I’ve deployed a Semi-Annal Targeted version and got the following version.
I wondered where this info under Product Info come from when you click on File/Office Account:

I started to dig into the registry and the following key contains many info about the Office 365 branch that was installed.

Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration" | 
Select AudienceId,UpdateChannel,*Version*,CDNBaseUrl | fl

Then I found these two links:

These are very nice and let you know what changed but I wanted to avoid parsing a web page to be able to track Office 365 versions, branches… and I’d like to get the same nice chart:

Then I found the github page about deploying Office 365 although I knew about the XML editor.
It appears that it contained all what I needed 😀

So, I wrote a function to help you and me achieve the following:

# See examples provided in the help of the function
Get-Help Get-O365UpdateChannelReleaseHistory -Examples

# Example 1: Displays all branches and releases
Get-O365UpdateChannelReleaseHistory  -Verbose |
ft -AutoSize

Note that there’s a 0 behind the version because it’s a real [version] object and not a [string]. Having real version objects will allow you to do a successful comparison between versions. Idem for release dates.
Notice also that there’s already a Long-Term Servicing Channel (2019) branch in the xml data. Who knew that?

# Example 2: Displays all branches and 
# only displays the latest version of every branch
Get-O365UpdateChannelReleaseHistory -Verbose| 
Where { $_.Latest} | ft -AutoSize

The next examples will display the same branch by calling the function by name, by id, by displayname and by global unique identifier (guid):
Note that every parameter (name, id, displayname and guid) have completion because valid sets have been declared in the parameters block. Just press TAB after a parameter:

# Example 3: Using the name
Get-O365UpdateChannelReleaseHistory -Name FirstReleaseDeferred -Verbose|
ft -AutoSize
# Example 4: using the Id
Get-O365UpdateChannelReleaseHistory -Id Targeted -Verbose|
ft -AutoSize
# Example 5: Using the displayname
Get-O365UpdateChannelReleaseHistory -DisplayName 'Semi-Annual Channel (Targeted)' -Verbose | ft -AutoSize
# Example 6: using a GUID
Get-O365UpdateChannelReleaseHistory -Guid b8f9b850-328d-4355-9145-c59439a0c4cf -Verbose | ft -AutoSize

If the function was able to download at least once a file but then fails, it will use the previous file that was previously downloaded. The verbose stream displays the published date found in the downloaded xml file:

Enjoy 😎


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s