Аудит разрешений на полный доступ к почтовому ящику Exchange 2007 с помощью Powershell
-
22-09-2019 - |
Вопрос
Иногда меня просят создать список пользователей, обладающих полными правами доступа к определенному почтовому ящику Exchange 2007.На данный момент я делаю это вручную, и в идеале я бы хотел сделать это с помощью Powershell.
Есть ли в любом случае возможность создать список разрешений на полный доступ (и права отправки от имени также были бы полезны).
Спасибо, Джонни
Решение
Разрешения "Отправить как" хранятся в active Directory, поэтому получить к ним доступ немного сложнее.Вы могли бы использовать Add-Member, если хотите объединить интересующие вас свойства из двух результатов.
Полный доступ:
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
Отправить-Как:
get-mailbox | %{$mailbox = $_; Get-ADPermission $mailbox.DistinguishedName | ?{$_.ExtendedRights -like "Send-As" -and $_.User -notlike "NT AUTHORITY\SELF"}} | ft {$mailbox},user,{"Send-As"}
Другие советы
В дополнение к ответу Slipsecs существует альтернатива аудиту разрешений "Отправить как".
$(Get-Mailbox -Identity mailboxName).GrantSendOnBehalfTo | ft Name
При этом возвращаются только добавленные вручную пользователи, а не автоматически сгенерированные.
Еще раз спасибо Slipsec за вашу помощь в этом!
get-mailbox -identity MailBoxName | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
Если вы ищете разрешения для пользователей на определенный почтовый ящик.Замените имя почтового ящика точным именем почтового ящика, для которого вы пытаетесь запустить отчет.Он чувствителен к ключам в отношении имени почтового ящика и псевдонима.
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights
в приведенной выше команде мне заменить foo на почтовый ящик или имя пользователя?Я попробовал команду, и она говорит, что не может выполнить привязку, поскольку object равен null - буду благодарен вам за помощь.
Я знаю, что это устарело, но на всякий случай, если кто-нибудь еще наткнется на эту тему в поисках помощи, чтобы ответить на последний вопрос OPs, $foo
представляет переменную, которую вы должны определить перед запуском команды, так что в качестве примера:
$foo = 'Example User'
get-mailbox | %{$foo = $_; Get-MailboxPermission $foo | ?{$_.AccessRights -eq "FullAccess" -and $_.IsInherited -eq $false}} | ft {$foo},User,AccessRights