Довольно часто при аудите ящиков в организации Exchange Server или тенанте Microsoft 365 (Exchange Online) администратору нужно найти все ящики, к которым есть доступ у определенного пользователя. В этой статье мы рассмотрим несколько PowerShell скриптов для получения отчетов по доступам к ящикам и папкам в ящиках Exchange.
Для получения списка разрешений, назначенных на ящик используется командлет Get-MailboxPermission.
Откройте консоль PowerShell и подключитесь удаленно к своему on-prem Exchange Server или тенанту Microsoft 365 (Exchange Online).
Следующая команда выведет список пользователей, у которых есть права на указанный ящик:
get-mailboxpermission -identity [email protected] |ft -AutoSize
В данном примере видно, что у пользователей GradyA и HenriettaM есть полные права ( Full Access
) на ящик указанного пользователя. Данные права установлены вручную (не наследованы), т.к. IsInherited = False.
Можно вывести полный отчет по назначенным правам на ящики и представить его в виде удобной таблицы Out-GridView
Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITYSELF" -and $_.IsInherited -eq $false} | Out-GridView
С помощью следующей команды PowerShell вы можете найти и вывести список ящиков в вашей организации Exchange или тенанте, на которых у определенного пользователя есть полные права:
Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User "HenriettaM" | ft User,Identity,AccessRights
В этом примере мы нашли, что у указанного пользователя есть полный доступ к трем ящикам (столбец Identity).
В Microsoft 365 можно использовать новые командлеты модуля Exchange Online PowerShell v2 (EXO V2) для получения такого списка:
Get-EXOMailbox -ResultSize Unlimited | Get-EXOMailboxPermission -Identity $_.Identity | Where-Object {$_.User -eq " [email protected] "}
Вы можете использовать фильтры по типу ящика. Это ускорит поиск. Для этого добавьте к команде Get-EXOMailbox или Get-Mailbox параметр – RecipientTypeDetails с типом ящиков, по которым выполнять поиск:
Например:
Get-Mailbox -ResultSize Unlimited -RecipientTypeDetails SharedMailbox| Get-MailboxPermission -User "HenriettaM" | ft User,Identity,AccessRights
Найти ящики пользователей, на которые у определенного пользователя есть права SenAs:
Get-Mailbox -RecipientTypeDetails UserMailbox -ResultSize Unlimited | Get-RecipientPermission -Trustee HenriettaM
Также можно найти ящики с правами Send on behalf:
Get-Mailbox | ? {$_.GrantSendOnBehalfTo -match "HenriettaM"}
Кроме назначения прав на весь ящик в Exchange (Microsoft 365) можно предоставить доступ другому пользователя к конкретной папке. Например, только к папке Входящие или к Календарю . При аудите доступа пользователей иногда нужно найти не только ящики с правами FullAccess, но и конкретные папки в ящиках пользователей, на которые назначен доступ другим пользователям.
Вы можете вывести разрешения на конкретную папку с помощью командлета Get-MailboxFolderPermission , а с помощью Get-MailboxFolderStatistics можно получить список папок в указанном ящике.
Следующий PowerShell скрипт проверяет все ящики в вашей организации и выводит папки (включая вложенные), на которые дан доступ определенному пользователю.
$usertofind= "*Henrietta Mueller*"
$allpermissions = @()
$MBXs= Get-Mailbox -ResultSize Unlimited
Foreach ($MBX in $MBXs){
$MBXfolders=Get-MailboxFolderStatistics $MBX.PrimarySmtpAddress |select Name
Foreach ($MBXfolder in $MBXfolders){
try {
$folder=$MBX.PrimarySmtpAddress + ":" + $MBXfolder.name
$folderpermessions= Get-MailboxFolderPermission -Identity $folder -ErrorAction Stop | where {($_.user -like $usertofind)}
$allpermissions += $folderpermessions
}
catch {
Continue
}
}
}
$allpermissions | select IdentityFolderNameUser
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…