Skip to content

Instantly share code, notes, and snippets.

@Windos
Created August 24, 2018 10:05
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Windos/bb663a8b025de03f922a4593de79fcf9 to your computer and use it in GitHub Desktop.
Save Windos/bb663a8b025de03f922a4593de79fcf9 to your computer and use it in GitHub Desktop.
function Get-OrphanedMailbox {
$ExSplat = @{
ConfigurationName = 'Microsoft.Exchange'
ConnectionUri = 'http://exchange.example.com/powershell'
Authentication = 'Kerberos'
}
$ExSession = New-PSSession @ExSplat
Import-PSSession -Session $ExSession *>$null
$SharedMailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox
foreach ($SharedMailbox in $SharedMailboxes) {
$Permissions = $SharedMailbox | Get-MailboxPermission | Where-Object {
$_.IsInherited -eq $false -and $_.User -like 'EXMAPLE\*' -and $_.User -ne 'EXAMPLE\serviceaccount'
}
if ($null -eq $Permissions) {
$CalendarIdentitiy = '{0}:\Calendar' -f $SharedMailbox.PrimarySmtpAddress
$CalendarPermissions = Get-MailboxFolderPermission -Identity $CalendarIdentitiy | Where-Object {
$_.User -notin @('Default', 'Anonymous') -and $_.User -like 'EXAMPLE\*'
}
if ($null -eq $CalendarPermissions) {
[PSCustomObject]@{
Mailbox = $SharedMailbox.Name
SMTPAddress = $SharedMailbox.PrimarySmtpAddress
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment