Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Windows Server

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

इस लेख में हम दिखाएंगे कि PowerShell का उपयोग करके Active Directory उपयोगकर्ता खाते के पासवर्ड की समाप्ति कब होती है, यह कैसे पता करें, पासवर्ड को कभी समाप्त न होने के लिए कैसे सेट करें (PasswordNeverExpires = True), और उपयोगकर्ताओं को अग्रिम रूप से अपना पासवर्ड बदलने के लिए सूचित करें।

यदि डोमेन में किसी उपयोगकर्ता का पासवर्ड समाप्त हो गया है, तो खाता लॉक नहीं होता है, लेकिन इसका उपयोग डोमेन संसाधनों तक पहुंचने के लिए तब तक नहीं किया जा सकता जब तक उपयोगकर्ता समाप्त हो चुके पासवर्ड को नए से नहीं बदल देता। अक्सर, रिमोट उपयोगकर्ता समाप्त हो चुके पासवर्ड की समस्या का सामना करते हैं, क्योंकि वे मानक टूल का उपयोग करके अपने पासवर्ड नहीं बदल सकते।

डोमेन में उपयोगकर्ता पासवर्ड की समाप्ति समय सीमा, इसे कितनी बार बदला जाना चाहिए (अधिकतम पासवर्ड आयु) और जटिलता आवश्यकताएं AD डोमेन पासवर्ड पॉलिसी में सेट की जाती हैं। ये पैरामीटर डिफ़ॉल्ट डोमेन पॉलिसी या फाइन-ग्रेन्ड पासवर्ड पॉलिसी में सेट होते हैं।

आप इस PowerShell कमांड का उपयोग करके डोमेन में वर्तमान पासवर्ड समाप्ति पॉलिसी सेटिंग्स प्राप्त कर सकते हैं:

Get-ADDefaultDomainPasswordPolicy|select MaxPasswordAge

हमारे उदाहरण में, डोमेन में अधिकतम उपयोगकर्ता पासवर्ड आयु 60 दिन है।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

Active Directory में उपयोगकर्ता पासवर्ड समाप्ति तिथि कैसे प्राप्त करें?

आप कमांड प्रॉम्प्ट में Net user कमांड का उपयोग करके पासवर्ड आयु और अंतिम बार बदले जाने की तिथि देख सकते हैं:

net user jsmith /domain

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

आपको इन पंक्तियों में आवश्यक जानकारी मिल सकती है:

  • Password last set — 9/9/2020 9:23:59 AM
  • Password expires — 1/7/2021 9:23:59 AM
  • Password changeable — 9/10/2020 9:23:59 AM

आप किसी भी उपयोगकर्ता के लिए पासवर्ड समाप्ति तिथि प्राप्त कर सकते हैं। ऐसा करने के लिए, आपको AD कंटेनर पर एडमिनिस्ट्रेटर विशेषाधिकार या प्रतिनिधिमंडल विशेषाधिकार की आवश्यकता नहीं है जिसमें उपयोगकर्ता खाते हैं।

AD खातों की सेटिंग्स देखने के लिए, हम Active Directory के लिए एक विशेष PowerShell मॉड्यूल का उपयोग करेंगे जो आपको विभिन्न AD ऑब्जेक्ट विशेषताओं के मान प्राप्त करने की अनुमति देता है (Windows 10 और Windows Server 2012 R2/2016 में AD PowerShell मॉड्यूल इंस्टॉल और इंपोर्ट करने का तरीका देखें)।

Get-ADUser cmdlet का उपयोग करके, आप देख सकते हैं कि उपयोगकर्ता का पासवर्ड अंतिम बार कब बदला गया था और जांच सकते हैं कि PasswordNeverExpires विकल्प सेट है या नहीं:

get-aduser jsmith -properties PasswordLastSet, PasswordNeverExpires, PasswordExpired |ft Name, PasswordLastSet, PasswordNeverExpires,PasswordExpired

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

  • PasswordLastSet अंतिम पासवर्ड परिवर्तन की तिथि और समय है;
  • PasswordNeverExpires True लौटाता है यदि उपयोगकर्ता पासवर्ड कभी समाप्त नहीं होता;
  • PasswordExpired – यदि उपयोगकर्ता पासवर्ड समाप्त हो गया है, तो यह True लौटाता है, यदि पासवर्ड समाप्त नहीं हुआ है, तो यह False लौटाता है।

आप ग्राफिकल MMC स्नैप-इन Active Directory Users & Computers (dsa.msc) में अंतिम पासवर्ड परिवर्तन का समय देख सकते हैं। ऐसा करने के लिए, उपयोगकर्ता गुण खोलें, Attribute Editor टैब पर जाएं और pwdLastSet विशेषता का मान जांचें।

लेकिन जैसा कि आप देख सकते हैं, MMC स्नैप-इन केवल पासवर्ड बदले जाने का समय दिखाता है। यह स्पष्ट नहीं है कि पासवर्ड कब समाप्त होता है।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

अंतिम बार बदले गए समय के बजाय पासवर्ड समाप्ति तिथि प्राप्त करने के लिए, एक विशेष निर्मित AD विशेषता का उपयोग करें: msDS-UserPasswordExpiryTimeComputed। msDS-UserPasswordExpiryTimeComputed मान अंतिम पासवर्ड परिवर्तन की तिथि और डोमेन पासवर्ड पॉलिसी के आधार पर स्वचालित रूप से गणना की जाती है।

UserPasswordExpiryTimeComputed पैरामीटर TimeStamp फॉर्मेट में तिथि लौटाता है, इसलिए मैं इसे मानव-पठनीय मान में बदलने के लिए FromFileTime फ़ंक्शन का उपयोग करता हूं:

Get-ADUser -Identity jsmith -Properties msDS-UserPasswordExpiryTimeComputed | select-object @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed") }}

इस प्रकार, हमें उपयोगकर्ता पासवर्ड समाप्ति तिथि मिल गई।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

यदि msDS-UserPasswordExpiryTimeComputed का मान 0 है, तो इसका मतलब है कि pwdLastSet खाली (null) है या 0 के बराबर है (पासवर्ड कभी नहीं बदला गया)।

AD में विशिष्ट कंटेनर (OU) के सभी उपयोगकर्ताओं के लिए पासवर्ड समाप्ति तिथि प्राप्त करने के लिए, आप निम्न PowerShell स्क्रिप्ट का उपयोग कर सकते हैं:

$Users = Get-ADUser -SearchBase 'OU=Users,OU=NewYork,DC=woshub,DC=com' -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet, CannotChangePassword
$Users | select Name, @{Name="ExpirationDate";Expression= {[datetime]::FromFileTime ($_."msDS-UserPasswordExpiryTimeComputed")}}, PasswordLastSet

यह सक्रिय उपयोगकर्ताओं की सूची, समाप्ति तिथि और अंतिम पासवर्ड परिवर्तन के समय के साथ एक तालिका में परिणाम देता है।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

आप केवल समाप्त हो चुके पासवर्ड वाले उपयोगकर्ताओं की सूची प्रदर्शित कर सकते हैं:

$Users = Get-ADUser -SearchBase 'OU=Users,OU=NewYork,DC=woshub,DC=com' -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed, PasswordLastSet, CannotChangePassword
foreach($user in $Users){
if( [datetime]::FromFileTime($user."msDS-UserPasswordExpiryTimeComputed") -lt (Get-Date)) {
$user.Name
}
}

AD उपयोगकर्ता पासवर्ड को कभी समाप्त न होने के लिए कैसे सेट करें?

यदि आप किसी खाते के लिए स्थायी पासवर्ड सेट करना चाहते हैं, तो AD में उपयोगकर्ता गुणों में Password Never Expires विकल्प चेक करें (यह UserAccoutControl विशेषता के बिट मानों में से एक है)।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

या आप PowerShell का उपयोग करके उपयोगकर्ता विशेषता सेट करके इस विकल्प को सक्षम कर सकते हैं:

Get-ADUser jsmith | Set-ADUser -PasswordNeverExpires:$True

आप एक टेक्स्ट फ़ाइल में सूची से एक साथ कई उपयोगकर्ताओं के लिए Password Never Expires विकल्प सेट कर सकते हैं:

$users=Get-Content "C:\PS\users_password_never_expire.txt"
Foreach ($user in $users) {
Set-ADUser $user -PasswordNeverExpires:$True
}

आप नियमित पासवर्ड परिवर्तन विकल्प अक्षम वाले सभी उपयोगकर्ताओं की सूची प्रदर्शित कर सकते हैं:

Get-ADUser -filter * -properties Name, PasswordNeverExpires | where {$_.passwordNeverExpires -eq "true" } | Select-Object DistinguishedName,Name,Enabled |ft

Active Directory पासवर्ड समाप्ति अधिसूचना पॉलिसी

Windows में एक विशेष ग्रुप पॉलिसी पैरामीटर है जो उपयोगकर्ताओं को सूचित करने की अनुमति देता है कि उन्हें अपना पासवर्ड बदलना होगा।

नीति को Interactive logon: Prompt user to change password before expiration कहा जाता है और यह GPO सेक्शन के तहत स्थित है: Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options।

डिफ़ॉल्ट रूप से, नीति लोकल Windows सेटिंग्स पर सक्षम है, और अधिसूचनाएं पासवर्ड समाप्त होने से 5 दिन पहले दिखाई देना शुरू हो जाती हैं। आप उन दिनों की संख्या बदल सकते हैं जिनके दौरान उपयोगकर्ता पासवर्ड परिवर्तन अधिसूचना देखेंगे।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

इस नीति को सक्षम करने के बाद, यदि उपयोगकर्ता का पासवर्ड समाप्त हो रहा है, तो प्रत्येक बार उपयोगकर्ता लॉग ऑन करने पर ट्रे में पासवर्ड बदलने की अधिसूचना दिखाई देगी।

Consider changing your password
Your password will expire in xx days.

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

आप एक साधारण PowerShell स्क्रिप्ट का भी उपयोग कर सकते हैं जो स्वचालित रूप से एक डायलॉग विंडो दिखाती है जिसमें पासवर्ड बदलने का संकेत होता है यदि यह 5 दिनों से कम समय में समाप्त हो रहा है:

Add-Type -AssemblyName PresentationFramework
$curruser= Get-ADUser -Identity $env:username -Properties 'msDS-UserPasswordExpiryTimeComputed','PasswordNeverExpires'
if ( -not $curruser.'PasswordNeverExpires') {
$timediff=(new-timespan -start (get-date) -end ([datetime]::FromFileTime($curruser."msDS-UserPasswordExpiryTimeComputed"))).Days
if ($timediff -lt 5) {
$msgBoxInput = [System.Windows.MessageBox]::Show("Your password expires in "+ $timediff + " days!`nDo you want to change it now?","Important!","YesNo","Warning")
switch ($msgBoxInput) {
'Yes' {
cmd /c "explorer shell:::{2559a1f2-21d7-11d4-bdaf-00c04f60b9f0}"
}
'No' { }
}
}
}

यदि उपयोगकर्ता YES पर क्लिक करता है, तो एक Windows Security विंडो दिखाई देती है जो आप Ctrl+Alt+Del या Ctrl+Alt+End (RDP/RDS कनेक्शन के मामले में) दबाने के बाद देखते हैं।

AD उपयोगकर्ता पासवर्ड समाप्त होने वाला है तो पासवर्ड परिवर्तन अधिसूचना

स्क्रिप्ट मानती है कि उपयोगकर्ताओं के कंप्यूटरों पर AD के लिए PowerShell मॉड्यूल इंस्टॉल है। इसका उपयोग तब भी किया जा सकता है जब RSAT इंस्टॉल न हो। "RSAT इंस्टॉल किए बिना AD मॉड्यूल का उपयोग" लेख देखें।

PS स्क्रिप्ट के लिए स्वचालित स्टार्टअप सक्षम करें या इसे GPO लॉगऑन स्क्रिप्ट के रूप में चलाएं।

PowerShell के माध्यम से पासवर्ड समाप्ति ईमेल अधिसूचना

यदि आप उपयोगकर्ताओं को ईमेल द्वारा उनकी पासवर्ड समाप्ति के बारे में सूचित करना चाहते हैं, तो आप इस PowerShell स्क्रिप्ट का उपयोग कर सकते हैं:

$Sender = "info@woshub.com"
$Subject = 'Important! Your password expires soon!'
$BodyTxt1 = 'Your password for'
$BodyTxt2 = 'expires in '
$BodyTxt3 = 'days. Remember to change your password in advance. If you have other questions, contact the HelpDesk.'
$smtpserver ="smtp.woshub.com"
$warnDays = (get-date).adddays(7)
$2Day = get-date
$Users = Get-ADUser -SearchBase 'OU=Users,OU=NewYork,DC=woshub,DC=com' -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} -Properties msDS-UserPasswordExpiryTimeComputed, EmailAddress, Name | select Name, @{Name ="ExpirationDate";Expression= {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}, EmailAddress
foreach ($user in $users) {
if (($user.ExpirationDate -lt $warnDays) -and ($2Day -lt $user.ExpirationDate) ) {
$lastdays = ( $user.ExpirationDate -$2Day).days
$EmailBody = $BodyTxt1, $user.name, $BodyTxt2, $lastdays, $BodyTxt3 -join ' '
Send-MailMessage -To $user.EmailAddress -From $Sender -SmtpServer $smtpserver -Subject $Subject -Body $EmailBody
}
}

स्क्रिप्ट उन सभी सक्रिय डोमेन उपयोगकर्ताओं की जांच करती है जिनके पासवर्ड समाप्त होने वाले हैं। पासवर्ड समाप्त होने से 7 दिन पहले, उपयोगकर्ता को AD में निर्दिष्ट पते पर ईमेल प्राप्त होना शुरू हो जाते हैं। ईमेल तब तक भेजे जाते हैं जब तक पासवर्ड बदल नहीं दिया जाता या समाप्त नहीं हो जाता।

एक प्रशासक Set-ADAccountPassword cmdlet का उपयोग करके उपयोगकर्ता पासवर्ड परिवर्तन को बाध्य कर सकता है।

इस PowerShell स्क्रिप्ट को अपने डोमेन में किसी भी कंप्यूटर/सर्वर पर नियमित रूप से चलाएं (टास्क शेड्यूलर के साथ करना आसान है)। बेशक, आपको उस होस्ट के IP एड्रेस को SMTP सर्वर पर अनुमत प्रेषकों की सूची में जोड़ना होगा (बिना प्रमाणीकरण के ईमेल भेज सकता है)।

  1. रास्पबेरी पाई (रास्पबियन OS) पर अपना पासवर्ड कैसे बदलें रास्पबेरी पाई (रास्पबियन OS) पर अपना पासवर्ड कैसे बदलें

    रास्पबेरी पाई एक बेहतरीन आविष्कार है - उद्योग विशेषज्ञों के एक फाउंडेशन द्वारा बनाया गया एक किफायती, हाथ के आकार का कंप्यूटर जो सभी उम्र के लोगों को कोड करना सीखने और अपने तकनीकी विचारों को जीवन में लाने में मदद करता है। 2015 से, रास्पबियन को रास्पबेरी पाई फाउंडेशन द्वारा पाई पर उपयोग के लिए प्राथम

  1. विंडोज 10 पासवर्ड कैसे बदलें विंडोज 10 पासवर्ड कैसे बदलें

    विंडोज ऑपरेटिंग सिस्टम अपने उपयोगकर्ताओं की सुरक्षा को बहुत गंभीरता से लेता है, यही कारण है कि OS के सभी संस्करण उपयोगकर्ता खातों को सुरक्षित करने के लिए उपयोग किए जा सकने वाले असंख्य टूल के साथ आते हैं। अधिकांश उपयोगकर्ता केवल अपने विंडोज पर उपयोगकर्ता खातों को पासवर्ड से सुरक्षित करना चुनते हैं। प

  1. अपना विंडोज 7 पासवर्ड सुरक्षित रूप से कैसे बदलें अपना विंडोज 7 पासवर्ड सुरक्षित रूप से कैसे बदलें

    विंडोज 7 सिस्टम पर हमारे व्यक्तिगत डेटा की सुरक्षा के लिए, पासवर्ड सुरक्षा बहुत महत्वपूर्ण है। एक अच्छा लॉगिन पासवर्ड उन लोगों के खिलाफ रक्षा की पहली पंक्ति है जो हमारे कंप्यूटर तक पहुंच प्राप्त करना चाहते हैं ताकि कोई महत्वपूर्ण डेटा प्राप्त कर सकें। विंडोज 7 पासवर्ड बदलना नियमित आधार पर आवश्यक है।