用该 AD 组中的用户替换 Exchange 中的 AD 组
Replace AD Group in Exchange with Users in that AD Group
我们必须迁移到 Microsoft Azure,由于 Azure 无法处理 Exchange 中的 AD 组,我必须获取特定组的成员,然后将他们添加到交换中。所以我想我可以用 powershell 来实现这个。
原理:
我有邮箱名称和组,必须像这样在 csv 中提取:
邮箱 1 GroupForMailbox1
邮箱 2 GroupForMailbox2
邮箱 2 GroupForMailbox2
我知道如何从组中提取所有用户:
Get-ADGroupMember -identity "GroupForMailbox1" -Recursive
但问题是,这个群组中有一个群组,我不想让用户离开它。让我称之为 "ExcludedGroup"。我怎样才能得到除组 "ExcludedGroup" 之外的所有 AD 组成员?
那我得把那些AD会员发到具体的邮箱:
$Users= "Users that I've got out of the upper command"
foreach ($Users){
Add-MailboxPermission -Identity "Mailbox1" -User $Users Accessright Fullaccess -InheritanceType all
}
但由于缺乏知识,我无法将所有内容都放在一个脚本中。
虽然 azure 确实存在问题,但我在互联网上找不到相关信息。
我认为有人可以帮助我。
是这样的吗?
#Sample data
$csv = @"
Mailbox,GroupName
Mailbox1,GroupForMailbox1
Mailbox2,GroupForMailbox2
Mailbox2,GroupForMailbox2
"@ | ConvertFrom-Csv
#Uncomment to import file
#$csv = Import-CSV -Path MyInputFile.csv
$ExcludedUsers = Get-ADGroupMember -Identity "ExcludedGroup" -Recursive | Select-Object -ExpandProperty SamAccountName
$csv | ForEach-Object {
$mailbox = $_.Mailbox
#Get members for group
Get-ADGroupMember -Identity $_.GroupName -Recursive |
#Remove unwanted users and keep only user objects (remove groups, computers etc.)
Where-Object { ($ExcludedUsers -notcontains $_.SamAccountName) -and ($_.objectclass -eq 'user') } |
ForEach-Object {
#Grant each group member permission
Add-MailboxPermission -Identity $mailbox -User $_.SamAccountName -AccessRights FullAccess -InheritanceType All
}
}
我们必须迁移到 Microsoft Azure,由于 Azure 无法处理 Exchange 中的 AD 组,我必须获取特定组的成员,然后将他们添加到交换中。所以我想我可以用 powershell 来实现这个。
原理:
我有邮箱名称和组,必须像这样在 csv 中提取:
邮箱 1 GroupForMailbox1
邮箱 2 GroupForMailbox2
邮箱 2 GroupForMailbox2
我知道如何从组中提取所有用户:
Get-ADGroupMember -identity "GroupForMailbox1" -Recursive
但问题是,这个群组中有一个群组,我不想让用户离开它。让我称之为 "ExcludedGroup"。我怎样才能得到除组 "ExcludedGroup" 之外的所有 AD 组成员?
那我得把那些AD会员发到具体的邮箱:
$Users= "Users that I've got out of the upper command"
foreach ($Users){
Add-MailboxPermission -Identity "Mailbox1" -User $Users Accessright Fullaccess -InheritanceType all
}
但由于缺乏知识,我无法将所有内容都放在一个脚本中。
虽然 azure 确实存在问题,但我在互联网上找不到相关信息。
我认为有人可以帮助我。
是这样的吗?
#Sample data
$csv = @"
Mailbox,GroupName
Mailbox1,GroupForMailbox1
Mailbox2,GroupForMailbox2
Mailbox2,GroupForMailbox2
"@ | ConvertFrom-Csv
#Uncomment to import file
#$csv = Import-CSV -Path MyInputFile.csv
$ExcludedUsers = Get-ADGroupMember -Identity "ExcludedGroup" -Recursive | Select-Object -ExpandProperty SamAccountName
$csv | ForEach-Object {
$mailbox = $_.Mailbox
#Get members for group
Get-ADGroupMember -Identity $_.GroupName -Recursive |
#Remove unwanted users and keep only user objects (remove groups, computers etc.)
Where-Object { ($ExcludedUsers -notcontains $_.SamAccountName) -and ($_.objectclass -eq 'user') } |
ForEach-Object {
#Grant each group member permission
Add-MailboxPermission -Identity $mailbox -User $_.SamAccountName -AccessRights FullAccess -InheritanceType All
}
}