Jak wysyłać zapytania i zmieniać stan obecności użytkownika Teams za pomocą programu PowerShell

Admin

W przypadku niektórych skryptów integracyjnych może zaistnieć konieczność sprawdzenia statusu obecności użytkownika (Online/Away/Zajęty) w Microsoft Teams przed wykonaniem określonej akcji. Przyjrzyjmy się, jak uzyskać i zmienić status użytkownika w aplikacji Teams przy użyciu interfejsu API Microsoft Graph i programu PowerShell.

Zawartość:

  • Uzyskaj status obecności użytkownika Teams za pomocą programu PowerShell
  • Jak zmienić status obecności zespołów w programie PowerShell

Uzyskaj status obecności użytkownika Teams za pomocą programu PowerShell

Jeśli Microsoftu. Wykres moduł jest zainstalowany na Twoim komputerze, połącz się z najemcą za pomocą swojego konta:

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

Jeśli Microsoft. Wykres nie jest zainstalowany, możesz go zainstalować w następujący sposób:

Install-Module Microsoft.Graph -Scope AllUsers

Podaj nazwę UPN użytkownika, którego status chcesz uzyskać:

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

Uzyskaj status obecności online użytkowników MS Teams za pomocą programu PowerShell

Dostępne statusy obecności:

  • Dostępność: Dostępny, Zajęty, Nieobecny, Offline
  • Działalność: Dostępne, InACall, Nie przeszkadzać, InAConferenceCall, Poza domem, Poza pracą, BeRightBack

Możesz wyświetlić listę stanów obecności aplikacji Teams dla wszystkich użytkowników w dzierżawie:

$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. 
Wyświetl stan dostępności aplikacji Teams dla wszystkich użytkowników dzierżawy

Jeśli chcesz uzyskać status użytkownika w Teams ze skryptu, utwórz nową aplikację (Azure AD -> Rejestracja aplikacji) i deleguj Presence.ReadWrite.All pozwolenie na to (lub Presence.Read I Present.Read.All uprawnienia podczas uruchamiania aplikacji jako użytkownik).

Połącz się ze swoim najemcą i uzyskaj 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 
Dowiedz się więcej o tym, jak to zrobić uzyskaj dostęp do platformy Azure z programu PowerShell za pośrednictwem interfejsu API Microsoft Graph.

Podczas uzyskiwania dostępu do platformy Azure za pośrednictwem interfejsu API należy zamiast tego podać identyfikator użytkownika (ObjectId, identyfikator GUID obiektu użytkownika). Nazwa główna użytkownika (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 
Możesz także użyć tej aplikacji platformy Azure do czytania lub wyślij wiadomość do czatu aplikacji Teams przy użyciu programu PowerShell.

Jak zmienić status obecności zespołów w programie PowerShell

Możesz użyć programu PowerShell i interfejsu Graph API, aby zmienić stan obecności użytkownika w aplikacji Teams. Połącz się z platformą Azure przy użyciu interfejsu API programu Graph, jak pokazano powyżej.

Użyj poniższego skryptu, aby zmienić status użytkownika na 1 godzinę (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"

Sprawdź, czy status użytkownika w aplikacji Teams uległ zmianie:

Get-MgCommunicationPresence -PresenceId $UserId

PowerShell: zaktualizuj stan obecności użytkownika Teams

Jak wysyłać zapytania i zmieniać stan obecności użytkownika Teams za pomocą programu PowerShell
Jak wysyłać zapytania i zmieniać stan obecności użytkownika Teams za pomocą programu PowerShell

W przypadku niektórych skryptów integracyjnych może zaistnieć konieczność sprawdzenia statusu obe...

Jak wysyłać zapytania i zmieniać stan obecności użytkownika Teams za pomocą programu PowerShell
Jak wysyłać zapytania i zmieniać stan obecności użytkownika Teams za pomocą programu PowerShell

W przypadku niektórych skryptów integracyjnych może zaistnieć konieczność sprawdzenia statusu obe...

Jak wyeksportować historię czatów MS Teams za pomocą programu PowerShell
Jak wyeksportować historię czatów MS Teams za pomocą programu PowerShell

W tym artykule przyjrzymy się, jak uzyskać dostęp do historii rozmów na czacie w aplikacji Micros...