从 AD 组中提取用户并将其添加到邮箱

Extract users from AD group and add them to Mailbox

我想制作一个powershell脚本来提取AD组并将成员添加到特定邮箱。该组中有一个我不想提取的组 (doNotExtract)。这就是我到目前为止所拥有的:

Import-Module ActiveDirectory
$csv = @"
Mailbox,GroupName
Mailbox1,Group1
"@ | ConvertFrom-Csv

$ExcludedUsers = Get-ADGroupMember -Identity "doNotExtract" -Recursive | Select-Object -ExpandProperty SamAccountName

$csv | ForEach-Object {
    $mailbox = $_.Mailbox

    Get-ADGroupMember -Identity $_.GroupName -Recursive |

    Where-Object { ($ExcludedUsers -notcontains $_.SamAccountName) -and ($_.objectclass -eq 'user') } |
    ForEach-Object {
        Add-MailboxPermission -Identity $mailbox -User $_.SamAccountName -AccessRights FullAccess -InheritanceType All
    }
}

A​​D组中有以下对象:

doNotExtract
User1
User2

然后我在交换管理中启动脚本shell。但随后它只添加了 User1,而 User2 没有获得 Mailbox1 的完全访问权限。

而且我找不到脚本中的问题...

我在使用 Exchange Online 时遇到过,使用 SamAccountName 并不总是很顺利。您是否尝试过使用 UserPrincipalName 作为 Add-MailboxPermission 的输入而不是 SamAccountName

我也想知道为什么要提取AD组的成员并赋予他们对邮箱的完全访问权限?你为什么不给 AD 组本身对邮箱的完全访问权限?

在这种情况下,错误是 User2 也在 donotextract 组中。

正如@4c74356b41 提到的,User2 在组 "doNotExtract" 中。然后它不会将他添加到邮箱,因为这个组被排除在外。