Como consultar e alterar o status de presença do usuário do Teams com PowerShell

Admin

Pode ser necessário verificar o status de presença do usuário (Online/Ausente/Ocupado) no Microsoft Teams antes de executar uma ação específica para alguns scripts de integração. Vamos dar uma olhada em como obter e alterar o status de um usuário no Teams usando a API Microsoft Graph e o PowerShell.

Conteúdo:

  • Obtenha o status de presença do usuário do Teams via PowerShell
  • Como alterar o status de presença das equipes do PowerShell

Obtenha o status de presença do usuário do Teams via PowerShell

Se o Microsoft. Gráfico módulo estiver instalado em seu computador, conecte-se ao seu locatário usando sua conta:

Connect-MgGraph -Scopes Presence.Read.All, User.Read.All

Se a Microsoft. O Graph não está instalado, você pode instalá-lo da seguinte maneira:

Install-Module Microsoft.Graph -Scope AllUsers

Especifique o UPN do usuário cujo status você deseja obter:

$TeamsUser = Get-MGUser -Userid [email protected]
Get-MgCommunicationPresence -PresenceId $TeamsUser.Id | select Activity, Availability

Obtenha o status de presença online de usuários do MS Teams com PowerShell

Status de presença disponíveis:

  • Disponibilidade: Disponível, Ocupado, Ausente, Off-line
  • Atividade: Disponível, InACall, DoNotDisturb, InAConferenceCall, Ausente, OffWork, BeRightBack

Você pode listar os status de presença do Teams para todos os usuários do locatário:

$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. 
Listar o status de disponibilidade do Teams para todos os usuários locatários

Se você deseja obter o status de um usuário no Teams a partir de um script, crie um novo aplicativo (Azure AD -> Registro do aplicativo) e delegue Presence.ReadWrite.All permissão para isso (ou Presence.Read e Present.Read.All permissões ao executar um aplicativo como usuário).

Conecte-se ao seu locatário e receba um 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 
Saiba mais sobre como acessar o Azure do PowerShell por meio da API Microsoft Graph.

Ao acessar o Azure via API, você deve fornecer um ID de usuário (ObjectId, User Object GUID) em vez de NomePrincipaldoUsuário (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 
Você também pode usar este aplicativo do Azure para ler ou envie uma mensagem para o bate-papo do Teams usando PowerShell.

Como alterar o status de presença das equipes do PowerShell

Você pode usar o PowerShell e a API Graph para alterar o status de presença de um usuário no Teams. Conecte-se ao Azure usando a API Graph conforme mostrado acima.

Use o script a seguir para alterar o status de um usuário por 1 hora (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"

Verifique se o status do usuário no Teams mudou:

Get-MgCommunicationPresence -PresenceId $UserId

PowerShell: atualize o status de presença do usuário do Teams

Enviando um e-mail para um canal do Microsoft Teams
Enviando um e-mail para um canal do Microsoft Teams

Em alguns casos, os usuários podem precisar enviar ou encaminhar um e-mail de uma caixa de entrad...

Como desativar a inicialização automática do Microsoft Teams
Como desativar a inicialização automática do Microsoft Teams

Por padrão, quando você instala o Office 365/Office 2019, todos os aplicativos do Microsoft Offic...

Como enviar uma mensagem para o canal Teams com o PowerShell
Como enviar uma mensagem para o canal Teams com o PowerShell

Você pode enviar mensagens para canais do Teams do PowerShell usando webhook ou chamadas de API d...