Skip to content

Instantly share code, notes, and snippets.

@machv
Last active June 26, 2023 08:53
Show Gist options
  • Save machv/40e9c0703c26a5bb6a0ed5df31a51154 to your computer and use it in GitHub Desktop.
Save machv/40e9c0703c26a5bb6a0ed5df31a51154 to your computer and use it in GitHub Desktop.
Connect-MgGraph -Scopes "User.Read.All", "Group.Read.All", "Domain.ReadWrite.All", "AuditLog.Read.All"
$guests = Get-MgUser -Filter "userType eq 'Guest'" -ExpandProperty "memberOf" -Property "createdDateTime", "signInActivity", "displayName", "userPrincipalName", "mail", "userType"
[array]$guestsReport = @()
$guest = $guests | Select-Object -First 1
foreach($guest in $guests) {
"{0} [{1}] (groups: {2}); Created = {3}; Last Sign In = {4}" -f $guest.DisplayName, $guest.userPrincipalName, $guest.memberOf.Count, $guest.createdDateTime, $guest.signInActivity.lastSignInDateTime
$lastSignIn = $null
if($guest.signInActivity -and $guest.signInActivity.lastSignInDateTime) {
$lastSignIn = $guest.signInActivity.lastSignInDateTime.ToString()
}
$guestInfo = [PSCustomObject]@{
ObjectId = $guest.Id
DisplayName = $guest.DisplayName
UserPrincipalName = $guest.userPrincipalName
Created = $guest.createdDateTime.ToString()
LastSignIn = $lastSignIn
UserType = $guest.UserType
Groups = @()
}
$memberOf = $guest.memberOf | Select-Object -First 1
foreach ($memberOf in $guest.memberOf) {
$groupInfo = [PSCustomObject]@{
Id = $memberOf.Id
Name = $group.displayName
Owners = @()
}
$group = Get-MgGroup -GroupId $memberOf.Id -ExpandProperty "owners"
" * {0} (owners: {1})" -f $group.DisplayName, $group.owners.Count
$ownerId = $group.owners | Select-Object -First 1
foreach($ownerId in $group.owners) {
$groupInfo.Owners += [PSCustomObject]@{
Id = $owner.Id
DisplayName = $owner.DisplayName
UserPrincipalName = $owner.userPrincipalName
}
$owner = Get-MgUser -UserId $ownerId.Id
" - {0} [Id: {1}]" -f $owner.displayName, $owner.Id
}
$guestInfo.Groups += $groupInfo
}
$guestsReport += $guestInfo
}
$guestsReport | ConvertTo-Json -Depth 10 | Out-File "guests.json"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment