将该AD组中的用户替换为该AD组中的用户

问题描述:

我们必须迁移到Microsoft Azure,并且由于Azure无法处理Exchange中的AD组,因此我必须获取spezifc组的成员,然后将其添加到交换中。所以我认为我可以通过PowerShell实现这一点。将该AD组中的用户替换为该AD组中的用户

的普林西普:

我的邮箱名,并且在这样的CSV要提取的组:

Mailbox1 GroupForMailbox1

Mailbox2 GroupForMailbox2

Mailbox2 GroupForMailbox2

我知道如何从一个组中提取所有用户:

Get-ADGroupMember -identity "GroupForMailbox1" -Recursive 

但问题是,在这个组中有一个组,我不想让用户离开它。让我称之为“ExcludedGroup”。我如何获得除群组“ExcludedGroup”以外的所有广告组成员?

然后,我必须把那些广告的成员到特定的邮箱:

$Users= "Users that I've got out of the upper command" 

foreach ($Users){ 

Add-MailboxPermission -Identity "Mailbox1" -User $Users Accessright Fullaccess -InheritanceType all 
} 

,但我不适合这一切都在一个脚本,因为知识的缺乏。

而我无法找到互联网上的东西,虽然这是一个真正的问题与天蓝。

我以为有人可以帮助我。

是这样的吗?

#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 
    } 
} 
+0

完美的作品!感谢分享这个脚本:) –