2017-02-22 9 views
0

Microsoft Azureに移行する必要があります。また、ExchangeでADグループを処理できないため、spezifcグループのメンバーを取得して交換する必要があります。だから、私はこれをpowershellで手に入れることができると思った。ExchangeのADグループをそのADグループのユーザーに置き換えます。

Principで:

私はメールボックス名とグループを持っている。このようなcsvファイルに抽出する必要があります。

Mailbox1 GroupForMailbox1

Mailbox2 GroupForMailbox2

Mailbox2 GroupForMailbox2

グループからすべてのユーザーを抽出する方法を知っています:

Get-ADGroupMember -identity "GroupForMailbox1" -Recursive 

しかし、問題は、このグループにグループがあり、私はそのグループからユーザーを取りたくないということです。その「除外グループ」と呼ぶことにしましょう。グループ「除外グループ」以外のすべてのADグループメンバーを取得するにはどうすればよいですか?

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

foreach ($Users){ 

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

しかし、私はので、知識の不足の1 Scriptでこののすべてをフィットカント:

は、それから私は、特定のメールボックスにそれらのADのメンバーを配置する必要があります。

そして、私はインターネット上で何かを見つけることはできませんが、それは紺碧の本当の問題です。

私はそこに誰かが私を助けることができると思った。

答えて

1

これは何か?

#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

完璧!このスクリプトを共有してくれてありがとう:) –

関連する問題