1 0

List which mailboxes are shared with user

Connect to Office 365 with PowerShell
Specific:

# Prompt the user to enter a username
$Username = Read-Host "Enter the username to check mailbox permissions for"
# Get all mailboxes
$mailboxes = Get-Mailbox -ResultSize Unlimited
# Iterate through each mailbox and check permissions for the specified user
foreach ($mailbox in $mailboxes) {
    # Get the mailbox permissions for the specified user
    $permissions = Get-MailboxPermission -Identity $mailbox.Identity -User $Username -ErrorAction SilentlyContinue
    # If there are permissions for the user, display the mailbox and permissions
    if ($permissions) {
        Write-Output "Mailbox: $($mailbox.Identity)"
        $permissions | Format-Table -AutoSize
    }
}

Get-Mailbox | Get-MailboxPermission -User Username

All:
Get-Mailbox -ResultSize Unlimited | ForEach-Object {Get-MailboxPermission -Identity $_.DistinguishedName | Select-Object Identity,User,AccessRights | Where-Object {($_.user -like '*@*')}} | Export-Csv C:\Permissions.csv -NoTypeInformation

Calendar:
$userToCheck = Read-Host -Prompt "Enter the username to search for (partial name is ok)"
Get-Mailbox | ForEach-Object {
    $email = $_.PrimarySmtpAddress
    $displayName = $_.DisplayName
    Get-MailboxFolderPermission -Identity ($email + ":\Agenda") -ErrorAction SilentlyContinue | Select-Object @{Name='Owner';Expression={$displayName}}, User, AccessRights, FolderName
    Get-MailboxFolderPermission -Identity ($email + ":\Calendar") -ErrorAction SilentlyContinue | Select-Object @{Name='Owner';Expression={$displayName}}, User, AccessRights, FolderName
} | Where-Object {$_.User -like "$userToCheck*"}