Jump to content

Dynamische Verteilergruppe mit Security group synchronisieren


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Wir arbeiten auf unserem internen Exchange-Server in der Administration mit dynamischen Verteilergruppen (Group type "Dynamic Distribution Group", z.B. dyn_verteiler1@firma.com).

Unsere User benötigen im Exchange aber "normale" Verteilergruppen (Group type "Security Group"), daher müssen wir einen Weg finden, die Members aus der dynamischen Verteilergruppe verteiler1@firma.com mit einem statischen Verteiler verteiler1@firma.com zu synchronisieren. Diese Synchronisation soll alle zB 30min stattfinden und soll neue hinzufügen und User die nicht mehr im dyn. Verteiler sind natürlich entfernen.

Habt ihr da bitte Ansätze, ob und wie so etwas funktionieren kann? Wie könnte so ein PowerShell aufgebaut sein?

bearbeitet von solisto99
Link zu diesem Kommentar

Hi,

 

die erste Frage wäre, warum benötigen die User "normale Verteilergruppen"?

 

Ansonsten wäre ein Ansatz hier (View members of a dynamic distribution group | Microsoft Docs) zu finden und mit ein bisschen Logik zu verknüpfen.

  1. Mit Get-ADGroupMember / Get-DistributionGroupMember (Get-ADGroupMember (ActiveDirectory) | Microsoft Docs / Get-DistributionGroupMember (ExchangePowerShell) | Microsoft Docs) die User aus der statischen Gruppe holen
  2. Vergleichen, wer nicht mehr im Recipientfilter ist, und aus der Gruppe entfernen (Remove-ADGroupMember (ActiveDirectory) | Microsoft DocsRemove-DistributionGroupMember (ExchangePowerShell) | Microsoft Docs)
  3. Die User, auf die der Recipientfilter zutrifft, zur Gruppe hinzufügen (Add-ADGroupMember (ActiveDirectory) | Microsoft Docs / Add-DistributionGroupMember (ExchangePowerShell) | Microsoft Docs)

Es gibt bestimmt auch noch andere / weitere kreative Ideen. ;-)

 

Gruß

Jan

 

bearbeitet von testperson
Link zu diesem Kommentar

Moin,

 

wie die Vorredner schon angedeutet haben: Einfach eine normale Mail-Enabled Security Group nach einer gewissen Vorschrift mit Mitgliedern bestücken. Alles, was ein Recipient Filter einer DDG abbilden kann, kannst Du auch mit PowerShell abbilden. Aber zwei Exchange-Empfänger für das gleiche haben ergibt in der Regel nicht so viel Sinn.

Link zu diesem Kommentar
Am 24.5.2022 um 15:30 schrieb cj_berlin:

Moin,

 

wie die Vorredner schon angedeutet haben: Einfach eine normale Mail-Enabled Security Group nach einer gewissen Vorschrift mit Mitgliedern bestücken. Alles, was ein Recipient Filter einer DDG abbilden kann, kannst Du auch mit PowerShell abbilden. Aber zwei Exchange-Empfänger für das gleiche haben ergibt in der Regel nicht so viel Sinn.

Servus nach Berlin! Hintergrund meiner Anfrage ist, dass wir die Gruppen dynamisch aufbauen (möchten), diese dynamischen Gruppen jedoch leider *nicht* für die Vergabe von Mailboxberechtigungen für z.B. Shared Mailboxes herangezogen werden dürfen. Daher war die erste Idee, die dynamischen Gruppen in statische zu synchronisieren. 

Dein Ansatz, statische Gruppen via PS-Script direkt zu erstellen ist wahrscheinlich einfacher, aber auch hier gilt -> wenn man weiß wie :-) :traene:

Ein Membership-Filter einer dyn. Gruppe sieht zB so aus

  • "Only the follwoing recipient types:" -> "Users with Exchange mailboxes"
  • Weiters
    • "Recipient container" -> eine OU im AD
    • "Department" -> 'Marketing' or 'Sales'

Offen ist dann noch, was passiert wenn ein User dem Filter nicht mehr entspricht - wie fliegt der per Script dann wieder aus dem Verteiler?

Am 24.5.2022 um 13:12 schrieb testperson:

Hi, die erste Frage wäre, warum benötigen die User "normale Verteilergruppen"?...

Dynamischen Gruppen können leider nicht für die Vergabe von Mailboxberechtigungen für z.B. Shared Mailboxes herangezogen werden.

Link zu diesem Kommentar

Hi,

 

vor 59 Minuten schrieb solisto99:

Dynamischen Gruppen können leider nicht für die Vergabe von Mailboxberechtigungen für z.B. Shared Mailboxes herangezogen werden.

dann würde ich das trennen und nicht an "gespiegelte Gruppen" koppeln. Früher oder später wird der Fall kommen, da sollen dann mehr/weniger Leute Zugriff bekommen und es müssen wilde Ausnahmen gescripted werden.

 

Gruß

Jan

Link zu diesem Kommentar

Hallo, danke für euren Input - ich habs gelöst und es ist sogar recht performant. Gerne teile ich den Lösungsansatz mit euch:

 

1) Da alle Dyn. Distr. Groups (DDG) in nur einer bestimmten OU zu Security Groups (SG) führen sollen, werden diese Gruppen in ein CSV ausgelesen:

Get-DynamicDistributionGroup -OrganizationalUnit <OU> -ResultSize <Unlimited oder Anzahl> | Select-Object DisplayName,Alias | Sort-Object DisplayName | Export-CSV $env:TEMP\DDG-to-SG.csv -NoTypeInformation -Encoding UTF8

 

2) Danach wird diese CSV-Liste an DDGs abgearbeitet, es werden dabei auch neue SGs - in diesem Fall mit einem Prefix - erzeugt und die bestehenden aktualisiert, damit bleiben die Berechtigungen der SG erhalten. Bei der Neuanlage einer SG muss man natürlich seine eigenen Parameter verwenden.

Import-Csv $env:TEMP\DDG-to-SG.csv | ForEach-Object {
$SecGroupDisplayName = -join("PREFIX-SG_", $($_.DisplayName))
$SecGroupAlias = -join("PREFIX-SG_", $($_.Alias))

if (Get-DistributionGroup -Identity $SecGroupAlias) {
Write-Host -ForegroundColor Green "+++ Verteilerliste $SecGroupAlias ist bereits vorhanden, Synchronisation startet... +++"
}
else {
Write-Host -ForegroundColor Red "+++ Verteilerliste $SecGroupAlias wird neu angelegt..."
New-DistributionGroup -Name $SecGroupDisplayName -Alias $SecGroupAlias -Type 'Security' -OrganizationalUnit <OU> -ManagedBy <Username fürs Mgmnt> 
$PrimSmtpAdr = -join($SecGroupAlias, "<Domain der primären E-Mail-Adr>")
Set-DistributionGroup $SecGroupAlias -HiddenFromAddressListsEnabled $true -EmailAddressPolicyEnabled $false -PrimarySmtpAddress $PrimSmtpAdr -BypassSecurityGroupManagerCheck
Write-Host -ForegroundColor Red "+++ Sicherheitsgruppe $SecGroupAlias neu angelegt, Synchronisation startet..."
}

$FTE = Get-DynamicDistributionGroup $($_.Alias)
$DynMembers = (Get-Recipient -RecipientPreviewFilter $FTE.RecipientFilter -OrganizationalUnit $FTE.RecipientContainer).Alias | where {$_ -ne ""}
Update-DistributionGroupMember -Identity $SecGroupAlias -Members $DynMembers -Confirm:$false -BypassSecurityGroupManagerCheck
Write-Host -ForegroundColor Yellow "Der dynamische Verteiler '$($_.DisplayName)' wurde in die Sicherheitsgruppe $SecGroupDisplayName synchronisiert."
}

 

Mit dieser Lösung genießt man den administrativen Komfort eine DDG und den Nutzen eine SG, das Skript muss dann natürlich regelmäßig anwenden.

Alles natürlich ohne Gewähr ;-) Freu mich über euer Feedback!

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...