जवाबों:
यह डॉस / बैच कमांड द्वारा प्राप्त किया जा सकता है
शुद्ध उपयोगकर्ता नाम
यदि आप एक डोमेन पर थे तो आपको स्विच जोड़ना होगा /Domain
। आपके मामले में, बस उपयोगकर्ता नाम डालें।
यह उस खाते के सबसे महत्वपूर्ण विवरणों को सूचीबद्ध करेगा, जिसमें उपयोगकर्ता पासवर्ड की समाप्ति तिथि भी शामिल है।
यदि आप उसी समस्या का पीछा कर रहे हैं जो मेरे पास अतीत में थी, तो उपयोगकर्ता बेहतर चेतावनी चाहते हैं कि उनका पासवर्ड कब समाप्त हो रहा है, खासकर जब वे एक विशिष्ट पीसी से दूर होते हैं। निम्नलिखित स्क्रिप्ट है जो मैं हर 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
तर्क के साथ चलना है C:\Path\To\PasswordBot.ps1
।
नोट: यह स्क्रिप्ट जिस कंप्यूटर पर चलाई जाती है वह डोमेन का सदस्य होना चाहिए, और इसमें "Windows PowerShell के लिए सक्रिय निदेशक मॉड्यूल" स्थापित होना चाहिए। आप start /wait ocsetup ActiveDirectory-PowerShell
इसे स्थापित करने के लिए किसी भी सर्वर पर चला सकते हैं , या इसे विंडोज 7 में फीचर सूची में पा सकते हैं (RSAT की आवश्यकता हो सकती है, मुझे अब याद नहीं है)।