Làm thế nào tôi có thể biết khi nào mật khẩu người dùng nhất định sẽ hết hạn?


16

Có cách nào từ bảng điều khiển quản lý máy tính hoặc dòng lệnh để xác định khi nào mật khẩu của người dùng sẽ hết hạn không?

Lưu ý: Tôi đang đặt câu hỏi này cho một máy chủ không phải là một phần của tên miền.


Câu trả lời:


22

Điều này có thể đạt được bằng lệnh DOS / Batch

tên người dùng mạng

Nếu bạn đang ở trên một tên miền, bạn sẽ cần thêm công tắc /Domain. Trong trường hợp của bạn, chỉ cần chèn tên người dùng.

Điều này sẽ liệt kê các chi tiết quan trọng nhất của tài khoản đó, bao gồm ngày hết hạn của mật khẩu người dùng.


Cũng như thông tin bổ sung: Bạn cũng có thể đặt ngày hết hạn thông qua lệnh này, nếu bạn cần phải làm điều đó. Xem "người dùng mạng / trợ giúp" để biết tất cả thông tin
LumenAlbum

1
Và một cách nhanh chóng và bẩn để cắt và dán, chỉ cần sử dụng: người dùng mạng% tên người dùng%
Codek

1
Tôi đã thực hiện tên người dùng / tên miền <tên người dùng> và thông báo "Không thể tìm thấy tên người dùng." Đây có phải là do một số hạn chế hoặc chính sách bảo mật tên miền?
nguyên tử88

7

Nếu trước đây bạn đang theo đuổi cùng một vấn đề mà tôi gặp phải, người dùng muốn cảnh báo tốt hơn khi nào mật khẩu của họ sẽ hết hạn, đặc biệt là khi họ rời khỏi một PC thông thường. Sau đây là kịch bản tôi chạy cứ sau 72 giờ (3 ngày) để cảnh báo email.

# © 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)
}

Đặt bốn dòng cấu hình phù hợp cho môi trường của bạn. Sửa đổi các phần khác khi cần thiết.

PS có thể khiếu nại nếu tập lệnh không được ký. Tôi đã ký tên bằng cách sử dụng (Tôi có chứng chỉ ký mã):

Set-AuthenticodeSignature PasswordBot.ps1 @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

Sau đó, tôi đã tạo một Tác vụ theo lịch trình đơn giản, kích hoạt cứ sau 72 giờ, hành động là chạy C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exevới đối số C:\Path\To\PasswordBot.ps1.

Lưu ý: Máy tính mà tập lệnh này được chạy phải là thành viên của miền và phải cài đặt mô-đun "Active Director cho Windows PowerShell". Bạn có thể chạy start /wait ocsetup ActiveDirectory-PowerShelltrên bất kỳ máy chủ nào để cài đặt nó hoặc tìm thấy nó trong danh sách Tính năng trong Windows 7 (có thể cần phải có RSAT, tôi không thể nhớ bây giờ).


Đây có vẻ là một kịch bản tuyệt vời nhưng như bạn chỉ ra nó cần được chạy trên một thành viên của miền. Tuy nhiên, tiền đề của ông là máy chủ không phải là một phần của tên miền. Kịch bản tuyệt vời
LumenAlbum

Tập lệnh này có thể được thay đổi để hoạt động trên một máy chủ không phải là một phần của miền không?
Aheho
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.