время действия пароля истекло etoken промсвязьбанк

Предупреждение пользователей об истечении пароля и действия учётной записи / Хабр

Всем привет! Столкнулись как-то с ситуацией, когда 1 января у многих пользователей истёк срок действия учётной записи и они были заблокированы. Соответственно не смогли работать, шквал телефонных звонков, начиная с утра 1-го числа. Было принято решение заранее предупреждать пользователей об истечении пароля и действия учётной записи по почте. С копией списка предупреждённых пользователей администратору. Скрипты реализации под катом. Для начала надо установить ActiveRoles Management Shell for Active Directory.

Скрипт истечении пароля

Скрипт предупреждает об истечении пароля обычных пользователей за 7 дней, за 3 дня и в день истечения. Топ-менеджеров предупреждает за 5 дней и до истечения.

Add-PSSnapin Quest.ActiveRoles.ADManagement    function send-eMail($to, $PasswordAge, $Days) { if ($PasswordAge -eq 0) { $subject = "Действие вашего пароля истекает сегодня." } else { $subject = "Действие вашего пароля истекает через $PasswordAge $Days." } write-host $to $PasswordAge $Enc = [Text.Encoding]::UTF8  Send-MailMessage -to $to `  -from "IT" `  -subject "Внимание! $subject" `   -body "<spaбрый день.
 $subject
 Рекомендуем изменить пароль, так как после истечения срока действия пароля Вы не сможете получить доступ к информационным ресурсам компании.
 Инструкция по смене пароля находится на портале в разделе «Инструкции».
" `  -priority High `  -dno onFailure `  -smtpServer MAILSERVER `  -BodyAsHtm `  -Encoding $Enc }  function send-eMail-log($log, $to, $subject) { $Enc = [Text.Encoding]::UTF8 $body = "$log
" Send-MailMessage -to $to `  -from "IT" `  -subject $subject `   -body $body `  -smtpServer MAILSERVER `  -BodyAsHtm `  -Encoding $Enc }  function get-dayCut($PasswordAge) { $Days = "дн" if ($PasswordAge -le 20 -and $PasswordAge -ge 5) { $Days = "дней" } if ($PasswordAge -le 4 -and $PasswordAge -ge 2) { $Days = "дня" } if ($PasswordAge -eq 1 -or $PasswordAge -eq 21) { $Days = "день" } return $Days } # У нас 45 дней: $PasswordAgeMax = (Get-QADObject (Get-QADRootDSE).defaultNamingContextDN).MaximumPasswordAge.days  write-host "Пароль истекает: "$PasswordAgeMax; $log = "" $logBoss = ""  # -- 7, 3 и 0 дней --------------------------------------------------------------------------------------------- Get-QADUser -SizeLimit 0 |  Where-Object {$_.AccountIsDisabled -eq $False} | Where-Object {$_.PasswordNeverExpires -eq $False} | % { $PasswordAge = $PasswordAgeMax - ($_.passwordage.days) - 1 $PasswordAge = [int]$PasswordAge    if ($_.parentContainer -ne "domain/General/User") { if ($PasswordAge -eq 7 -or $PasswordAge -eq 3 -or $PasswordAge -eq 0) { $Days = get-dayCut $PasswordAge $addParam = $_.Title + ", " + $_.Department if (($_.mail).Length -gt 0) { send-eMail $_.mail $PasswordAge $Days $addParam = $addParam + ", " + $_.mail }  if ($PasswordAge -le 1) { $log = $log + "" + $_.DisplayName + ", " + $PasswordAge + " (" + $addParam + ")

" } else { $log = $log + $_.DisplayName + ", " + $PasswordAge + " (" + $addParam + ")
" } } } else { $Days = get-dayCut $PasswordAge; write-host $_.DisplayName": "$PasswordAge; if ($PasswordAge -le 5 -and $PasswordAge -ge 0) { send-eMail $_.mail $PasswordAge $Days } if ($PasswordAge -le 0) { $logBoss = $logBoss + $_.DisplayName + ", пароль уже истек (" + $_.mail + ", " + $_.telephoneNumber + ")
" } elseif ($PasswordAge -le 5 -and $PasswordAge -gt 0) { $logBoss = $logBoss + $_.DisplayName + ", пароль истекает через " + $PasswordAge + " " + $Days + " (" + $_.mail + ", " + $_.telephoneNumber + ")
" } } }  if ($log.Length -gt 0) { send-eMail-log $log "IT" "Журнал истечения пароля" }   if ($logBoss.Length -gt 0) { "admin1", "admin2", "admin3" | % {send-eMail-log $logBoss "$_@domain.com" "Журнал истечения пароля у директоров"} }  

Скрипт истечения действия учётной записи

Скрипт предупреждает пользователей об истечении действия учётной записи за 30, 20, 14, 7, 5 дней.

Add-PSSnapin Quest.ActiveRoles.ADManagement  function send-eMail($to,$lsDayCount) { write-host $to $lsDayCount; $Enc = [Text.Encoding]::UTF8 Send-MailMessage -to $to `  -from "IT" `  -subject "Внимание! Ваша учетная запись истекает через $lsDayCount дней" `  -body "Добрый день.
 Срок действия вашей учетной записи истекает через $lsDayCount дней.
" `  -priority High `  -dno onFailure `  -smtpServer MAILSERVER `  -BodyAsHtm `  -Encoding $Enc }  function send-eMail-log($log, $to, $subject) { $Enc = [Text.Encoding]::UTF8 $body = "" + $log + "
" #-Cc "admin1@domain.com" ` Send-MailMessage -to $to `  -from "it@domain.com" `  -subject $subject `  -body $body `  -smtpServer MAILSERVER `  -BodyAsHtm `  -Encoding $Enc }  function check-null($lsPar, $lbComma) { $lsTmp = $lsPar; if ($lsPar.Length -gt 0) { if ($lbComma) { $lsTmp = $lsPar + ", "; } } else { $lsTmp = ""; } return $lsTmp; }  # -- 5, 7, 14, 20, 30 дней ------------------------------------------------------------------------------------- $targetdate5  = ((get-date).AddDays(5)).ToShortDateString(); $targetdate7  = ((get-date).AddDays(7)).ToShortDateString(); $targetdate14 = ((get-date).AddDays(14)).ToShortDateString(); $targetdate20 = ((get-date).AddDays(20)).ToShortDateString(); $targetdate30 = ((get-date).AddDays(30)).ToShortDateString();  $gLog = ""; $gLog5 = ""; $gLog7 = ""; $gLog14 = ""; $gLog20 = ""; $gLog30 = "";  write-host $targetdate5 $targetdate7 $targetdate14 $targetdate20 $targetdate30;  Get-QADUser -SizeLimit 0 |  Where-Object {$_.AccountExpires -ne $null} | Where-Object {$_.AccountIsDisabled -eq $False} | % { $gObjUser = $_; $gsUserOpt = "";  5,7,14,20,30 | % { $targetdate  = ((get-date).AddDays($_)).ToShortDateString();  if (($gObjUser.AccountExpires).ToShortDateString() -eq $targetdate) { write-host $gObjUser.DisplayName"`t"($gObjUser.AccountExpires).ToShortDateString(); if (($gObjUser.mail).Length -gt 0) { send-eMail $gObjUser.mail $_; } $gsUserOpt = (check-null $gObjUser.Title $TRUE) +   (check-null $gObjUser.Department $TRUE) +   (check-null $gObjUser.mail $TRUE) +   (check-null $gObjUser.telephoneNumber $FALSE); if ($gsUserOpt.Length -gt 0) { if ($gsUserOpt.substring($gsUserOpt.length - 2, 2) -eq ", ") { $gsUserOpt = $gsUserOpt.substring(0, $gsUserOpt.length - 2); } $gsUserOpt = " (" + $gsUserOpt +")"; } $gsUserOpt = $gObjUser.DisplayName + $gsUserOpt +"
"; switch ($_) { 5  {$gLog5  = $gLog5  + $gsUserOpt; break} 7  {$gLog7  = $gLog7  + $gsUserOpt; break} 14 {$gLog14 = $gLog14 + $gsUserOpt; break} 20 {$gLog20 = $gLog20 + $gsUserOpt; break} 30 {$gLog30 = $gLog30 + $gsUserOpt; break} } } } }   if ($gLog5.Length -gt 0)  { $gLog = "5 дней, истекает $targetdate5

" + $gLog5 + "
"}  if ($gLog7.Length -gt 0)  { $gLog = $gLog + "7 дней, истекает $targetdate7

" + $gLog7 + "
"}  if ($gLog14.Length -gt 0) { $gLog = $gLog + "14 дней, истекает $targetdate14

" + $gLog14 + "
"}  if ($gLog20.Length -gt 0) { $gLog = $gLog + "20 дней, истекает $targetdate20

" + $gLog20 + "
"}  if ($gLog30.Length -gt 0) { $gLog = $gLog + "30 дней, истекает $targetdate30

" + $gLog30 + "
"}   if ($gLog.Length -gt 0) { "admin1", "admin2", "admin3" | % {send-eMail-log $gLog "$_@domain.com" "Журнал истечения учетной записи"} }  

Предупреждайте пользователей заранее. Комментарии приветствуются.

Как включить или отключить срок действия пароля для локальных учетных записей в Windows 10

В Windows есть функция, которая заставляет пользователя изменить пароль по истечению определенного строка. По умолчанию, если данная функция включена, пароль нужно менять через каждые 42 дня, вы же можете изменить данный строк и задать количество дней от 0 до 999. В сегодняшней статье рассмотрим как включить или отключить истечение строка пароля для определенных локальных учетных записей в Windows 10.

Чтобы включить или отключить данную функцию другим пользователям ваша учетная запись должна обладать правами администратора.

Включение или отключение срока действия пароля для локальных учетных записей в «Локальные пользователи и группы»

Инструмент «Локальные пользователи и группы», который мы будем использовать,  есть только в Windows 10 Pro, Enterprise и Education.

1.
В строке поиска или в меню выполнить (выполнить вызывается клавишами Win+r) напишите lusrmgr.msc 
и нажмите Enter.

2.
В левой колонке выберите «Пользователи», в правой колонке нажмите правой клавишей мыши на пользователя, которому нужно включить или отключить срок действия пароля  => из открывшегося меню выберите «Свойства».

3.
Поставьте или уберите галочку с поля «Срок действия пароля не ограничен». Как уже говорилось выше, если ее убрать — по умолчанию, пользователя каждые 42 дня будет просить сменить пароль. Нажмите «ОК» и закройте окно.

Включение или отключение срока действия пароля для локальных учетных записей в командной строке

Данный способ работает во всех изданиях Windows 10.

1
.Откройте командную строку от имени администратора: один из способов — нажать на меню «Пуск» правой клавишей мыши и выбрать «Командная строка (администратор) из открывшегося меню.

2.
Чтобы определенному пользователю включить истечение строка пароля — введите в командной строке wmic UserAccount where Name=»имя пользователя
» set PasswordExpires=True 

заменив имя пользователя и нажав Enter. К примеру, если вам нужно включить истечение строка для пользователя Sa — нужно ввести команду wmic UserAccount where Name=»Sa» set PasswordExpires=True и нажать Enter.

Чтобы отключить истечение строка пароля определенному пользователю — нужно ввести wmic UserAccount where Name=»имя пользователя» set PasswordExpires=False 
заменив имя пользователя и нажав Enter. К примеру, если вам нужно отключить истечение строка для пользователя Sa — нужно ввести команду wmic UserAccount where Name=»Sa» set PasswordExpires=False и нажать Enter.

Чтобы отключить истечение строка пароля всем пользователям — введите команду wmic UserAccount set PasswordExpires=False 
и нажмите клавишу Enter.

После надписи «Свойства успешно обновлены» закройте командную строку.

На сегодня всё, если вы знаете другие способы или у вас есть дополнения — пишите комментарии! Удачи Вам ?

Ссылка на основную публикацию