Jawaban:
Ini dapat dicapai dengan perintah DOS / Batch
nama pengguna net
Jika Anda menggunakan domain, Anda harus menambahkan sakelar /Domain
. Dalam kasus Anda, cukup masukkan nama pengguna.
Ini akan mencantumkan perincian paling penting dari akun itu, termasuk tanggal kedaluwarsa kata sandi pengguna.
Jika Anda mengejar masalah yang sama dengan yang saya alami di masa lalu, pengguna ingin peringatan yang lebih baik tentang kapan kata sandi mereka akan kedaluwarsa, terutama saat mereka jauh dari PC biasa. Berikut ini adalah skrip yang saya jalankan setiap 72 jam (3 hari) untuk mengirim email peringatan.
# © 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)
}
Atur keempat garis konfigurasi dengan tepat untuk lingkungan Anda. Ubah bagian lain seperlunya.
PS dapat mengeluh jika skrip tidak ditandatangani. Saya menandatangani milik saya menggunakan (Saya memiliki sertifikat penandatanganan kode):
Set-AuthenticodeSignature PasswordBot.ps1 @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Lalu saya membuat Tugas Terjadwal sederhana, memicu setiap 72 jam, tindakan adalah untuk menjalankan C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
dengan argumen C:\Path\To\PasswordBot.ps1
.
Catatan: Komputer tempat skrip ini dijalankan harus menjadi anggota domain, dan harus menginstal "modul Direktur Aktif untuk Windows PowerShell". Anda dapat berjalan start /wait ocsetup ActiveDirectory-PowerShell
di server mana saja untuk menginstalnya, atau menemukannya di daftar Fitur di Windows 7 (RSAT mungkin diperlukan, saya tidak ingat sekarang).