Аудит разрешений на полный доступ к почтовому ящику Exchange 2007 с помощью Powershell

StackOverflow https://stackoverflow.com/questions/1998696

Вопрос

Иногда меня просят создать список пользователей, обладающих полными правами доступа к определенному почтовому ящику 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top