Heute stand ich vor folgender Aufgabe: Ein Kunde wollte alle Verteilerlisten und deren Mitglieder in einer Excel-Datei geliefert bekommen. Hierzu habe ich eine kleine Funktion get-dl in der Powershell geschrieben. Das Script liest alle Verteilerlisten aus und schreibt für jedes Mitglied eine separate Zeile in die Ausgabedatei. Die Spalten in der Ausgabedatei enthalten folgende Daten:
- Gruppentyp (weil es ja auch E-Mail aktivierte Sicherheitsgruppen gibt)
- Anzeigename der Verteilergruppe
- E-Mail-Adresse der Verteilergruppe
- Empfängertyp (Kontakt, User Mailbox, Gruppe)
- Anzeigename des Empfängers
- Primäre SMTP-Adresse des Empfängers
Durch Anpassung des Scripts lassen sich auch andere bzw. zusätzliche Attribute exportieren. Am Ende des Scriptdurchlaufs wird noch die Anzahl der gefundenen Verteilerlisten ausgegeben.
Das Script muss mit der Endung ps1 gespeichert werden und anschließend mit “. ./dateiname.ps1″ aufgerufen werden. Danach steht die Funktion get-dl zur Verfügung.
function get-dl { $Final = @() $i = 1 $dls = Get-DistributionGroup foreach ($dl in $dls) { $i++ $AllUsers = @() $AllUsersEmail = @() $AllUsers += Get-DistributionGroupMember -Identity $dl | select recipientType,displayName,PrimarySMTPAddress foreach ($user in $Allusers) { $obj = new-object psobject $obj |Add-Member -MemberType noteproperty -Name "DL Gruppentyp" -value $dl.GroupType $obj |Add-Member -MemberType noteproperty -Name "DL Name" -value $dl.displayName $obj |Add-Member -MemberType noteproperty -Name "DL Adresse" -value $dl.PrimarySMTPAddress $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Typ" -value $user.recipientType $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Name" -value $user.displayName $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Adresse" -value $user.PrimarySMTPAddress $AllUsersEmail += $obj } $Final += $AllUsersEmail } $Final | export-csv c:\verteiler\dl.csv -NoTypeInformation -encoding default Write-Host $i " Verteiler gefunden" }




Hst sich erledigt, vielen Dank.
Habe das Skript falsch aufgerufen.
Tobias
Hi,
vielen Dank für die vielen nützlichen Tipps auf deiner Seite. Mit diesem Script habe ich leider ein Problem. Wenn ich den Code kopiere und als .ps1 abspeichere, kopiere ich mir die Datei in mein Script-Verzeichnis. Wenn ist das Script dann aufrufe, tut sich leider nichts. Ich bekomme aber auch kein Fehlermeldung.
Ich wäre für einen kleinen Tipp sehr dankbar. Vielleicht liegt der Fehler auch zwischen den Ohren??
Vielen Dank im Voraus
Gruss Tobias
PS: Ich habe angefangen eine Checkliste für Exchange zu schreiben (Installation Migration….http://www.it-training-grote.de/download/Checkliste-Exchange2010-Konfig-install.pdf) ich habe dieser schon weiterentwickelt. Bei Interesse stelle ich diese gern zur Verfügung. Für alle natürlich. Verweise hier auf auf das ein- oder andere Script. Hat mit dieser Sache nichts zu tun, aber ch möchte mich zumindest an dem reichlich vorhandenen gedankenaustausch beteiligen…