Hoe u de aanwezigheidsstatus van Teams-gebruikers kunt opvragen en wijzigen met PowerShell

Admin

Het kan nodig zijn om de aanwezigheidsstatus van de gebruiker (Online/Afwezig/Bezet) in Microsoft Teams te controleren voordat u een bepaalde actie uitvoert voor sommige integratiescripts. Laten we eens kijken hoe u de status van een gebruiker in Teams kunt verkrijgen en wijzigen met behulp van de Microsoft Graph API en PowerShell.

Inhoud:

  • Ontvang de aanwezigheidsstatus van Teams-gebruikers via PowerShell
  • Hoe u de aanwezigheidsstatus van teams kunt wijzigen vanuit PowerShell

Ontvang de aanwezigheidsstatus van Teams-gebruikers via PowerShell

Als de Microsoft. Grafiek module op uw computer is geïnstalleerd, maakt u verbinding met uw tenant via uw account:

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

Als deMicrosoft. Graph is niet geïnstalleerd, u kunt het als volgt installeren:

Install-Module Microsoft.Graph -Scope AllUsers

Geef de UPN op van de gebruiker wiens status u wilt ophalen:

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

Ontvang de online aanwezigheidsstatus van MS Teams-gebruikers met PowerShell

Beschikbare aanwezigheidsstatussen:

  • Beschikbaarheid: Beschikbaar, Bezet, Afwezig, Offline
  • Activiteit: Beschikbaar, InACall, DoNotDisturb, InAConferenceCall, Away, OffWork, BeRightBack

U kunt de aanwezigheidsstatussen van Teams voor alle gebruikers in de tenant weergeven:

$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. 
Geef de beschikbaarheidsstatus van Teams weer voor alle tenantgebruikers

Als u vanuit een script een gebruikersstatus in Teams wilt verkrijgen, maakt u een nieuwe app (Azure AD -> App-registratie) en delegeert u Presence.ReadWrite.All toestemming daarvoor (of Presence.Read En Present.Read.All machtigingen bij het uitvoeren van een app als gebruiker).

Maak verbinding met uw tenant en ontvang een 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 
Meer informatie over hoe u dat kunt doen toegang tot Azure vanuit PowerShell via Microsoft Graph API.

Wanneer u via API toegang krijgt tot Azure, moet u een gebruikers-ID (ObjectId, User Object GUID) opgeven in plaats van GebruikerPrincipalName (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 
U kunt deze Azure-app ook gebruiken om te lezen of stuur een bericht naar de Teams-chat met behulp van PowerShell.

Hoe u de aanwezigheidsstatus van teams kunt wijzigen vanuit PowerShell

U kunt PowerShell en de Graph API gebruiken om de aanwezigheidsstatus van een gebruiker in Teams te wijzigen. Maak verbinding met Azure met behulp van de Graph API, zoals hierboven weergegeven.

Gebruik het volgende script om een ​​gebruikersstatus voor 1 uur (PT1H) te wijzigen:

$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"

Controleer of de gebruikersstatus in Teams is gewijzigd:

Get-MgCommunicationPresence -PresenceId $UserId

PowerShell: aanwezigheidsstatus van Teams-gebruiker bijwerken

Een bericht verzenden naar Teams-kanaal met PowerShell
Een bericht verzenden naar Teams-kanaal met PowerShell

U kunt vanuit PowerShell berichten naar Teams-kanalen verzenden met behulp van webhook of Microso...

Microsoft Teams beheren met PowerShell
Microsoft Teams beheren met PowerShell

De Microsoft Teams De PowerShell-module is ontworpen om Teams vanaf de opdrachtregel te beheren. ...

Hoe u de aanwezigheidsstatus van Teams-gebruikers kunt opvragen en wijzigen met PowerShell
Hoe u de aanwezigheidsstatus van Teams-gebruikers kunt opvragen en wijzigen met PowerShell

Het kan nodig zijn om de aanwezigheidsstatus van de gebruiker (Online/Afwezig/Bezet) in Microsoft...