MS Teams Start Einstellungen: desktop-config.json

Die Einstellungen und Attribute wie Microsoft Teams gestartet werden soll, sind in der Datei desktop-config.json hinterlegt. Hier werden Attribute hinterlegt, die für den Teams-Start wichtig sind. Welche Attribute es gibt und wo sich die JSON-Datei befindet seht ihr in diesem Beitrag.

Teams desktop-config.json unter Windows

Wo befindet sich die Teams Datei desktop-config.json unter Windows?

Unter Windows Betriebssystemen wird die Datei im lokalen Benutzerprofil hinterlegt. Diese ist für jeden Benutzer individuell und befindet sich in folgendem Pfad:

C:\Users\%username%\AppData\Roaming\Microsoft\Teams\desktop-config.json

Diese Datei im JSON-Format wird von Teams automatisch generiert und ist für die Start Einstellungen verantwortlich.

JSON-Datei mit PowerShell auslesen

JSON Dateien sind nicht all zu gut leserlich. In PowerShell gibt es das Cmdlet ConvertFrom-Json um die Inhalte der desktop-config.json besser darstellen zu lassen:

# Inhalt der Datei auslesen
$yourFile = Get-Content -path "$ENV:APPDATA\Microsoft\Teams\desktop-config.json"

# Inhalt in ein PowerShell Objekt wandeln
$JSONObject = ConvertFrom-Json -InputObject $yourFile

# Inhalt ausgeben
Write-Host $JSONObject

Somit sind die Inhalte und Attribute für den Teams Start gut leserlich.

Welche Inhalte sind in der desktop-config.json hinterlegt?

Sieht man sich das Ergebnis aus dem PowerShell Befehl an, so werden die Eigenschaften der JSON-Datei leserlich untereinander angezeigt. Die Inhalte der desktop-config.json setzen sich wie folgt zusammen:

preventUpnDetectSso : False
silentUpdateTriggered : False
featureLaunchInfo : @{enableUpnSilentSignin=-1; authWamAccountEnumerationAppStartTelemetry=-1}
previousCrashesInfo : @{crashes=System.Object[]}
windowState : @{monitorId=2779098405; x=48; y=48; width=1488; height=776; isMaximized=True;
isFullScreen=False}
restartCommand :
upnWindowUserUpn : XXXXXXXXXX
userUpn :
userOid : XXXXXXXXXX
userTid : XXXXXXXXXX
guestTenantId :
homeTenantId : XXXXXXXXXX
webAccountId : XXXXXXXXXX
webAccountProviderType :
launchTime : 1598267520568
desktopZoomLevelV2 : 3
userAccounts : {}
signedInActiveUser :
tidOidMap :
isAppFirstRun : False
upnScreenShowCount : 0
desktopSessionId : XXXXXXXXXX
teamsUrlProtocolsRegistered : True
lyncUrlProtocolsRegistered : False
disableWarningOnOpenKeyRegistered : True
previousElectronVersion : 4.2.12
lastKnownElectronVersion : 4.2.12
machineId : XXXXXXXXXX
deviceInfoId : XXXXXXXXXX
appPreferenceSettings : @{disableGpu=False; openAtLogin=True; openAsHidden=True; runningOnClose=True;
registerAsIMProvider=True}
currentWebLanguage : de
officeMachineId :
pastModernAuthSucceeded : True
previousWebClientVersion : 27/1.0.0.2020080725
isForeground : False
restartInfo :
notificationWindowOnClose : True
isAppSessionEnd : False
isAppTerminated : False
wamMigrationInProgress : False
wamMigrationReason :
isRunningWamBefore : True
nativeWamForcedOff : False
isLoggedOut : False
pastNativeWamAuthSucceeded : True

Die IDs und personalisierten Daten habe ich mit XXXXXXXXXX verborgen. Wie man sehen kann, sind es etliche Attribute, die für den Teams-Start relevant sind. Ein Attribut, das gerne geändert wird ist openAsHidden, welches für den Teams Start im Hintergrund verantwortlich ist.

Attribute aktualisieren mit PowerShell

Es lassen sich zwar nicht alle Attribute der JSON-Datei ändern, allerdings gibt es drei Stück, die gerne für den Teams-Start angepasst werden:

  • openAsHidden = Teams im Hintergrund starten
  • openAtLogin = Teams Autostart
  • RunningOnClose = Beim Beenden minimieren statt schließen

Diese Eigenschaften können in der Datei desktop-config.json per PowerShell angepasst werden, allerdings muss Teams dafür beendet sein. Folgendes Script habe ich in einem Microsoft Blog gefunden, dem man als Parameter die Einstellungen mitgeben kann. Teams wird automatisch beendet.

param(
# Teams open in the background Hidden $true or $false
[boolean]$OpenAsHidden=$False,
# Teams open automatically at user login $true or $false
[boolean]$OpenAtLogin=$False,
# Close Teams App fully instead of running on Taskbar $true or $false
[boolean]$RunningOnClose=$False
)
# Get Teams Configuration
$FileContent=Get-Content -Path "$ENV:APPDATA\Microsoft\Teams\desktop-config.json"
# Convert file content from JSON format to PowerShell object
$JSONObject=ConvertFrom-Json -InputObject $FileContent
# Update Object settings
$JSONObject.appPreferenceSettings.OpenAsHidden=$OpenAsHidden
$JSONObject.appPreferenceSettings.OpenAtLogin=$OpenAtLogin
$JSONObject.appPreferenceSettings.$RunningOnClose=$RunningOnClose
# Terminate Teams Process
Get-Process Teams | Stop-Process -Force
# Convert Object back to JSON format
$NewFileContent=$JSONObject | ConvertTo-Json
# Update configuration in file
$NewFileContent | Set-Content -Path "$ENV:APPDATA\Microsoft\Teams\desktop-config.json"

Dieses Script kann man per Gruppenrichtlinie oder im Logon Script ausführen, da dies für jedes Benutzerprofil angepasst werden muss. Die Teams Start Einstellungen sind nämlich personalisiert in dieser JSON Datei abgelegt.

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments
sidebar