Exchange Online / Office 365 : Erstellen einer dynamischen Verteilerliste

Um uns die Arbeit etwas zu erleichtern haben wir unseren internen E-Mail Verteiler auf eine DynamicDistributionGroup in Exchange Online umgestellt. Das erspart uns die Arbeit neue Mitarbeiter immer manuell in den Verteiler aufzunehmen, außerdem reduziert es die Fehler (oder das vergessen die neuen User hinzuzufügen). Da wir in unserer Umgebung auch einige Funktionspostfächer haben mussten diese ausgeschlossen werden.

Erstmal habe ich eine Verteiler Gruppe erstellt in der ich die ganzen Funktionspostfächer aufnehme.
New-DistributionGroup -Name 'NODYNDIS'
Set-DistributionGroup -Identity 'NODYNDIS' -HiddenFromAddressListsEnabled $True
Mit einem ADD Befehl kann man neue Funktionspostfächer hinzufügen.
Add-DistributionGroupMember -Identity 'NODYNDIS' -Member 'user-email@domain'
Dann brauchen wir den DN der Gruppe für den Filter in der dynamischen Gruppe
Get-Group -Identity 'NODYNDIS' | Select-Object -ExpandProperty DistinguishedName

CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx
Dann kann man die dynamische Gruppe erstellen.
New-DynamicDistributionGroup -Name 'TESTVERTEILER' -RecipientFilter {((RecipientTypeDetails -eq 'UserMailbox') -and -not (MemberofGroup -eq 'CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx') -and -not (UserAccountControl -eq 'AccountDisabled, NormalAccount'))}
Kurz zur Erklärung der Filter :
(RecipientTypeDetails -eq 'UserMailbox')  : Es muss sich um ein Benutzer Postfach handeln
-and -not (MemberofGroup -eq 'CN=NODYNDIS,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xxx') : und nicht Mitglied dieser Gruppe
-and -not (UserAccountControl -eq 'AccountDisabled, NormalAccount') : User darf nicht deaktivert sein
Anzeigen aller Empfänger in dem dynamischen Verteiler
$mygroup = Get-DynamicDistributionGroup "TESTVERTEILER"
Get-Recipient -RecipientPreviewFilter $myGroup.RecipientFilter | Select Name,PrimarySmtpAddress

Infos :
Filterbare Eigenschaften für RecipientFilter
New-DynamicDistributionGroup
New-DistributionGroup
Set-DistributionGroup


Exchange Online / Office 365 : Erstellen neuer Verteiler und Zuordnen der Mitglieder

Als erstes muss die Verbindung zu Exchange Online stehen. Für meine Funktionen hatte ich eine CSV als Grundlage.
Die Struktur der CSV sah wie folgt aus :
Verteiler;Mitglieder
Verteiler-NAME;"USER1;USER2;USER3;USER4"
Aus Grunden der Sicherheit ist hier WhatIf auf True gesetzt ! d.h. es werden keine Verteiler oder Mitglieder hinzugefügt.
Wenn ihr sicher seit das alles richtig ist könnt ihr einfach bei WhatIf $true auf $false ändern.
#region Vars
    $DLCSV = Import-Csv -Path "$env:HOMEDRIVE\DEIN_PFAD_ZUR_CSV\Verteiler.csv" -Encoding UTF8 -Delimiter ';'
    # new object
    $CsvOutput = @()
#endregion Vars

#region CreateGroup_ReadCSV
foreach ($entry in $DLCSV) {
    $DL_NAME    = $entry.Verteiler
    $DL_MEMBERS = $entry.Mitglieder
    $DL_MEMBER = ($DL_MEMBERS -split ';')  
    
    #region CreateNewDL
    $NewDisGroupParameter = $null
    $NewDisGroupParameter = @{
        Name   = $DL_NAME
        WhatIf = $true
    }
    $crDis = (New-DistributionGroup @NewDisGroupParameter)
    #endregion CreateNewDL

    Start-Sleep -Seconds 1.5

    #region AddMembersToDL
    foreach ($m in $DL_MEMBER) {
        $user = $m.Trim()
        Add-DistributionGroupMember -Identity $DL_NAME -Member $user -whatif:$true
    }
    #endregion AddMembersToDL
}
#endregion CreateGroup_ReadCSV
“Das einzig sichere System müsste ausgeschaltet, in einem versiegelten und von Stahlbeton ummantelten Raum und von bewaffneten Schutztruppen umstellt sein.”
Gene Spafford (Sicherheitsexperte)