StevenM2330We added new Teams startup to a logon script (scheduled task at any user logon), rightly or wrongly I'm sure opinion is divided! Anyway, in case it's of some help, here's the new Teams section of our logon script:
Write-Host "!!!! Begining MSTeams section !!!!"
# Space to separate logs
Write-Host " "
$app = (Get-AppxPackage | Where-Object -Property Name -EQ -Value MSTeams)
Write-Host "MSTEAMS: App: $app"
$pkgName = $app.PackageFamilyName
write-Host "MSTEAMS: Package Family Name: $pkgName"
$startupTask = ($app | Get-AppxPackageManifest).Package.Applications.Application.Extensions.Extension | Where-Object -Property Category -Eq -Value windows.startupTask
write-Host "MSTEAMS: Startup Task: $startupTask"
$taskId = $startupTask.StartupTask.TaskId
Write-Host "MSTEAMS: Task ID: $taskId"
$state = (Get-ItemProperty -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\$pkgName\$taskId" -Name State -ErrorAction SilentlyContinue).State
Write-Host "MSTEAMS: State: $state"
$userStartup = (Get-ItemProperty -Path "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\$pkgName\$taskId" -Name UserEnabledStartupOnce -ErrorAction SilentlyContinue).UserEnabledStartupOnce
Write-Host "MSTEAMS: User Enabled Startup Once: $userStartup"
$regKey = "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\$pkgName\$taskId"
Write-Host "MSTEAMS: Reg Key: $regKey"
if ($state -in 0,1,3) {
Set-ItemProperty -Path $regKey -Name UserEnabledStartupOnce -Value 1 -Force
Set-ItemProperty -Path $regKey -Name State -Value 2 -Force
Write-Host "MSTEAMS: MSTeams State was 0 or 1 or 3, writing values"
}
elseif ($userStartup -in 0) {
Set-ItemProperty -Path $regKey -Name UserEnabledStartupOnce -Value 1 -Force
Write-Host "MSTEAMS: MSTeams State was 0 or 1 or 3, but userStartup was 0. Writing value to 1."
}
elseif ( ($state -in 2) -and ($userStartup -in 1) ) {
Write-Host "MSTEAMS: MSTeams State was 2 and userStartup was 1 already, no action required."
}
else {
Write-Host "MSTEAMS: AppxPackage not registerd yet, adding values based on expected paths"
$expRegPath = "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppModel\SystemAppData\MSTeams_8wekyb3d8bbwe\TeamsTfwStartupTask"
$expRegKey = try {
Get-Item -Path $expRegPath -ErrorAction Stop
Write-Host "MSTEAMS: MSTeams reg key path exists"
}
catch {
New-Item -Path $expRegPath -Force
Write-Host "MSTEAMS: MSTeams reg key path not found, adding key"
}
Write-Host "MSTEAMS: Setting force of MSTeams State and User Startup values"
Set-ItemProperty -Path $expRegKey.PSPath -Name State -Type DWord -Value 2 -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path $expRegKey.PSPath -Name UserEnabledStartupOnce -Type DWord -Value 1 -Force -ErrorAction SilentlyContinue
Write-Host "MSTEAMS: Finished force of MSTeams State and User Startup values"
}
$addinPath = "HKCU:\Software\Microsoft\Office\Outlook\Addins\TeamsAddin.FastConnect"
$addinKey = try {
Get-Item -Path $addinPath -ErrorAction Stop
Write-Host "MSTEAMS: MSTeams Addin path exists"
}
catch {
New-Item -Path $addinPath -Force
Write-Host "MSTEAMS: MSTeams Addin path not found, adding key"
}
Write-Host "MSTEAMS: Setting MSTeams Addin values"
Set-ItemProperty -Path $addinKey.PSPath -Name Description -Type String -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path $addinKey.PSPath -Name FriendlyName -Type String -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -Force -ErrorAction SilentlyContinue
Set-ItemProperty -Path $addinKey.PSPath -Name LoadBehavior -Type DWord -Value 3 -Force -ErrorAction SilentlyContinue
Write-Host "MSTEAMS: MSTeams Addin values set"
# Space to separate logs
Write-Host " "
Write-Host "!!!! Finished MSTeams Section !!!!"