Categories

If you are looking for a list of all guest and external users for a specific Teams Group in PowerShell you can use the following function:


param ([string]$Id)
$TeamsGuests = @{}
$OrgName = “@” + (Get-OrganizationConfig).Identity
$Team = (Get-UnifiedGroup -Identity $Id) #Populate the array with current group membership
Get-UnifiedGroupLinks -LinkType Member -Identity $Team.Alias | % { $User = $_.Name.tostring()  #Handle guest users
    if ($User -like "*#EXT#*") {
        $GuestUPN = $User + $OrgName
        $GuestUser = Get-AzureADUser -ObjectId $GuestUPN -ErrorAction SilentlyContinue   #Handle specific case for user displaynames containing commas
        $GuestDisplayName = $GuestUser.DisplayName -replace ",", ""
        $TeamsGuests.Add($GuestDisplayName, $GuestUser.Mail)
    }
}
$TeamsGuestsjson = ($TeamsGuests | ConvertTo-Json)
$TeamsGuestsjsonClean = $TeamsGuestsjson -replace ",", "<br>"
$TeamsGuestsjsonOut = $TeamsGuestsjsonClean.Trim([char]0x007B, [char]0x007D)
return $TeamsGuestsjsonOut


If you want to use this within CoreView as a Custom Action, you can import following script:


{
   "id": "48bb0938-af1d-42db-8cda-c5c7fc69526e",
   "title": "Get Teams Guests",
   "lastModified": "2022-02-09T12:06:34.3330000Z",
   "target": "Teams",
   "tags": [],
   "vars": [],
   "params": [
      {
         "name": "DisplayName",
         "type": "string",
         "isDefault": true
      },
      {
         "name": "Id",
         "type": "string",
         "isDefault": false
      }
   ],
   "columns": {
      "Id": "",
      "DisplayName": ""
   },
   "version": 5,
   "statement": "param ([string]$DisplayName, [string]$Id)\r\n\r\n$TeamsGuests = @{}\n$OrgName = “@”+ (Get-OrganizationConfig).Identity\n$Team = (Get-UnifiedGroup -Identity $Id)\n# Populate the array with current group membership\nGet-UnifiedGroupLinks -LinkType Member -Identity $Team.Alias | % {\n   $User = $_.Name.tostring()\n   # Handle guest users\n   if ($User -like \"*#EXT#*\") {\n      $GuestUPN = $User+$OrgName\n      $GuestUser = Get-AzureADUser -ObjectId $GuestUPN -ErrorAction SilentlyContinue\n      #Handle specific case for user displaynames containing commas\n      $GuestDisplayName = $GuestUser.DisplayName -replace \",\",\"\"\n      $TeamsGuests.Add($GuestDisplayName, $GuestUser.Mail)\n      }\n}\n\n$TeamsGuestsjson = ($TeamsGuests | ConvertTo-Json) \n$TeamsGuestsjsonClean = $TeamsGuestsjson -replace \",\",\"<br>\" -replace \"\"\"\",\"\"\n\n$TeamsGuestsjsonOut = $TeamsGuestsjsonClean.Trim([char]0x007B, [char]0x007D)\n\nreturn $TeamsGuestsjsonOut"
}