Il peut être nécessaire de vérifier le statut de présence de l'utilisateur (En ligne/Absent/Occupé) dans Microsoft Teams avant d'effectuer une action particulière pour certains scripts d'intégration. Voyons comment obtenir et modifier le statut d'un utilisateur dans Teams à l'aide de l'API Microsoft Graph et de PowerShell.
Contenu:
- Obtenir le statut de présence des utilisateurs de Teams via PowerShell
- Comment modifier le statut de présence des équipes à partir de PowerShell
Si leMicrosoft.Graphmodule est installé sur votre ordinateur, connectez-vous à votre locataire grâce à votre compte :
Connect-MgGraph -Scopes Presence.Read.All,User.Read.All
Si Microsoft.Graph n'est pas installé, vous pouvez l'installer comme suit :
Install-Module Microsoft.Graph -Scope AllUsers
Spécifiez l'UPN de l'utilisateur dont vous souhaitez obtenir le statut :
$TeamsUser = Get-MGUser -Userid [email protected]
Get-MgCommunicationPresence -PresenceId $TeamsUser.Id | select Activity, Availability


Statuts de présence disponibles :
EN RAPPORT:Comment modifier l’arrière-plan de MS Teams
- Disponibilité: Disponible, Occupé, Absent, Hors ligne
- Activité: Disponible, InACall, DoNotDisturb, InAConferenceCall, Away, OffWork, BeRightBack
Vous pouvez répertorier les statuts de présence Teams pour tous les utilisateurs du locataire :
$allUserStatus = @()
$AllUsers=Get-MGUser
foreach ($TeamUser in $AllUsers)
{
$TeamsStatus=Get-MgCommunicationPresence -PresenceId $TeamUser.Id
$CurUserStatus = New-Object PSObject -Property @{
Activity=$TeamsStatus.Activity
Availability=$TeamsStatus.Availability
DisplayName=$TeamUser.DisplayName
}
$allUserStatus += $CurUserStatus
}
$allUserStatus


Si vous souhaitez obtenir un statut d'utilisateur dans Teams à partir d'un script, créez une nouvelle application (Azure AD -> Enregistrement de l'application) et déléguezPresence.ReadWrite.Alll'autorisation (ouPresence.ReadetPresent.Read.Allautorisations lors de l'exécution d'une application en tant qu'utilisateur).
Connectez-vous à votre locataire et obtenez un token :
$ApplicationID = "1111111-1111-1111-1111-11111111111"
$TenatDomainName = "2222222-2222-2222-2222-222222222222"
$AccessSecret = "3333333333333333333333333333333333333333333"
$Body = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
client_Id = $ApplicationID
Client_Secret = $AccessSecret
}
$ConnectGraph = Invoke-RestMethod -Uri https://login.microsoftonline.com/$TenatDomainName/oauth2/v2.0/token -Method POST -Body $Body
Découvrez comment accéder à Azure depuis PowerShell via l’API Microsoft Graph.
Lorsque vous accédez à Azure via l'API, vous devez fournir un ID utilisateur (ObjectId, User Object GUID) au lieu de UserPrincipalName (UPN).
$UserId = "111111-2222-3333-4444-555555555"
$headers = @{
"Authorization" = "Bearer $($tokenResponse.access_token)"
"Content-type" = "application/json"
}
$ApiUrl = "https://graph.microsoft.com/v1.0/users/$UserId/presence"
$Response = Invoke-RestMethod -Method GET -Uri $ApiUrl -ContentType "application\json" -Headers $headers -SkipHeaderValidation
$Response
Vous pouvez également utiliser cette application Azure pour lire ou envoyer un message au chat Teams à l'aide de PowerShell.
Comment modifier le statut de présence des équipes à partir de PowerShell
Vous pouvez utiliser PowerShell et l'API Graph pour modifier le statut de présence d'un utilisateur dans Teams. Connectez-vous à Azure à l’aide de l’API Graph comme indiqué ci-dessus.
Utilisez le script suivant pour modifier le statut d'un utilisateur pendant 1 heure (PT1H) :
$UserId = "111111-2222-3333-4444-555555555"
$uri = "https://graph.microsoft.com/beta/users/$userid/presence/setPresence"
$body = @"
{
"sessionId": "$ApplicationID",
"availability": "Away",
"activity": "Away",
"expirationDuration": "PT1H"
}
"@
Invoke-RestMethod –Uri $uri –Method Post –Body $body –Headers $headers -ContentType "application/json"
Vérifiez que le statut de l'utilisateur dans Teams a changé :
Get-MgCommunicationPresence -PresenceId $UserId















