Aby wiedzieć co się dzieje w grupach dystrybucyjnych na przestrzeni czasu, możemy utworzyć skrypt, który będzie sprawdzał członkowstwo w grupach i zapisywał wynik do pliku.
Na początku określamy czy chcemy sprawdzić wszystkie dostępne grupy czy może chcemy jest wskazać np.: podając je w pliku.
aby pobrać grupy z pliku użyjemy:
$DLs = get-content d:\scripts\DLgroups.txt
natomiast jeżeli chcemy mieć wszystkie dostępne grupy:
$DLs = get-distributiongroup -resultsize unlimited | select name
foreach ($dl in $DLs){
if (!(get-distributiongroup $dl)){
Write-Host "$dl is not valid"
} else {
$dl_tmp = get-distributiongroup $dl
$outfile = "d:\scripts\DL_$($dl_tmp.name)_.txt"
Add-Content $outfile get-Date
Add-Content $outfile "$($dl_tmp.name) $($dl_tmp.SMTPAddress)"
Add-Content $outfile "Members"
Add-Content $outfile "Alias;Displayname;Company;Title;emailaddress"
$members = get-distributiongroupmember $($dl_tmp.alias)
foreach ($member in $members){
$user = $member.alias + ";" + $member.DisplayName + ";" + $member.Company + ";" + $member.Title + ";" + $member.primarysmtpaddress.local + "@" + $member.Primarysmtpaddress.domain
Add-Content $outfile $user
}
}
}
Dzięki temu otrzymamy osobny plik dla każdej z grup wraz z listą jej członków.