উত্তর:
এটি ডস / ব্যাচ কমান্ড দ্বারা অর্জন করা যেতে পারে
নেট ব্যবহারকারী নাম
আপনি যদি কোনও ডোমেনে থাকেন তবে আপনার স্যুইচটি যুক্ত করতে হবে /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)
}
আপনার পরিবেশের জন্য এই চারটি কনফিগারেশন লাইন যথাযথভাবে সেট করুন। অন্যান্য অংশগুলি প্রয়োজনীয় হিসাবে সংশোধন করুন।
স্ক্রিপ্ট স্বাক্ষরিত না হলে পিএস অভিযোগ করতে পারে। আমি ব্যবহার করে খনিতে স্বাক্ষর করেছি (আমার কাছে একটি কোড স্বাক্ষরের শংসাপত্র রয়েছে):
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
।
দ্রষ্টব্য: এই স্ক্রিপ্টটি যে কম্পিউটারে চলছে সেটিকে অবশ্যই ডোমেনের সদস্য হতে হবে এবং অবশ্যই "উইন্ডোজ পাওয়ারশেলের জন্য অ্যাক্টিভ ডিরেক্টর মডিউল" ইনস্টলড থাকতে হবে। আপনি start /wait ocsetup ActiveDirectory-PowerShell
এটি ইনস্টল করতে যে কোনও সার্ভারে চালনা করতে পারেন , বা এটি উইন্ডোজ 7 এর বৈশিষ্ট্য তালিকায় খুঁজে পেতে পারেন (আরএসএটি প্রয়োজন হতে পারে, আমি এখন মনে করতে পারি না)।