2017-02-22 3 views
0

Wir müssen nach Microsoft Azure migrieren und da Azure keine AD-Gruppen in Exchange verarbeiten kann, muss ich die Mitglieder einer speziellen Gruppe holen und sie dann zum Austausch hinzufügen. Also dachte ich, ich könnte das mit Powershell erreichen.AD-Gruppe in Exchange durch Benutzer in dieser AD-Gruppe ersetzen

Das Princip:

ich den Mailbox-Namen und die Gruppe haben, die in einer csv wie folgt extrahiert werden muss:

Mailbox1 GroupForMailbox1

Mailbox2 GroupForMailbox2

Mailbox2 GroupForMailbox2

Ich weiß, wie Sie alle Benutzer aus einer Gruppe extrahieren:

Get-ADGroupMember -identity "GroupForMailbox1" -Recursive 

Aber das Problem ist, dass es eine Gruppe in dieser Gruppe gibt, die ich nicht die Benutzer daraus machen möchte. Lass mich das "ExcludedGroup" nennen. Wie kann ich alle Mitglieder der AD-Gruppe außer denen der Gruppe "ExcludedGroup" bekommen?

Dann muss ich diese AD Mitglieder auf die spezielle Briefkasten:

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

foreach ($Users){ 

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

Aber ich kann nicht wegen des Mangels an Wissen in einem Script alles dafür passen.

Und ich kann etwas im Internet finden, obwohl es ein echtes Problem mit Azur ist.

Ich dachte jemand da draußen kann mir helfen.

Antwort

1

So ähnlich?

#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

Funktioniert perfekt! Danke für das Teilen dieses Skripts :) –

Verwandte Themen