【问题标题】:Extract users from AD group and add them to Mailbox从 AD 组中提取用户并将其添加到邮箱
【发布时间】:2017-07-23 09:39:43
【问题描述】:

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

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

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

【问题讨论】:

  • 显然 user2 在 donotextract 组中?
  • 不,user2直接在Group1中
  • 以及在组 donotextract 中
  • 嗯,有时我应该休息一下,然后再看一遍:3 正如您所说的“User2”在“doNotExtract”组中。谢谢!

标签: powershell active-directory exchange-management-shell


【解决方案1】:

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

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

【讨论】:

  • 因为他不希望该组内的组有权访问??
  • Azure 无法导入广告组...所以当我想将 Exchange 迁移到 azure 时,我必须这样做 :( 但感谢您的提示。我会尝试 :)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-12
      相关资源
      最近更新 更多