Actual Quick Fixes for Teams 2.0 VDI - Pain Points
Our favorite product, Microsoft Teams 2.0 for VDI, is currently generating a lot of pain points, which is why I have compiled a small list of issues. I intend to keep adding to this list regularly.
Actual Quick Fixes for Teams 2.0 VDI - Pain Points
The Teams icon is missing from the Start Menu
Teams AppX Package is not registered systemwide
Many of the Windows inbox applications have been converted to AppX packages. AppX packages have a dependency on the AppReadiness service, which works on behalf of the user to register these types of applications during the sign-in process. Since a VDI user’s sign in is technically a new sign in each time, the AppReadiness service doesn’t have all the necessary information to properly set up the inbox applications, especially when those applications are upgraded between image or feature updates.
Use PowerShell to register AppX applications
Systemwide
Execute the following code during your sealing process on your master image.
$AllUserInboxAppsKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications"
$AllUserApps = Get-ChildItem -Path $AllUserInboxAppsKey
ForEach($Key in $AllUserApps) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-ItemProperty -Path $Key.PsPath).Path
}
$AllUserAppsKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications"
$AllUserApps = Get-ChildItem -Path $AllUserAppsKey
ForEach($Key in $AllUserApps) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-ItemProperty -Path $Key.PsPath).Path
}
Usercontext
Sometimes, even when registering the AppX Packages, the application is not present for the user. However, this should be fixed in Teams vs. 24215.1007.3082.1590.
The following has to be executed in the user’s context:
$AllUserInboxAppsKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications"
$AllUserApps = Get-ChildItem -Path $AllUserInboxAppsKey
$TeamsApp = $AllUserApps | Where-Object { $_.Name -like "*MSTeams*" }
ForEach($Key in $TeamsApp) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-ItemProperty -Path $Key.PsPath).Path
}
$AllUserAppsKey = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications"
$AllUserApps = Get-ChildItem -Path $AllUserAppsKey
$TeamsApp = $AllUserApps | Where-Object { $_.Name -like "*MSTeams*" }
ForEach($Key in $TeamsApp) {
Add-AppxPackage -DisableDevelopmentMode -Register (Get-ItemProperty -Path $Key.PsPath).Path
}
Possible methods to deploy this script to your users:
- Logon script via GPO
- WEM External Task
- RunKey
- RunOnceKey
Teams Icon is missing when migrating from Teams Classic to Teams New
Bug in FSLogix 2210 HF4
Users reported seeing issues when migrating to Microsoft Teams from Classic Teams. The Teams icon is missing from the Start Menu, which can occur due to a stale cache in %LocalAppData%\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\TempState.
Workaround when using FSLogix 2210 HF4:
Create or update the redirections.xml to exclude the TempState folder.
AppData\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\TempState
Exaggerated Redirections.xml
This can also happen, if you’re exaggerating your exclusions. FSLogix is not a disk saving effective solution and the redirections.xml should be used only in a minimalistic way! Below you’ll find the redirections.xml, which I’m using in 90% of my deployments.
AppData\Local\Apps
AppData\Local\Downloaded Installations
AppData\Local\Assembly
AppData\Local\CrashDumps
AppData\Local\Microsoft\Terminal Server Client
AppData\Local\Google\Chrome\User Data\Default\Cache
AppData\Local\Microsoft\Edge SxS\User Data\Default\Cache
AppData\Roaming\Microsoft\Teams\media-stack
AppData\Roaming\Microsoft\Teams\Service Worker
AppData\Roaming\Microsoft\Teams\meeting-addin\Cache
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\PerfLogs
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\WebStorage
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\GPUCache
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\Service Worker\CacheStorage
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\Code Cache
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\IndexedDB
AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView\WV2Profile_tfw\Cache
AppData\Local\Packages\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy\TempState
AppData\Local\Packages\Microsoft.Windows.ShellExperienceHost_cw5n1h2txyewy\TempState
Search doesn't work for teams in the start menu
Exclude Windows Search from your FSLogix Redirection XML. This solution has been mentioned by Markus Zehnle in the Slack channel “World of EUC”
AppData\Local\Packages\Microsoft.Windows.Search_cw5n1h2txyewy\TempState
Open with dialog starts after switching from Teams Classic to Teams New
This popup can be disabled in the following way:
Preferred way
Disable NewAppAlerts for every app, not just Teams. This setting prevents the same popup from appearing when updating Edge, which tries to set itself as the default PDF handler.
Do not show the ‘new application installed’ notification (admx.help)
Registry Hive | HKEY_LOCAL_MACHINE |
Registry Path | Software\Policies\Microsoft\Windows\Explorer |
Value Name | NoNewAppAlert |
Value Type | REG_DWORD |
Enabled Value | 1 |
Registry Hive | HKEY_CURRENT_USER |
Registry Path | Software\Policies\Microsoft\Windows\Explorer |
Value Name | NoNewAppAlert |
Value Type | REG_DWORD |
Enabled Value | 1 |
Other possibility
Set the following keys for the user via login script, WEM External task or run key.
$registryPath = "HKCU:\Software\Classes\msteams\shell\open\command"
$valueName = "(default)"
$valueData = '"ms-teams.exe" "%1"'
# Set the registry value
Set-ItemProperty -Path $registryPath -Name $valueName -Value $valueData
Teams Outlook Plugin not visible
Several things can cause this.
- Bug in Teams 24215.1007.3082.1590 which has been fixed in 24231.512.3106.6573
- Plugin not installed correctly
- Stale entries from Teams classic
Write-Host "Install $Product Add-In for Outlook"
# Install the Microsoft Teams Meeting Add-in
$installerPath = Get-ChildItem -Path 'C:\Program Files\WindowsApps' -Filter 'MSTeams*' | Select-Object -First 1
Start-Process -FilePath “msiexec.exe” -ArgumentList “/i `”$($installerPath.FullName)\MicrosoftTeamsMeetingAddinInstaller.msi`” Reboot=ReallySuppress ALLUSERS=1 TARGETDIR=`”C:\Windows\Microsoft\TeamsMeetingAddin`” /qn” -Wait
Write-Host -ForegroundColor Green "Install $Product Add-In for Outlook finished!"
Write-Host "Register $Product Add-In for Outlook"
# Get DLL paths
$appX64DLL = (Get-ChildItem -Path "C:\Windows\Microsoft\TeamsMeetingAddin\x64" -Include "Microsoft.Teams.AddinLoader.dll" -Recurse).FullName
$appX86DLL = (Get-ChildItem -Path "C:\Windows\Microsoft\TeamsMeetingAddin\x86" -Include "Microsoft.Teams.AddinLoader.dll" -Recurse).FullName
# Register the DLLs
Start-Process -FilePath "$env:WinDir\SysWOW64\regsvr32.exe" -ArgumentList "/s /n /i:user `"$appX64DLL`"" -ErrorAction SilentlyContinue
Start-Process -FilePath "$env:WinDir\SysWOW64\regsvr32.exe" -ArgumentList "/s /n /i:user `"$appX86DLL`"" -ErrorAction SilentlyContinue
# Add Registry Keys for loading the Add-in
$registryPath = 'HKLM:\Software\Microsoft\Office\Outlook\Addins\TeamsAddin.FastConnect'
If (-not (Test-Path 'HKLM:\Software\Microsoft\Office\Outlook\Addins\')) {
New-Item -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins\" | Out-Null
}
New-Item -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins" -Name "TeamsAddin.FastConnect" -Force -ErrorAction Ignore | Out-Null
New-ItemProperty -Path $registryPath -Type "DWord" -Name "LoadBehavior" -Value 3 -Force | Out-Null
New-ItemProperty -Path $registryPath -Type "String" -Name "Description" -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -Force | Out-Null
New-ItemProperty -Path $registryPath -Type "String" -Name "FriendlyName" -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -Force | Out-Null
Cleanupscript for stale teams entries
$registryPaths = @(
"HKCU:\Software\Classes\Wow6432Node\CLSID\{19A6E644-14E6-4A60-B8D7-DD20610A871D}",
"HKCU:\Software\Classes\Wow6432Node\TypeLib\{C0529B10-073A-4754-9BB0-72325D80D122}",
"HKCU:\Software\Classes\CLSID\{19A6E644-14E6-4A60-B8D7-DD20610A871D}",
"HKCU:\Software\Classes\TypeLib\{C0529B10-073A-4754-9BB0-72325D80D122}",
"HKCU:\Software\Wow6432Node\Microsoft\office\Outlook\Addins\TeamsAddin.FastConnect",
"HKCU:\Software\Microsoft\office\Outlook\Addins\TeamsAddin.FastConnect"
)
# Loop for removing each entry
foreach ($path in $registryPaths) {
if (Test-Path $path) {
Remove-Item -Path $path -Recurse -Force
Write-Host "Deleted: $path"
} else {
Write-Host "Path not found: $path"
}
}
Great work! However, I discovered a potential issue. When installing Teams via NeverRed, the Outlook add-in is not installed or registered.
I wanted to install it afterwards and used the code block from your site. However, the installation and registration failed. The issue is with lines 4 and 5. I suspected that the installation runs in the background and the registration cannot find the paths yet.
I rewrote it. Presumably, the quotes are not being transferred correctly:
Start-Process -FilePath “msiexec.exe” -ArgumentList “/i `”$($installerPath.FullName)\MicrosoftTeamsMeetingAddinInstaller.msi`” Reboot=ReallySuppress ALLUSERS=1 TARGETDIR=`”C:\Windows\Microsoft\TeamsMeetingAddin`” /qn” -Wait
I start the installation via Start-Process so I can wait until the installation is complete.
After I made the change, the script runs without errors and the registration works.
Hey Patrick, thank you!
I’ve updated the line with your fix. Appreciate that.