Category Archives: Microsoft Apps for Enterprise

Check what Outlook versions are connecting to you Exchange servers

If you are running Exchange 2010, 2013, 2016 or 2019. You will need to run the following PowerShell script and in this example I am going to be targeting Exchange 2010.

# This is just default path to Exchange 2010 RPC logs. Change it to match your Exchange version.
$logpath = 'C:\Program Files\Microsoft\Exchange Server\V14\Logging\RPC Client Access'

# We limit the amount of logs by timeframe. This is to get more current view.
$files = Get-ChildItem $logpath |Where-Object {$_.LastWriteTime -ge (Get-Date).AddDays(-15)}

# Now, let's get the logs.
$logs = $files | ForEach {Get-Content $_.FullName}| Where-Object {$_ -notlike '#*'}

# We covert the data to PowerShell objects
$result = $logs |ConvertFrom-Csv -Header date-time,session-id,seq-number,client-name,organization-info,client-software,client-software-version,client-mode,client-ip,server-ip,protocol,application-id,operation,rpc-status,processing-time,operation-specific,failures

# And finally we filter the client information  and group it by version number.
$result | Where-Object {$_.'client-software' -eq 'OUTLOOK.EXE'}|group client-software-version

Once you have obtained the required information, you need identity which Outlook version is contacting to your Exchange server by using the following table.

Version numberName
5.0.3165.0Outlook 2000
6.0.7654.12Outlook 2000
6.0.8153.0Outlook 2000
6.0.8165.0Outlook 2000
6.0.8211.0Outlook 2000
6.0.8244.0Outlook 2000
10.0.0.2627Outlook 2002
10.0.0.4115Outlook 2002 SP2
10.0.0.6515Outlook 2002 SP3
10.0.0.6742Outlook 2002 SP3
11.0.5604.0Outlook 2003
11.0.6352.0Outlook 2003 SP1
11.0.6555.0Outlook 2003 SP2
11.0.8000.0Outlook 2003 SP2
11.0.8161.0Outlook 2003 SP3
11.0.8200.0Outlook 2003 SP3
11.0.8303.0Outlook 2003 SP3
12.0.4518.1014Outlook 2007 RTM
12.0.6024.5000Outlook 2007 RTM
12.0.6211.1000Outlook 2007 SP1
12.0.6300.5000Outlook 2007 SP1
12.0.6315.5000Outlook 2007 SP1
12.0.6423.1000Outlook 2007 SP2
12.0.6504.5001Outlook 2007 SP2
12.0.6509.5000Outlook 2007 SP2
12.0.6529.5000Outlook 2007 SP2
12.0.6539.5000Outlook 2007 SP2
12.0.6550.5000Outlook 2007 SP2
12.0.6554.5000Outlook 2007 SP2
12.0.6557.5000Outlook 2007 SP2
12.0.6562.5003Outlook 2007 SP2
12.0.6606.1000Outlook 2007 SP3
12.0.6661.5000Outlook 2007 SP3
12.0.6665.5000Outlook 2007 SP3
14.0.4734.1000Outlook 2010 RTM
14.0.6025.1000Outlook 2010 SP1
14.0.6109.5000Outlook 2010 SP1
14.0.6117.5001Outlook 2010 SP1
14.0.7151.5000Outlook 2010
14.0.7157.5000Outlook 2010
14.0.7160.5000Outlook 2010
15.0.4128.1019Outlook 2013 Preview
15.0.4727.1000Outlook 2013
15.0.4753.1003Outlook 2013
16.0.4229.1029Outlook 2016

Regards
The Author – Blogabout.Cloud

Dealing with Missing Languages Packs in Microsoft Apps for Enterprise

Sometimes, you may come across an issue the required language pack is missing from your specified SourcePath location. As an administrator for your network may have not downloaded it or removed it by accident. In the event this may or may not happen, Microsoft recommends that you specify a backup language and allow the Office 365 Deployment Tool to use the Office CDN (Content Delivery Network) for missing files.

To do is you will need to ensure that the required languages are specified in the XML and AllowCdnFallback is set to true, as the ODT will use source files from the Office CDN to complete the installation successfully.

<Add SourcePath="\\Server\Share" 
     OfficeClientEdition="32"
     Channel="SemiAnnual" 
     AllowCdnFallback="True">
  <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
      <Language ID="ja-jp" />
  </Product>
</Add>

Regards
The Author – Blogabout

Microsoft Apps for Enterprise Part 1 – Understanding the core Configuration.xml

Microsoft Apps for Enterprise (formally known as Click to Run) has been a massive part of my consultancy / implementation career going back to the very first day I implemented it for a customer in 2013. Since then I have earned a number of scars from implementations where things have always gone to plan due to the limitations within the product at the time or because a customer network just couldn’t handle the download of an .OST file 50 users.

So lets begin with a typical configuration.xml file as shown below;

<Configuration>
  <Add SourcePath="\\Server\Share" 
       OfficeClientEdition="32"
       Channel="SemiAnnual" >
    <Product ID="O365ProPlusRetail">
      <Language ID="en-us" />
    </Product>
    <Product ID="VisioProRetail">
      <Language ID="en-us" />
    </Product>
  </Add>
  <Updates Enabled="TRUE" 
   UpdatePath="\\Server\Share" />
   <Display Level="None" AcceptEULA="TRUE" />  
</Configuration>

Lets dive in by first saying, when modifying the configuration.xml you need to be careful of the following;

Case – One thing I have seen many times where people have been caught out is where case has been changed for example;

Add to add, Product ID to product id

So lets look at the Add Element of the configuration.xml

SourcePath

This defines where the installation files for Microsoft Apps for Enterprise are stored using the /download switch. In many of my deployments, organisations have specified a network location. The reasoning behind this allows the organization to control the update of Features/Functionality as many organizations have 3rd party add-ins that maybe affected by a newer release.

“\\Server\Share”

One of the best parts of SourcePath, its optional. If you blank out the path like below;

<Configuration>
  <Add SourcePath=""        
</Configuration>

Once all the installation files are pulled down into the SourcePath if a modification happens to the configuration.xml and the /download switch is ran. The Office Deployment Tool will conserve your network bandwidth by downloading only the missing files.

OfficeClientEdition

This defines whether the 32-bit or 64-bit edition of Microsoft 365 Apps is downloaded or installed. If Office is not installed on the device and OfficeClientEdition is not specified, the ODT will default to the 64-bit edition, unless the device is running a 32-bit edition of Windows or has less than 4 GB RAM.

If Office is installed and OfficeClientEdition not specified again, the Office Deployment Tool will match the architecture of the existing installation of Office.

If Office is installed and OfficeClientEdition is specified, then it must match the already installed architecture. If it doesn’t, the installation will fail, since mixed architectures are not supported.

Allowed values:

  • OfficeClientEdition=”64″
  • OfficeClientEdition=”32″

Again following an on going theme which you will see throughout this post. Is option is again, Optionally and will use the intelligence above.

Channel

This defines which channel to use for installing Office. If Office is not installed on the device, the default setting for the Channel attribute is Current. If Office is installed on the device and the channel attribute is not specified, the Office Deployment Tool will match the channel of the existing installation.

Now in my experience, the allowed values are not set in stone, Microsoft loves changing the name to fit their approach. So as of December 2020 the below names are currently valid.

Allowed values:

  • Channel=”BetaChannel”
  • Channel=”CurrentPreview”
  • Channel=”Current”
  • Channel=”MonthlyEnterprise”
  • Channel=”SemiAnnualPreview”
  • Channel=”SemiAnnual”

Important Note

– To use these attribute values, you need to be using at least version 16.0.12827.20268 of the Office Deployment Tool, which was released on Tuesday June 9, 2020.

– Previous allowed values for each update channel can still be used, which means you don’t have to update your older configuration XML files.

– Beta Channel (sometimes referred to as Insider Fast) is not a supported build so should only be used in test environments and by a small group of select users, such as IT staff or application developers.
Current ChannelMonthly Enterprise ChannelSemi-Annual Enterprise Channel
Recommended useProvide your users with new Office features as soon as they are ready, but on no set schedule.Provide your users with new Office features only once a month and on a predictable schedule.For select devices in your organization, where extensive testing is needed before rolling out new Office features. For example, to comply with regulatory, governmental, or other organizational requirements.
Release frequency1At least once a month (likely more often), but on no set scheduleOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Feature updates2As soon as they’re ready (usually once a month), but on no set scheduleOnce a month, on the second Tuesday of the monthTwice a year (in January and July), on the second Tuesday of the month
Security updates3

(if needed)
Once a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Non-security updates2

(if needed)
Usually at least once a month (possibly more often), but no set scheduleOnce a month, on the second Tuesday of the monthOnce a month, on the second Tuesday of the month
Support duration for a given version4Until the next version is released with new features, which is usually about one monthTwo monthsFourteen months

1 For a list of release dates for these update channels, including version and build numbers, see Update history for Microsoft 365 Apps.

2 For information about what feature updates and non-security updates are included in a given release of these update channels, see Release notes for Microsoft 365 Apps releases.

3 For a list of security updates included in a given release of these update channels, see Release notes for Microsoft 365 Apps Security Updates

4 For a table that shows which version and build is currently supported for each of these update channels, see Update history for Microsoft 365 Apps.

So lets look at the Product ID Element of the configuration.xml

Now this is one of the most important elements understanding what version of Microsoft Office needs to be installed and as you can see the most install will be O365PlusRetail however, there many a need for other versions.

Product ID

Office 365 PlanProduct ID
Microsoft 365 Apps for enterpriseO365ProPlusRetail
Office 365 Enterprise E3O365ProPlusRetail
Office 365 Enterprise E4O365ProPlusRetail
Office 365 Enterprise E5O365ProPlusRetail
Office 365 MidsizeO365ProPlusRetail
Office 365 BusinessO365BusinessRetail
Office 365 Business PremiumO365BusinessRetail
Office Small Business PremiumO365SmallBusPremRetail
Microsoft 365 E3O365ProPlusRetail
Microsoft 365 E5O365ProPlusRetail
Microsoft 365 BusinessO365BusinessRetail

But how do you install other non-Microsoft 365 product IDs which are supported

AccessRetailProjectProXVolume
Access2019RetailProjectPro2019Retail
Access2019VolumeProjectPro2019Volume
ExcelRetailProjectStdRetail
Excel2019RetailProjectStdXVolume
Excel2019VolumeProjectStd2019Retail
HomeBusinessRetailProjectStd2019Volume
HomeBusiness2019RetailProPlus2019Volume
HomeStudentRetailPublisherRetail
HomeStudent2019RetailPublisher2019Retail
O365HomePremRetailPublisher2019Volume
OneNoteRetailStandard2019Volume
OutlookRetailVisioProXVolume
Outlook2019RetailVisioPro2019Retail
Outlook2019VolumeVisioPro2019Volume
Personal2019RetailVisioStdRetail
PowerPointRetailVisioStdXVolume
PowerPoint2019RetailVisioStd2019Retail
PowerPoint2019VolumeVisioStd2019Volume
ProfessionalRetailWordRetail
Professional2019RetailWord2019Retail
Word2019Volume

For those with a keen eye, Skype for Business was not listed above but heres the supported IDs

Skype for Business 2016SkypeforBusinessRetail
Skype for Business Basic 2016SkypeforBusinessEntryRetail
Skype for Business 2019SkypeforBusiness2019Retail
Skype for Business 2019 (volume licensed)SkypeforBusiness2019Volume
Skype for Business Basic 2019SkypeforBusinessEntry2019Retail

Language ID

When installing Office for any organisation getting the language is one of the most important elements.

Example values

  • ID=”en-us”
  • ID=”ja-jp”
  • ID=”MatchOS”
  • ID=”MatchPreviousMSI”
  • ID=”MatchInstalled”

Check out the following URL for a list of all Languages, culture codes, and companion proofing languages.

Check out the following URL for the support of MatchPreviousMSI value as you need to Remove existing MSI versions of Office when upgrading to Microsoft 365 Apps.

MatchOS and MatchInstalled cannot install the operating system languages if Office doesn’t support that language or if the ODT cannot find the correct language pack in the local source files.

MatchInstalled can be used only if there is at least one Click-to-Run product already installed. It can’t be used with the /download switch for the Office Deployment Tool.

Updates Enabled

If set to TRUE, Office will check for updates and If set to FALSE, Office won’t check for updates, but the user can check for updates by going to File > Account > Update Options > Update Now.

Allowed values:

  • Enabled=”TRUE”
  • Enabled=”FALSE”

This is also optionally and the default value is TRUE if not specified.

UpdatePath attribute (part of Updates element)

This defines where the updates for Office come from. UpdatePath can specify a network, local, or HTTP path of a source for Office installation files. Environment variables can be used for network or local paths.

If you use Group Policy with the Administrative Template files (ADMX/ADML) for Office, you can set UpdatePath by using the Update Path policy setting. You can find this policy setting under Computer Configuration\Policies\Administrative Templates\Microsoft Office 2016 (Machine)\Updates.

Example values:

This is also optionally and defaults to the CDN if not specified.

Level attribute (part of Display element)

If Level is set to None, Office is installed with no user interface: no progress bars, completion screens, error messages, or other user interface are displayed.

If Level is set to Full, Office is installed with the normal installation experience.

Allowed values:

  • Level=”None”
  • Level=”Full”

AcceptEULA attribute (part of Display element)

If AcceptEULA is set to TRUE, the user does not see a Microsoft Software License Terms dialog box. If this attribute is set to FALSE or is not included, the user may see a Microsoft Software License Terms dialog box. We recommend that administrators set AcceptEULA to TRUE.

Allowed values:

  • AcceptEULA=”TRUE”
  • AcceptEULA=”FALSE”

This is also optionally and default is set to FALSE if not specified.

This completes the understanding of the core configuration.xml, in the next part I will look at all options available under the Add Element.

Regards
The Author – Blogabout.Cloud

Changing in the channel in Microsoft Apps for Enterprise with PowerShell

During my career within the Microsoft 365 stack, I have even delivered a number of sessions about Microsoft Apps for Enterprise at a several conferences within the EMEA region. One of the questions I have always encountered is how do I switch channel I am on without pushing out a new configuration.xml?

Well this is where PowerShell becomes your friend.

Variables

First component of the script is the variables used within the function I have created. In the function you will need to modify the sections where it defines the channel name.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
  # Channel Names
  $CurrentPreview = 'CurrentPreview'
  $Current = 'Current'
  $MonthlyEnterprise = 'MonthlyEnterprise'
  $SemiAnnual = 'SemiAnnual'
  $SemiAnnualPreview = 'SemiAnnualPreview'

#File Paths
  $path = 'HKLM:\Software\Policies\Microsoft\office\16.0\common\officeupdate\'
  $path1 = 'HKLM:\Software\Policies\Microsoft\'
  $path2 = 'HKLM:\Software\Policies\Microsoft\office\'
  $path3 = 'HKLM:\Software\Policies\Microsoft\office\16.0\'
  $path4 = 'HKLM:\Software\Policies\Microsoft\office\16.0\common\'

  # Shortened Name
  $key1 = 'office'
  $key2 = '16.0'
  $key3 = 'common'
  $key4 = 'officeupdate'

Function

The below function is designed to check if the required reg keys exist before attempting to switch the channel. The final step in the script is to start the update process.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function Get-ChannelChange   {  
    # Check if updatebranch REG_SZ Exists
    if (Get-ItemProperty -Path $path -ErrorAction $SilentlyContinue)
    {
     # Create REG_SZ Key for $CurrentPreview
     Write-Host 'INFO: Checking if updatebranch REG_SZ already exists' -ForegroundColor $White -BackgroundColor $Green
     Write-host 'INFO: REG_SZ exists, Setting key for $CurrentPreview' -ForegroundColor $White -BackgroundColor $Green
     Set-ItemProperty -Path $path -Name $updatebranch -Value $CurrentPreview
    }
    else
    {
     Write-Host 'ERROR: Checking if updatebranch REG_SZ already exists' -ForegroundColor $White -BackgroundColor $Red
     Write-host 'EEROR: REG_SZ doesnt exist, creating Keys and setting key for $CurrentPreview' -ForegroundColor $White -BackgroundColor $Red
     New-Item -Path $path1 -Name $Key1 -ErrorAction $SilentlyContinue
     New-Item -Path $path2 -Name $Key2 -ErrorAction $SilentlyContinue
     New-Item -Path $path3 -Name $Key3 -ErrorAction $SilentlyContinue
     New-Item -Path $path4 -Name $Key4 -ErrorAction $SilentlyContinue
     New-ItemProperty -Path $path -Name $updatebranch -PropertyType String -Value $CurrentPreview -Force
    }
 
    # Update Office
    Start-Process -FilePath $C2RPath -ArgumentList $DisplaySetting

  }

Regards
The Author – Blogabout.Cloud

Changing the Channel on Microsoft Apps for Enterprise using PowerShell

Hello,

In this video I demonstrate how to change the Channel on Microsoft Apps for Enterprise using a PowerShell script that I created.

Or you could do this manually using the following commands;


1
2
3
4
5
6
7
8
9
10
11
12
#region Channel Names
  $CurrentPreview = 'CurrentPreview'
  $Current = 'Current'
  $MonthlyEnterprise = 'MonthlyEnterprise'
  $SemiAnnual = 'SemiAnnual'
  $SemiAnnualPreview = 'SemiAnnualPreview'
#endregion

$path = 'HKLM:\Software\Policies\Microsoft\office\16.0\common\officeupdate\'
$updatebranch = 'updatebranch'

Set-ItemProperty -Path $path -Name $updatebranch -Value "Insert Channel Name"

Regards
The Author – Blogabout.Cloud

Microsoft Apps for Enterprise – Changing Channels, New Channel and Default changes.

Microsoft has now announced that Microsoft Apps for Enterprise will receive 3 changes to its product releases. These changes are currently In Development but I dont expect them to be in that state for long as I am already seeing one of the changes within my own tenant.

Changes to the current Channel Names

https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=63585

Over the lifetime of Office ProPlus which is now Microsoft Apps for Business, Microsoft have changed the name for the channels multiple time. So this new development isnt a surprise as Microsoft does love a name change.

Existing Channel NameNew Channel Name
Semi-AnnualSemi-Annual Enterprise
Semi-Annual (Targeted)Semi-Annual Enterprise (Preview)
MonthlyCurrent
Monthly (Targeted)Current (Preview)

New update channel for Microsoft Apps for Enterprise

https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=63591

In the past, there have only ever been 4 main Channels for Microsoft Apps for Enterprise (not including the insider release channels). Microsoft has announced that they are creating a new channel to help customers seeking to stay up to date with features updates, such as real-time collaboration and AI capabilities. This channel will be called Monthly Enterprise

Default Channel for new Office 365 Tenants

https://www.microsoft.com/en-us/microsoft-365/roadmap?filters=&searchterms=63757

The existing Office 365 tenants you should be firmilar that Semi-Annual Channel is the default channel, however for new Office 365 tenants the default will become the Current Channel.

Regards
The Author – Blogabout.Cloud