The estimated reading time 2 minutes
Vielleicht habt ihr meinen alten Artikel vom 11. Mai 2018 LINK gefunden. Seiher verging einige Zeit und Teams hat sich in vielen Bereichen weiterentwickelt. Inzwischen gibt es auch eine Übersicht im Teams Admin Center aber ich dachte es wäre interessant noch weitere Infos über PowerShell auszuwerten. Also nahm ich mein altes Skript und habe dies nochmals mit dem aktuellen PowerShell Modul für Teams nachgebaut und verbessert.
Als ersten Schritt müssen die Berechtigungen des ausführenden Benutzers geprüft werden. Der ausführende Benutzer muss mindestens Teams Administrator sein siehe Microsoft Dokumentation. Funktioniert auch mit dem globalen Administrator.
Was das Skript erledigen kann:
– Überprüft alle Teams ob es externe Gäste gibt
– findet nur Gastbenutzer
– Schreibt Team Name, GroupID, Gästeeinstellungen, Gästebenutzer zusammen
– Erstellt eine html/csv Datei mit den Informationen
HINWEIS: wer die aktuelle Version des Teams PowerShell Moduls nutzen will, benötigt PowerShell 5.1 hier noch ein Link zur Installation
Der nachfolgende Screenshot zeigt die Ausgabe des Skriptes:
Scripting Area:
#installing module Install-Module MicrosoftTeams -Verbose -Scope AllUsers -Force #importing the teams module Import-Module MicrosoftTeams -Verbose -Force $creds = Get-Credential Connect-MicrosoftTeams -Credential $creds -Verbose #get all teams $teams = Get-Team #create array for output $teamsarray =@() #check every team found foreach($team in $teams){ #get group id $grpid = ($team).GroupId #get guest users if exists $guestusers = Get-TeamUser -GroupId $grpid -Role Guest # check if there are some guest users if($guestusers){ #getting teams parameters for display later $name = ($team).DisplayName $visibility = ($team).Visibility $guestupdate = ($team).AllowGuestCreateUpdateChannels $guestdelete = ($team).AllowGuestDeleteChannels $guestusername = ($guestusers).User #creating a new custom object to fit all information together $teamsguest = New-Object System.Object $teamsguest | Add-Member -type NoteProperty -name DisplayName -Value $name $teamsguest | Add-Member -type NoteProperty -name HasGuestUsers -Value "TRUE" $teamsguest | Add-Member -type NoteProperty -name Visibility -Value $visibility $teamsguest | Add-Member -type NoteProperty -name AllowGuestCreateUpdateChannels -Value $guestupdate $teamsguest | Add-Member -type NoteProperty -name AllowGuestDeleteChannels -Value $guestdelete $teamsguest | Add-Member -type NoteProperty -name GroupID -Value $grpid $teamsguest | Add-Member -type NoteProperty -name GuestUser -Value (@($guestusername) -join " ") #adding every team to the array for displaying $teamsarray += $teamsguest } #if team has no guest users, nothing is written into array else{ #only output in powershell console $name = ($team).DisplayName Write-Host "No guest users found in Team: $name " -ForegroundColor Yellow } } $Header = @" <style> TABLE {border-width: 1px; border-style: solid; border-color: black; border-collapse: collapse;} TD {border-width: 1px; padding: 3px; border-style: solid; border-color: black;} </style> "@ $teamsarray |Sort-Object DisplayName | ConvertTo-Html -Property DisplayName,Visibility,AllowGuestCreateUpdateChannels,AllowGuestDeleteChannels,GroupID,GuestUser -Head $Header | Out-File -FilePath .\msteam-guests.html Invoke-Expression ".\msteam-guests.html" $teamsarray | Export-Csv -Path .\msteams-guest.csv -Encoding UTF8 -Delimiter ";"
Wenn euch der Artikel gefallen hat, dann klickt auf „helpful“ gerne antworte ich auch auf Kommentare. Viel Spaß damit.
[…] geladen sind und auch eine Verbindung zur Cloud besteht. Siehe hierzu meine beiden weiteren ArtikelExperimentieren mit Microsoft Teams PowerShell Modulund Exchange Online PowerShell V2 […]