Skip to content

Instantly share code, notes, and snippets.

@DanielSmon
Last active April 29, 2024 19:23
Show Gist options
  • Save DanielSmon/cc3fa072857f0272257a5fd451768c3a to your computer and use it in GitHub Desktop.
Save DanielSmon/cc3fa072857f0272257a5fd451768c3a to your computer and use it in GitHub Desktop.
For running multiple MS Teams accounts side by side. Save this with the name of the MS Teams profile you wish to use. When launched, a folder will be created in your user profile. See https://danielsmon.com/2020/04/02/multiple-ms-teams-accounts-on-the-desktop/.
@ECHO OFF
REM Uses the file name as the profile name
SET MSTEAMS_PROFILE=%~n0
ECHO - Using profile "%MSTEAMS_PROFILE%"
SET "OLD_USERPROFILE=%USERPROFILE%"
SET "USERPROFILE=%LOCALAPPDATA%\Microsoft\Teams\CustomProfiles\%MSTEAMS_PROFILE%"
REM Ensure there is a downloads folder to avoid error described at
REM https://gist.github.com/DanielSmon/cc3fa072857f0272257a5fd451768c3a
mkdir "%LOCALAPPDATA%\Microsoft\Teams\CustomProfiles\%MSTEAMS_PROFILE%\Downloads"
REM Fixes missing "Desktop" folder
mkdir "%LOCALAPPDATA%\Microsoft\Teams\CustomProfiles\%MSTEAMS_PROFILE%\Desktop"
ECHO - Launching MS Teams with profile %MSTEAMS_PROFILE%
cd "%OLD_USERPROFILE%\AppData\Local\Microsoft\Teams"
"%OLD_USERPROFILE%\AppData\Local\Microsoft\Teams\Update.exe" --processStart "Teams.exe"
@DanielSmon
Copy link
Author

Thanks @TritusIX, now added!

@chaoscreater
Copy link

@matts8008
Copy link

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.

Outlook signed into user@teams.com
Teams1 signed into user@teams.com
Teams2 signed into user2@teams2.com

When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

@chaoscreater
Copy link

It'll use your default teams, i.e the process / instance that runs normally without using the script. You'll just have to make sure your default Teams is the one thst you want to use with Outlook.

@0siribix
Copy link

0siribix commented Aug 3, 2022

This will create any directories that don't exist and will create a junction to existing Desktop and Downloads so you don't have to deal with multiple destinations

$profile = [io.path]::GetFileNameWithoutExtension($PSCommandPath)
$LAD = $env:LOCALAPPDATA
$teams = "$LAD\Microsoft\Teams\"
$customProfiles = "$teams\CustomProfiles"
$curProfile = "$customProfiles\$profile"
$downloads = "$curProfile\Downloads"
$desktop = "$curProfile\Desktop"
 
if (!(Test-Path $customProfiles)) {New-Item $customProfiles -ItemType Directory}
if (!(Test-Path $curProfile)) {New-Item $curProfile -ItemType Directory}
if (!(Test-Path $downloads)) {
                $path = 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
                $target = (Get-ItemProperty "$path")."{374DE290-123F-4565-9164-39C4925E467B}"
                New-Item -path "$downloads" -ItemType Junction -value "$target"
}

if (!(Test-Path $desktop)) {
                $target = [Environment]::GetFolderPath("Desktop")
                New-Item -path "$desktop" -ItemType Junction -value "$target"
}
 
$env:USERPROFILE = $curProfile
Start-Process -filepath "$teams\update.exe" -argumentlist '--processStart "Teams.exe"' `
                                -WorkingDirectory "$teams"

@DoKnocK
Copy link

DoKnocK commented Aug 5, 2022

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.

Outlook signed into user@teams.com Teams1 signed into user@teams.com Teams2 signed into user2@teams2.com

When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

facing the same issue.

Outlook signed into user@teams.com
Teams1 [The normal Teams] signed into user@teams.com
Teams2 [Teams launched with script] signed into user2@teams2.com

When I create meetings, Outlook is using the user2@teams2.com account/details to create invites.

Anyone able to solve this ?

@chaoscreater
Copy link

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.
Outlook signed into user@teams.com Teams1 signed into user@teams.com Teams2 signed into user2@teams2.com
When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

facing the same issue.

Outlook signed into user@teams.com Teams1 [The normal Teams] signed into user@teams.com Teams2 [Teams launched with script] signed into user2@teams2.com

When I create meetings, Outlook is using the user2@teams2.com account/details to create invites.

Anyone able to solve this ?

Why not just switch the accounts in your Teams? At the end of the day, you have 2 different accounts running in 2 different Teams, so it doesn't matter if they're swapped, as long as Outlook works with the correct Teams account.

@FalaiTio
Copy link

FalaiTio commented Nov 3, 2022

Pra mim parou de funcionar.
Agora ao abrir o script ele sempre abre a mesma instância do teams.

Não sei se tem ligação com mover o direório das aplicações para outro disco...

@sebastienbo
Copy link

sebastienbo commented Nov 6, 2022

Another solution is to make two sandboxes with sanboxie, and run teams from each sandbox, it will have it's own cache,credentials and will work nicely together, to make this work, disable auto-updates and loggout of the teams application that is installed in windows .
Now when you go to each sandbox you can login with each account.

https://sandboxie-plus.com/

@Sudipkumarc
Copy link

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.
Outlook signed into user@teams.com Teams1 signed into user@teams.com Teams2 signed into user2@teams2.com
When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

facing the same issue.

Outlook signed into user@teams.com Teams1 [The normal Teams] signed into user@teams.com Teams2 [Teams launched with script] signed into user2@teams2.com

When I create meetings, Outlook is using the user2@teams2.com account/details to create invites.

Anyone able to solve this ?

Here is what I have done!

  1. Accounts > Access work or school > disconnect all work accounts.
  2. Disconnect all your work accounts from MS office application as well.
  3. Clear the teams cache and exit both instances
  4. Launch teams and sign in to User 1 and select "Allow my organization to manage my device"
  5. Launch any office application and sign to User 1
  6. Run the script - Teams will probably launch with User 1, so sign out
  7. Login to teams using User 2 and select "No, sign in to this app only".

I have been testing this for a day now and it seems to work fine.

@chaoscreater
Copy link

chaoscreater commented Apr 1, 2023

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.
Outlook signed into user@teams.com Teams1 signed into user@teams.com Teams2 signed into user2@teams2.com
When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

facing the same issue.
Outlook signed into user@teams.com Teams1 [The normal Teams] signed into user@teams.com Teams2 [Teams launched with script] signed into user2@teams2.com
When I create meetings, Outlook is using the user2@teams2.com account/details to create invites.
Anyone able to solve this ?

Here is what I have done!

  1. Accounts > Access work or school > disconnect all work accounts.
  2. Disconnect all your work accounts from MS office application as well.
  3. Clear the teams cache and exit both instances
  4. Launch teams and sign in to User 1 and select "Allow my organization to manage my device"
  5. Launch any office application and sign to User 1
  6. Run the script - Teams will probably launch with User 1, so sign out
  7. Login to teams using User 2 and select "No, sign in to this app only".

I have been testing this for a day now and it seems to work fine.

Or you can do this the proper way, where you load the Teams .dll addin for the Teams profile that you want:

  1. Go to your Outlook addin and remove the Teams meeting addin:

image

  1. Close Outlook completely. Terminate the .exe process.

  2. Go into Teams and untick this setting. Leave it on for the Teams profile that you want to pair with Outlook. In other words, you should only have this setting enabled for just one Teams.

image

  1. Find the TeamsMeetingAddin folder under here:

%LocalAppData%\Microsoft\TeamsMeetingAddin

  1. Copy that folder to your Teams profile:

%LocalAppData%\Microsoft\Teams\CustomProfiles\XXXXXXXXX\AppData\Local\Microsoft\

Where XXXXXXXXX is the name of your custom profile folder.

  1. Go into the following path

%LocalAppData%\Microsoft\Teams\CustomProfiles\XXXXXXXXX\AppData\Local\Microsoft\TeamsMeetingAddin\1.0.22147.1\x64

Obviously, adjust the path based on your profile folder name and the version of your addin.

  1. Copy the path of the addin .dll file:

image

  1. Open CMD or Powershell as ADMIN and paste your path here:

regsvr32.exe /n /i:user "C:\Users\Ricky\AppData\Local\Microsoft\Teams\CustomProfiles\Teams-Crayon-Profile\AppData\Local\Microsoft\TeamsMeetingAddin\1.0.22147.1\x64\Microsoft.Teams.AddinLoader.dll"

  1. Go into Outlook addin and you should find your addin added. If it’s disabled, then just enable it.

image

Awesome! Now all your future Teams meeting created from Outlook will be able to open with the correct Teams profile!

P.S - if you run into issues where the addin doesn’t show up in Outlook, then just import the following registry key below.

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\outlook\addins\TeamsAddin.FastConnect]
"Description"="Microsoft Teams Meeting Add-in for Microsoft Office"
"FriendlyName"="Microsoft Teams Meeting Add-in for Microsoft Office"
"LoadBehavior"=dword:00000003

@Sudipkumarc
Copy link

After using two Team's profiles for about 6 weeks, Outlook started using the wrong Teams profile to create Teams meeting invites.
Outlook signed into user@teams.com Teams1 signed into user@teams.com Teams2 signed into user2@teams2.com
When I create a new meeting request in Outlook and insert the Teams link, it inserts a link from user2@teams2.com not the correct account. Any have a fix for this?

facing the same issue.
Outlook signed into user@teams.com Teams1 [The normal Teams] signed into user@teams.com Teams2 [Teams launched with script] signed into user2@teams2.com
When I create meetings, Outlook is using the user2@teams2.com account/details to create invites.
Anyone able to solve this ?

Here is what I have done!

  1. Accounts > Access work or school > disconnect all work accounts.
  2. Disconnect all your work accounts from MS office application as well.
  3. Clear the teams cache and exit both instances
  4. Launch teams and sign in to User 1 and select "Allow my organization to manage my device"
  5. Launch any office application and sign to User 1
  6. Run the script - Teams will probably launch with User 1, so sign out
  7. Login to teams using User 2 and select "No, sign in to this app only".

I have been testing this for a day now and it seems to work fine.

Or you can do this the proper way, where you load the Teams .dll addin for the Teams profile that you want:

  1. Go to your Outlook addin and remove the Teams meeting addin:

image

  1. Close Outlook completely. Terminate the .exe process.
  2. Go into Teams and untick this setting. Leave it on for the Teams profile that you want to pair with Outlook. In other words, you should only have this setting enabled for just one Teams.

image

  1. Find the TeamsMeetingAddin folder under here:

%LocalAppData%\Microsoft\TeamsMeetingAddin

  1. Copy that folder to your Teams profile:

%LocalAppData%\Microsoft\Teams\CustomProfiles\XXXXXXXXX\AppData\Local\Microsoft\

Where XXXXXXXXX is the name of your custom profile folder.

  1. Go into the following path

%LocalAppData%\Microsoft\Teams\CustomProfiles\XXXXXXXXX\AppData\Local\Microsoft\TeamsMeetingAddin\1.0.22147.1\x64

Obviously, adjust the path based on your profile folder name and the version of your addin.

  1. Copy the path of the addin .dll file:

image

  1. Open CMD or Powershell as ADMIN and paste your path here:

regsvr32.exe /n /i:user "C:\Users\Ricky\AppData\Local\Microsoft\Teams\CustomProfiles\Teams-Crayon-Profile\AppData\Local\Microsoft\TeamsMeetingAddin\1.0.22147.1\x64\Microsoft.Teams.AddinLoader.dll"

  1. Go into Outlook addin and you should find your addin added. If it’s disabled, then just enable it.

image

Awesome! Now all your future Teams meeting created from Outlook will be able to open with the correct Teams profile!

P.S - if you run into issues where the addin doesn’t show up in Outlook, then just import the following registry key below.

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Office\outlook\addins\TeamsAddin.FastConnect]
"Description"="Microsoft Teams Meeting Add-in for Microsoft Office"
"FriendlyName"="Microsoft Teams Meeting Add-in for Microsoft Office"
"LoadBehavior"=dword:00000003

Thanks! Step 8 - use powershell as an admin, CMD throws an error.

@akhm74
Copy link

akhm74 commented Apr 2, 2024

Hi everyone,
It seems like there has been made changes to Teams (Microsoft Teams version 24060.2623.2790.8046), and this excellent script does not work anymore:
image

The update.exe seems to have been removed and a new method deployed.

Any ideas how to modify to the new Teams?

@Sudipkumarc
Copy link

Hi everyone, It seems like there has been made changes to Teams (Microsoft Teams version 24060.2623.2790.8046), and this excellent script does not work anymore: image

The update.exe seems to have been removed and a new method deployed.

Any ideas how to modify to the new Teams?

Ideally there is no reason to run a second instance of Teams since the new teams allows you to connect to multiple work accounts at the same time. Moreover, outlook now allows you to choose which teams account you want to create the meeting from.

@sebastienbo
Copy link

sebastienbo commented Apr 2, 2024 via email

@akhm74
Copy link

akhm74 commented Apr 3, 2024

Hi everyone, It seems like there has been made changes to Teams (Microsoft Teams version 24060.2623.2790.8046), and this excellent script does not work anymore: image
The update.exe seems to have been removed and a new method deployed.
Any ideas how to modify to the new Teams?

Ideally there is no reason to run a second instance of Teams since the new teams allows you to connect to multiple work accounts at the same time. Moreover, outlook now allows you to choose which teams account you want to create the meeting from.

Hi @Sudipkumarc
You are right that the new version can handle several logins, as was the old version of teams. I believe that this script was created in order to have several accounts open at any given time.
As @sebastienbo states, it is not possible to look in both accounts simultaneously, and hence this annoying feature has been reintroduced by MS.
Has anyone found a method for running more than 1 instance of the teams app simultaneously?

@santiago-tapia
Copy link

I am having the same issue. I have recently joined a project and I was invited to several channels for the new project in another organization, I don't see anything unless I switch the organization, but then I miss the notification from my own organization.

I have been surfing the web for a solution, but nothing works. It seems that the "CustomProfiles" aren't there anylong.

@0siribix
Copy link

I played around with this again. Script still works for Teams Classic. The "New Teams" is a UWP app and I didn't find a way to open a second window.

As an alternative you can create multiple profiles in Firefox or Chrome and open a Teams instance in each browser instance

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment