Manchmal ist es notwendig alle Nutzer einer Anwendung kurz per Mail zu informieren. Wird die Ressource über eine Active Directory Gruppe verwaltet, bietet es sich an eine Mail an alle Gruppenmitglieder zu schicken. Die Lösung als PowerShell-Skript ‚CreateMailFromGroup‘.
Index
E-Mail an Mitglieder einer AD Gruppe senden
Das PowerShell-Skript „CreateMailFromGroup.ps1“ liest rekursiv alle Benutzer der übergebenen AD Gruppe aus.
Bei allen Benutzerkonten wird nun das Attribut „email“ ausgelesen. Auf diese Weise erhält man alle E-Mail-Adressen der Gruppenmitglieder. Letztlich soll eine E-Mail via Outlook an alle Mail-Adressen geschickt werden. Dabei werden alle Adressen als BCC (Blind Carbon Copy) in eine neue Outlook Mail eingetragen. Wird kein Parameter übergeben, dann fragt das Skript die Gruppe ab.
Voraussetzungen für CreateMailFromGroup
Damit das PS-Skript eine Mail an alle Mitglieder einer AD Gruppe senden kann, müssen zwei Voraussetzungen erfüllt sein. Installiert sein müssen:
- MS Outlook
- ActiveDirectory-Modul für PowerShell
PS-Skript: E-Mail aus AD Gruppe
Das Skript besteht aus mehreren Abschnitten, auf die ich kurz Schritt für Schritt eingehen möchte. Das gesamte PS-Skript vollständige Lösung befindet sich am Ende des Artikels.
Gruppe abfragen
Im ersten Schritt wird die Gruppe abgefragt und das ActiveDirectory-Modul geladen.
1 2 3 4 5 6 |
param( [Parameter(Mandatory=$true)] [String]$Group ) Import-Module ActiveDirectory |
E-Mail-Adressen von AD Gruppenmitgliedern ermitteln
Als nächstes werden die Email-Adressen mit Get-ADGroupMember ermittelt.
1 2 3 4 |
$EmailAddresses = Get-ADGroupMember $Group -Recursive | Get-ADUser -Properties mail | Select mail ForEach ($EmailAddress In $EmailAddresses){ $OLAddresses = $EmailAddress.mail + ";" + $OLAddresses } |
Outlook E-Mail an alle Gruppenmitglieder senden
Zum Schluss wird mit New-Object Outlook als Mail Client zugeordnet. Outlook erzeugt eine neue E-Mail und setzt alle Adressaten in BCC.
1 2 3 4 5 |
$OL = New-Object -comObject Outlook.Application $Mail = $OL.CreateItem(0) $Mail.BCC = $OLAddresses $Mail.Display() |
Vollständiger PowerShell-Skript: CreateMailFromGroup
Hier noch einmal das komplette Skript um eine Mail an die Mitglieder einer AD Gruppe zu senden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
#################################################################################################### # CreateOLMailFromGroup.ps1 ermittelt die Emailadresse von allen Mitgliedern einer Gruppe und # erstellt ein Outlookmail; wobei die ermittelten Emailadressen ins BCC-Feld eingetragen werden. # # Vorraussetzung: Outlook und das Feature "Active Directory-Modul für Powershell" muss installiert # sein #################################################################################################### # Gruppe abfragen param( [Parameter(Mandatory=$true)] [String]$Group ) # Active Directory Modul laden Import-Module ActiveDirectory # Email-Adressen ermitteln $EmailAddresses = Get-ADGroupMember $Group -Recursive | Get-ADUser -Properties mail | Select mail ForEach ($EmailAddress In $EmailAddresses){ $OLAddresses = $EmailAddress.mail + ";" + $OLAddresses } # Outlookmail erstellen $OL = New-Object -comObject Outlook.Application $Mail = $OL.CreateItem(0) #$Mail.TO = $OLAddresses $Mail.BCC = $OLAddresses $Mail.Display() |
Anwendungsfall: Anwender über Wartung informieren
Möchte die IT z.B. eine veröffentliche Anwendung oder eine Freigabe in Wartung nehmen, dann können über das Skript die betroffenen Anwender gezielt benachrichtigt werden. So lässt sich einfach eine Mail an Mitglieder einer AD Gruppe senden. Mit der Verwendung des BCC-Feldes sind andere Adressaten für den Anwender nicht sichtbar.
Hinweis:
Zu beachten sind die Sicherheitsrichtlinien des Mailsystems. Eventuell könnte eine Mail mit vielen Adressaten als SPAM deklariert werden.
DynamicGroup ist ein Produkt der FirstAttribute AG.
Die Software wurde in Zusammenarbeit mit AD Admins entwickelt.
Sie planen Veränderungen an Ihrem AD?
Nehmen Sie Kontakt zu uns auf, wir hören Ihnen gern zu.
Leave a Reply
<p>Danke für Ihre Anregungen, Fragen und Hinweise.<br/>Infos zum <a href="https://www.active-directory-faq.dekontakt/">Datenschutz</a></p>