none
Как получить в журнале событий запись о скором истечении пароля пользователя? RRS feed

  • Вопрос

  • Здравствуйте! Помогите пожалуйста разобраться как получить в журнале событий запись о скором истечении пароля пользователя в AD?
    13 декабря 2017 г. 11:34

Все ответы

  • Привет,

    Вы хотите в журнале событии видить для каждого пользователя или чтобы сам пользователь получал сообщение?

    Если для пользователя, то можно с помощью ГПО под: Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options -> Interactive logon: Prompt user to change password before expiration


    Мнения, высказанные здесь, являются отражением моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий. Не забывайте помечать сообщения как ответы и полезные, если они Вам помогли.

    14 декабря 2017 г. 11:17
    Модератор
  • Добрый день!

    Немного не по вашему запросу, но имеет место быть.

    Создаем задачу на сервере и  раз в сутки запускаем этот скрипт:

    Import-Module ActiveDirectory
    
    $EmailFrom = "it@domen.com"
    $Subject = "Истекает срок действия пароля"
    $SmtpServer = "mail.domen.com"
    
    #Формируем список пользователей
    $users = (Get-ADUser -Filter {Enabled -eq $TRUE} -Properties CanonicalName, PasswordLastSet, PasswordNeverExpires, Name, LastLogonDate, mail) | Where {`
    ($_.CanonicalName -like "*domen.com/domen/*/Users*")`
    -and ($_.PasswordNeverExpires -eq $FALSE) `
    -and ($_.Enabled -eq $TRUE) `
    -and ($_.PasswordLastSet -ne $NULL)}
    
    foreach ($user in $users) {
    	$res = (($user.PasswordLastSet).AddMonths(6) - (Get-Date)).Days
    		
    	if(($res -le 7) -and  ($res -ge 0)){
    		[string]$res_ = $res
    		if ($res_.EndsWith(5) -or $res_.EndsWith(6) -or $res_.EndsWith(7) -or $res_.EndsWith(8) -or $res_.EndsWith(9) -or $res_.EndsWith(0)) {
    			$printDay = "дней"
    		} elseif ($res_.EndsWith(2) -or $res_.EndsWith(3) -or $res_.EndsWith(4)) {
    			$printDay = "дня"
    		} elseif ($res_.EndsWith(1)) {
    			$printDay = "день"
    		}
     
    		$bodyMes = '<b>' + $user.Name + '</b>, пароль от вашей учетной записи истекает через <b>' + $res + '</b> ' + $printDay + '.<br>
    		В течение этого срока необходимо сменить пароль во избежание последующей блокировки аккаунта.<br>
    		Для этого нажмите Ctrl+Alt+Del, выберите "Сменить пароль..." и затем перезагрузите компьютер.<br>
    		Не забудьте ввести новый пароль в настройках почты в мобильном телефоне.'
    		$EmailTo = $user.mail
    		$mes = New-Object System.Net.Mail.MailMessage
    		$mes.From = $EmailFrom
    		$mes.To.Add($EmailTo) 
    		$mes.Subject = $subject 
    		$mes.IsBodyHTML = $TRUE 
    		$mes.Body = $bodyMes
    		$smtp = New-Object net.mail.smtpclient($SmtpServer)
    		$smtp.Send($mes)
    	}
    }

    • Предложено в качестве ответа Dima RazbornovMVP 15 декабря 2017 г. 5:39
    14 декабря 2017 г. 11:37
  • Нужно чтоб Zabbix собирал ивенты и хранил историю
    20 декабря 2017 г. 16:06