Спрашивающий
Автоматизация регламента для отключенных аккаунтов.

Вопрос
-
Доброго времени суток Уважаемые коллеги.
Есть у нас некий регламент для учетных записей сотрудников при увольнении, со следующими условиями:
Учетная запись пользователя остается заблокированной в течение 3 месяцев после передачи дел сотрудником, при этом сохраняется возможность восстановления работоспособности учетной записи, а также использование почтового ящика, закрепленного за учетной записью. Через 3 месяца после установки блокировки, учетная запись будет помечена на «удаление», почтовые адреса, закрепленные за учетной записью и пространство, занимаемое почтовым ящиком, высвобождаются.
Вопрос:
Возможно ли автоматизировать данный регламент через PowerShell, то есть очистку почтового ящика, его отключение и удаление, а затем и самой учетной записи ? Но перед тем как проделать все эти действия, хотелось бы еще за день два увидеть соответствующие уведомления на почту+ после отключения учеток - последние перемещались бы в специальный контейнер для отключенных аккаунтов, а так же почистить членство в группах ?
Тут еще загвоздка- по какому параметру отслеживать и отсчитывать время (3 месяца) от того как будет отключена учетка пользователя ? Почта на MS Exchang 2010.
Заранее благодарен!
Люди тратят здоровье, что бы заработать $, а затем тратят $, что бы вернуть здоровье!
- Изменено rеstless 16 января 2017 г. 12:02
16 января 2017 г. 11:38
Все ответы
-
>Возможно ли автоматизировать данный регламент через PowerShell
Да
>по какому параметру отслеживать и отсчитывать время (3 месяца) от того как будет отключена учетка пользователя
Наилучшим вариантом будет брать время из атрибута lastLogonTimestamp
https://exchange12rocks.org/ | http://about.me/exchange12rocks
26 января 2017 г. 22:52 -
Могу предложить как основу свой скрипт: отключенные УЗ из контейнеров, содержащих имя Users, скриптом сразу перемещаются в отдельный контейнер Disabledusers, отправляется оповещение. Через месяц УЗ из контейнера удаляются, опять отправляется оповещение. Время определяется атрибутом whenchanged.
date = ((get-date).addmonths(-1))
$Removed = "removed.txt"
$Moved = "moved.txt"
Get-ADUser -Filter {(enabled -ne $true)}|?{ ($_.distinguishedname -like '*ou=Users*')}| ForEach-Object {write-output $_.name;move-adobject –Identity $_ -targetpath "ou=DisabledUsers,dc=company,dc=com"}|out-file $moved
Get-ADUser -SearchBase "ou=DisabledUsers,dc=company,dc=com"-Filter {(enabled -ne $true)}|?{ ($_.whenchanged -ge $date)}|ForEach-Object {write-output $_.name;Remove-ADObject –Identity $_ -Confirm:$false -Recursive}|out-file $removed
$RemovedBody = "<pre>" + (Get-Content -Path $removed | Out-String)
$text1 = Get-Content -Path $moved
if ($text1) {
$MovedBody = "<pre>" + (Get-Content -Path $moved | Out-String)
Send-MailMessage -SmtpServer "exchange.company.com" -From "Active Directory <ad@company.com>" -To "adadmins@company.com" -Subject "Отключенные пользователи перемещены в DisabledUsers" -Body $MovedBody -BodyAsHtml:$true -Encoding "UTF8"
}
$text2 = Get-Content -Path $removed
if ($text2) {
$RemovedBody = "<pre>" + (Get-Content -Path $removed | Out-String)
Send-MailMessage -SmtpServer "exchange.company.com" -From "Active Directory <ad@company.com>" -To "adadmins@company.com" -Subject "Удаление отключенных пользователей" -Body $RemovedBody -BodyAsHtml:$true -Encoding "UTF8"
}- Предложено в качестве ответа Егоров Виталий 27 января 2017 г. 7:33
27 января 2017 г. 7:31