0

我想制作一个 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
    }
}

AD 组中有以下对象:

doNotExtract
User1
User2

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

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

4

3 回答 3

1

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

于 2017-03-03T11:30:34.133 回答
0

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

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

于 2017-03-03T10:41:56.170 回答
0

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

于 2017-03-03T11:31:39.097 回答