답변:
이것은 DOS / 배치 명령으로 달성 할 수 있습니다
순 사용자 이름
도메인에 있다면 스위치를 추가해야합니다 /Domain
. 귀하의 경우에는 사용자 이름을 입력하십시오.
여기에는 사용자 암호 만료 날짜를 포함하여 해당 계정의 가장 중요한 세부 정보가 나열됩니다.
과거에했던 것과 같은 문제를 겪고 있다면 사용자는 암호가 만료 될 때, 특히 일반적인 PC를 사용하지 않을 때 더 나은 경고를 원합니다. 다음은 경고 메시지를 전자 메일로 보내기 위해 72 시간 (3 일)마다 실행하는 스크립트입니다.
# © 2011 Chris Stone, Beerware Licensed
# Derived from http://www.jbmurphy.com/2011/09/22/powershell © 2011 Jeffrey B. Murphy
import-module ActiveDirectory
$warningPeriod = 9
$emailAdmin = "admin@example.com"
$emailFrom = "PasswordBot." + $env:COMPUTERNAME + "@example.com"
$smtp = new-object Net.Mail.SmtpClient("mail.example.com")
$maxdays=(Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.TotalDays
$summarybody="Name `t ExpireDate `t DaysToExpire `n"
(Get-ADUser -filter {(Enabled -eq "True") -and (PasswordNeverExpires -eq "False")} -properties *) | Sort-Object pwdLastSet | foreach-object {
$lastset=Get-Date([System.DateTime]::FromFileTimeUtc($_.pwdLastSet))
$expires=$lastset.AddDays($maxdays).ToShortDateString()
$daystoexpire=[math]::round((New-TimeSpan -Start $(Get-Date) -End $expires).TotalDays)
$samname=$_.samaccountname
$firstname=$_.GivenName
if (($daystoexpire -le $warningPeriod) -and ($daystoexpire -gt 0)) {
$ThereAreExpiring=$true
$subject = "$firstname, your password expires in $daystoexpire day(s)"
$body = "$firstname,`n`nYour password expires in $daystoexpire day(s).`nPlease press Ctrl + Alt + Del -> Change password`n`nSincerely,`n`nPassword Robot"
$smtp.Send($emailFrom, $_.EmailAddress, $subject, $body)
$summarybody += "$samname `t $expires `t $daystoexpire `n"
}
}
if ($ThereAreExpiring) {
$subject = "Expiring passwords"
$smtp.Send($emailFrom, $emailAdmin, $subject, $summarybody)
}
해당 네 가지 구성 라인을 환경에 맞게 설정하십시오. 필요에 따라 다른 부품을 수정하십시오.
스크립트에 서명하지 않은 경우 PS가 불만을 표시 할 수 있습니다. (코드 서명 인증서가 있음)을 사용하여 서명했습니다.
Set-AuthenticodeSignature PasswordBot.ps1 @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
그런 다음 간단한 예약 된 작업을 만들고 72 시간마다 트리거하며 작업은 C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
argument 로 실행 됩니다 C:\Path\To\PasswordBot.ps1
.
참고 :이 스크립트가 실행되는 컴퓨터는 도메인의 구성원이어야하며 "Windows PowerShell 용 Active Director 모듈"이 설치되어 있어야합니다. 당신은 실행할 수 있습니다 start /wait ocsetup ActiveDirectory-PowerShell
설치하는 모든 서버에, 또는 (내가 지금 기억할 수없는 필요할 수 있습니다 RSAT) Windows 7의 기능 목록에서 그것을 찾을 수 있습니다.