#Requires -Version 5.1 <# JbTecWiz Support Centre -- generated fix script Fault : The Teams Meeting button is missing from Outlook Fix : Make Teams register the add-in again Source: https://jbtecwiz.com/support/win-office-teams-addin Run as : PowerShell as the affected user Expect : 40 minutes Risk : medium Reversible : yes WHEN THIS IS THE RIGHT FIX The add-in is not listed at all, usually after an update to Teams or Office. HOW TO UNDO IT Repairing or reinstalling Teams does not affect Outlook data or Teams message history, which lives in the service. This script walks the fix one step at a time and asks before each one. Steps with no command are things you do yourself -- it prints those and waits. Run with -DryRun to print without executing. #> [CmdletBinding()] param( # Print every step and command without running anything. [switch]$DryRun, # Do not ask before each step. Read the script first if you use this. [switch]$Unattended ) $ErrorActionPreference = 'Stop' $script:Failed = 0 function Write-Rule { param([string]$Text) Write-Host '' Write-Host ('-' * 70) -ForegroundColor DarkGray if ($Text) { Write-Host $Text -ForegroundColor Cyan } } function Show-Prose { param([string]$Text, [string]$Colour = "Gray") if (-not $Text) { return } $words = $Text -split "\s+"; $line = " " foreach ($w in $words) { if (($line.Length + $w.Length) -gt 74) { Write-Host $line -ForegroundColor $Colour; $line = " " } $line += "$w " } if ($line.Trim()) { Write-Host $line -ForegroundColor $Colour } } function Invoke-Step { param( [int]$Number, [string]$Do, [string]$Why, [scriptblock]$Command, [switch]$Manual, [string]$Shell = "powershell" ) Write-Rule " Step $Number of 6" Show-Prose $Do "White" if ($Why) { Write-Host ""; Show-Prose $Why "DarkGray" } if ($Manual) { Write-Host '' Write-Host ' -> Do this yourself, then press Enter to carry on.' -ForegroundColor Yellow if (-not $Unattended -and -not $DryRun) { [void](Read-Host) } return } Write-Host '' foreach ($l in ($Command.ToString().Trim() -split "`n")) { Write-Host (" " + $l.Trim()) -ForegroundColor Green } Write-Host '' if ($DryRun) { Write-Host " (dry run -- not executed)" -ForegroundColor DarkGray; return } if (-not $Unattended) { $a = Read-Host " Run this step? [Y]es / [S]kip / [Q]uit" if ($a -match "^[Qq]") { Write-Host " Stopped at your request."; exit 0 } if ($a -match "^[Ss]") { Write-Host " Skipped." -ForegroundColor DarkGray; return } } try { & $Command } catch { $script:Failed++ Write-Host (" Step $Number failed: " + $_.Exception.Message) -ForegroundColor Red Show-Prose "The rest of the fix may depend on this. Read the write-up before carrying on." "Red" if (-not $Unattended) { $c = Read-Host " Carry on anyway? [y/N]" if ($c -notmatch "^[Yy]") { exit 1 } } } } Write-Rule Write-Host ' The Teams Meeting button is missing from Outlook' -ForegroundColor White Write-Host ' Make Teams register the add-in again' -ForegroundColor Cyan Write-Host '' Write-Host ' Risk: medium Reversible 40 minutes' Write-Rule if (-not $Unattended -and -not $DryRun) { $go = Read-Host ' Ready? [y/N]' if ($go -notmatch "^[Yy]") { Write-Host " Nothing was changed."; exit 0 } } Invoke-Step -Number 1 -Do 'Close Outlook and Teams completely.' -Command { Get-Process OUTLOOK,ms-teams,Teams -ErrorAction SilentlyContinue | Stop-Process -Force } Invoke-Step -Number 2 -Do 'Check whether the add-in files are present before assuming they need reinstalling.' -Why 'If the DLL is there, this is a registration problem and Teams can fix it itself. If it is absent, Teams needs repairing or reinstalling and no registry work will help.' -Command { Get-ChildItem "$env:LOCALAPPDATA\Microsoft\TeamsMeetingAddin" -Recurse -Filter '*.dll' -ErrorAction SilentlyContinue | Select-Object FullName, LastWriteTime } Invoke-Step -Number 3 -Do 'Sign out of Teams, then sign back in. Teams re-registers the add-in as part of signing in, and this resolves it more often than anything manual.' -Manual Invoke-Step -Number 4 -Do 'If that does not work, repair Teams from Settings -> Apps -> Installed apps -> Microsoft Teams -> Advanced options -> Repair. For the classic client, uninstall and let it reinstall on next sign-in.' -Manual Invoke-Step -Number 5 -Do 'Start Teams first and let it fully sign in, then start Outlook.' -Manual Invoke-Step -Number 6 -Do 'If it is still missing across many machines, check for a policy blocking the Outlook add-in in the Teams admin centre meeting policies -- that is a supported setting and it will override everything done on the client.' -Manual Write-Rule " Confirm it worked" Show-Prose 'The add-in is listed as active in File -> Options -> Add-ins and the button appears on the Calendar tab.' 'White' Write-Rule if ($script:Failed -gt 0) { Write-Host (" Finished with " + $script:Failed + " failed step(s).") -ForegroundColor Yellow Show-Prose 'Read the full write-up at https://jbtecwiz.com/support/win-office-teams-addin' 'Yellow' } else { Write-Host ' Finished.' -ForegroundColor Green } Write-Host '' Show-Prose 'To undo: Repairing or reinstalling Teams does not affect Outlook data or Teams message history, which lives in the service.' 'DarkGray' Write-Rule