Teams missing from M365 apps in Europe – This is why

If you are in Europe and have noticed that Teams is no longer installing with your M365 apps, this isn’t a bug, it is due to the European Competition ruling:

https://blogs.microsoft.com/eupolicy/2023/08/31/european-competition-teams-office-microsoft-365/

The fix is to deploy the Teams Machine wide installer onto your devices:

https://learn.microsoft.com/en-us/microsoftteams/msi-deployment

To make things easier, I have created a script which will:

  • Download the latest version
  • Package it to IntuneWin
  • Deploy to Intune

All you have to do is assign it.

The script can be found on GitHub here:

https://github.com/andrew-s-taylor/public/blob/main/Powershell%20Scripts/Intune/deploy-teams-machine-installer.ps1

Or PSGallery:

Install-Script -Name deploy-teams-machine-installer

If you want to deploy the new client instead, follow this guide from Arno van Dijk

https://www.linkedin.com/pulse/easily-deploy-new-teams-client-app-intune-arno-van-dijk/?trackingId=6QGsz45eTKSpl1IC79rl1Q%3D%3D

Hopefully this is useful

19 thoughts on “Teams missing from M365 apps in Europe – This is why”

  1. Seem to get an error when running:. Do I need to connect to graph first?

    Invoke-UploadWin32Lob : Aborting with exception: Microsoft.Graph.PowerShell.AuthenticationException: Authentication needed. Please call Connect-MgGraph.
    at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
    At line:1063 char:18
    + … appupload = Invoke-UploadWin32Lob -SourceFile “$appfile” -DisplayName …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Invoke-UploadWin32Lob

    Reply
  2. Hi Andrew,
    thanks for the script!

    Can the script be used for updating the “Teams Machine wide installer”, too?

    I ask because the installer behaves a little bit special if a (older) version is already installed (prior to the EU ruling). If you try it by hand, it says “there is already another version installed… uninstall it first”.

    Reply
    • Hi Lothar,
      This script won’t as the detection will notice it already exists and ignore it.
      If the other one was also deployed using Intune, I would configure supersedence for this new one and set it to uninstall the old version first

      Reply
  3. We want to push it to our autopilot group, will this reinstall it on the current devices? Or will detect it and leave the current installation?

    Reply
  4. Hi Andrew,

    I noticed there was new documentation related to deployment of Teams here:
    https://learn.microsoft.com/en-us/deployoffice/teams-install

    It states: As of October 23rd, 2023, new installations of Microsoft 365 and Office 365 will include Teams only if a Teams service plan is in place.

    But all our tenants include the old M365 E3 license which has the Teams service included but the app is still not deploying in the Microsoft 365 Apps for Windows package in Intune. Do you have any idea what is going on here? We are in the EU so is that notice only for tenants outside the EU?

    Reply
  5. Thanks Andrew for the write-up. Regarding Your script that install the classic Teams
    Issue #1 – does not create the temp folder initially. I had to create it manually on the C:\ drive
    Issue #2 – Once the install starts (it starts downloading and installing) and then it says failed on the toast notification. Upon checking Teams did not install.
    Issue#3 – Detection script has a weird up side down question mark which probably means it is not being formatted as UTF-8 https://learn.microsoft.com/en-us/mem/intune/fundamentals/remediations. I mean the detection is running otherwise it would not even start downloading and installing on the test VM but yeah why risk having weird characters in the detection script when we can eliminate it all together.

    things I like:
    – uploading Win32 apps to Intune without the use of IntuneWin32app module
    – extracting the MSI product code from the MSI file to build the uninstall string
    – checking if Graph module is v1 or V2
    – modularity

    but hopefully you do more testing on your end and address these issues

    Reply
    • Hi,
      I’ll switch to $env:temp in the next release.
      For issue 2, check for AV on the machine, that sometimes catches the Teams installer

      It’s definitely in UTF-8 ( $detectionscript | Out-File $detectionscriptfile -Encoding utf8), but I’ll see if there is a rogue space or something

      Reply
  6. this script used to work, but lately after it uploads the chunks to azure i get the following error:

    y within 2210 milliseconds
    [=================================================] 100%

    INFO File ‘c:\temp\\TeamsMachine\installTeamsMachine.intunewin’ has been generated successfully

    [=================================================] 100%
    INFO Done!!!

    Intunewin c:\temp\\TeamsMachine\installTeamsMachine.intunewin Created
    Invoke-UploadWin32Lob:
    Line |
    1160 | … appupload = Invoke-UploadWin32Lob -SourceFile “$appfile” -DisplayName …
    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    | Aborting with exception: System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter ‘Exception’ because it is null.
    at System.Management.Automation.ExceptionHandlingOps.CheckActionPreference(FunctionContext funcContext, Exception exception)
    at System.Management.Automation.Interpreter.ActionCallInstruction`2.Run(InterpretedFrame frame)
    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
    at System.Management.Automation.Interpreter.EnterTryCatchFinallyInstruction.Run(InterpretedFrame frame)
    0

    Reply

Leave a Comment