从 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
}
}
AD组中有以下对象:
doNotExtract
User1
User2
然后我在交换管理中启动脚本shell。但随后它只添加了 User1,而 User2 没有获得 Mailbox1 的完全访问权限。
而且我找不到脚本中的问题...
我在使用 Exchange Online 时遇到过,使用 SamAccountName
并不总是很顺利。您是否尝试过使用 UserPrincipalName
作为 Add-MailboxPermission
的输入而不是 SamAccountName
?
我也想知道为什么要提取AD组的成员并赋予他们对邮箱的完全访问权限?你为什么不给 AD 组本身对邮箱的完全访问权限?
在这种情况下,错误是 User2 也在 donotextract
组中。
正如@4c74356b41 提到的,User2 在组 "doNotExtract" 中。然后它不会将他添加到邮箱,因为这个组被排除在外。
我想制作一个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 的完全访问权限。
而且我找不到脚本中的问题...
我在使用 Exchange Online 时遇到过,使用 SamAccountName
并不总是很顺利。您是否尝试过使用 UserPrincipalName
作为 Add-MailboxPermission
的输入而不是 SamAccountName
?
我也想知道为什么要提取AD组的成员并赋予他们对邮箱的完全访问权限?你为什么不给 AD 组本身对邮箱的完全访问权限?
在这种情况下,错误是 User2 也在 donotextract
组中。
正如@4c74356b41 提到的,User2 在组 "doNotExtract" 中。然后它不会将他添加到邮箱,因为这个组被排除在外。