Была решена задача по нахождению изменений в составе групп Active Directory. Результат -каждому новому члену этой группы высылается письмо.
Таким образом мы можем автоматизировать рассылку сообщений, когда пользователь приходит в отдел или получает куда-то права доступа ,по средствам включения в группы.
Работает как и обычно через командлеты компании Quest.
Алгоритм работы простой до безобразия. Получаем список членов группы, сравниваем с файлом, где хранится старая информация о составе группе. Если появился новый сотрудник, то отправляем ему письмо.
cls #Какую группу мониторить $GroupName = "G_monitoring" #Куда сохранять файл с прошлыми сотрудниками. $PathToSaveFile="d:\temp\users.txt" #Функция отправки почты function Send-mail ($subj = "hello new staff" ,$body = "bla bla bla", $recipient) { $SMTPClient = new-object System.Net.Mail.SMTPClient $Msg = new-object System.Net.Mail.MailMessage $Msg.To.Add($recipient) $Msg.from="welcome@domain.ru" $Msg.Subject = $subj $Msg.Body= $body $SMTPClient.Host="192.168.0.10" $SMTPClient.Send($Msg) } #подключаю оснастку Quest.ActiveRoles.ADManagement для вменяемой работы с AD Add-PSSnapin Quest.ActiveRoles.ADManagement #Получаем список пользователей в группе $UsersInGroup=(Get-QADGroup $GroupName).Members #Подгружаем старые данные из файла #Если файла не существует, то скрипт не отрабатывает, # но текущее состояние группы записывается в файл, для следующего запуска. if ((Test-Path -path $PathToSaveFile) -ne $True) { write-host "No file. It's first run." } else { $OldusersInGroup = Get-Content $PathToSaveFile #Сравниваем их содержимое. foreach ($User in $UsersInGroup) { #запускаем цикл. будем проверять вхождение User в массиве данных, #подгруженным из файла, где у нас старая копия данных о составе #$user $isNew=1 for ($i=0; $i -lt ($OldusersInGroup.Length) ; $i++) { if ($user -eq $OldusersInGroup[$i]) { $isNew=0 break } } if ($isNew -eq 1) { Send-mail -recipient (Get-QADUser $user).email } } } #записывает текущее состояние сотрудников в группе $UsersInGroup | Out-File $PathToSaveFile


Однажды уже писал под такую задачу. Если быть точнее то письмо с подтверждением о предоставлении доступа к ресурсу.
Там был набор групп в файле + список шаблоном на HTML с картинками внутри. При добавлении пользователя в группу мониторинга ему отсылалось красивое письмо с картинкой в котором было описание того какие ему доступны блага.
Если не сложно, то выложите тут или у себя на ресурс, с ссылкой в эти коменты. Будет из чего выбирать
Как выйду на работу (сейчас в отпуске) выложу у себя в блоге.
выложил.
http://blog.wadmin.ru/2011/03/group-member-monitoring/