Application of the Week – Microsoft Teams (Part 1)

Thank you for your feedback and comments on last week’s Application of the Week about Microsoft Power BI Desktop.

Last week Microsoft released Power BI Desktop 2.73.5586.984. Still no news about the ‘disappeared’ MSI, which also for this release was hidden inside an MSI bootstrapper. It was nice of the ‘Power BI’ team to respond to my tweet about this. Let’s wait and see.

For this week’s blog my support colleagues Pieter and Menno suggested to write something about ‘Microsoft Teams’. Many customers have their doubts about its setup and launch behavior and they have every reason to do so.

This MST to install Microsoft Teams MSI (VDI) to regular Windows 10 blog by Master Packager sums up what the issues are and what one can do to customize the Teams MSIs for different purposes. There’s nothing to add to many comments about this ‘MSI’ for Teams. Industry experts and customers already vented enough about that:

Yeah. The one that’s drops and exe installer in Program Files and adds first launch for all users to install the exe. It is really enterprise ready

Still lipstick on a pig and “undeployable” in it’s current form for many.

Wish they’d work on the even the msi install version being a glorified self extracting zip for for every user and profile.

The MSI is not a ‘pure’ MSI. It is definitely not designed for use in the enterprise. And Teams itself isn’t very enterprise friendly when using it.
I found a blog on the same website called “How Microsoft Teams installer should have looked like from the beginning” in which this statement nicely sums it all up what this setup is:

“and the only thing that they did was wrap a setup executable into an MSI.”

If you look at the File table of the MSI, it’s just copied in an executable and a .json file which isn’t even updated when you opt for ‘ALLUSER=1’. The use of this property by the way is very confusing to say the least, because it’s something else compared to the ALLUSERS property which we all (should) know about.

How do you deploy Microsoft Teams when using Liquit Workspace and Liquit Release & Patch Management? The MSI’s for Microsoft Teams for both x86 and x64 are available in the Setup Store:

When creating a ‘Managed Package’ you have the option to ‘Configure’ the selected MSI, which means a ‘Transform file’ is created and used within the Managed Package:

‘Managed’ means that everytime Microsoft releases a new version of Microsoft Teams, this package will be updated:

This MSI copies in a C:Program Files (x86)MicrosoftTeamsTeams.exe like I said. This Teams.exe needs to be run with the options:

–checkInstall –source=default

to install Teams inside the user profile. Because that’s how Teams is designed. Then from the user profile ..MicrosoftTeamsUpdate.exe (indeed another executable) needs to be run with the options:

–processStart “Teams.exe” to actually start Microsoft Teams.

Opting for ‘Install for All Users’ in the Configuration Wizard unfortunately brings in an entry in the registry under ‘Run’ which auto launches Teams.exe. This one needs to be removed if we want to be able to use an ‘Intelligent icon’ from within Liquit Workspace:

Last but not least, two shortcuts are created on the desktop in ‘All Users’ and in the Users profile.

Whichever one starts or launches, Teams is very persistent on getting these shortcuts on the desktop and to bring back the ‘Run’-entries in the registry.

Here’s how I solved the puzzle for now:

Action Set 1:

– checkInstall Teams
– Delete registry value Teams (Run)

The ‘checkInstall Teams’ action launches Teams.exe out of {ProgramFiles32}. But only when it exists.

The ‘ Delete registry value Teams (Run)’ action deletes the ‘Run’ value which launches Teams every time a user logs in.

Action Set 2:

– Delete Microsoft Teams.lnk (Per User)
– Delete Microsoft Teams.lnk (Per Machine)

These two actions delete the .lnk from the current user and from ‘All Users’, but only when these exist.

– Start Teams

This how the user actually starts Teams. But when it does, it automatically adds a startup entry to the registry. For that one to be removed we need to wait a few seconds before it’s actually added. And then we can remove it. That’s why the ‘Wait’ is added after the launch of Update.exe:

– Wait 3 seconds
– Delete registry value Teams (HKCU Run)

Next week in ‘Part 2’ of this blog I will review discuss how to create a PowerShell script to create this ‘Microsoft Teams’ package using the ‘Liquit PowerShell Module‘.

Please keep sending your feedback!