Powershell创建密码过期报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Powershell创建密码过期报告相关的知识,希望对你有一定的参考价值。

我正在尝试创建一个每周运行一次的密码到期报告,我想一次抓住7天。

我一直在创建的当前脚本似乎并没有这样做。我得到了今天和回来的一切,但从来没有第二天,更不用说7天了。我相信我没有拉正确的日期,但我不知道该怎么做。我试过问别人并搜索我的问题,但没找到办法。

我知道我可能在这里留下了“-2”,但那是为了测试它。一切正常,直到“?”如果我没有“-or”,那么我得到一个Null,所以where-object中的某些东西不起作用

电子邮件发送也很好。

[cmdletbinding()]
Param (
    [parameter(DontShow = $true)]
    $SmartHost = 'smtpserver.company.com',

    [parameter(DontShow = $true)]
    $SendTo = 'someone',

    [parameter(DontShow = $true)]
    $SendFrom = "me",

    [parameter(DontShow = $true)]
    $MailSubject = "Daily Password Expiry Report"
)

process {
    Write-Verbose -Message "Collecting data..."
    $mailBody = ((Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and PasswordLastSet -gt 0}  -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Sort msDS-UserPasswordExpiryTimeComputed | 
    Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}})|
     ? {($_.expiryDate -eq (Get-Date).AddDays(-2) -or $_.expiryDate -lt (Get-Date)) }| Out-String)
}

end {
    Write-Verbose -Message "Sending Mail..."
    Send-MailMessage -Subject $mailSubject -From $sendFrom -To $sendTo -SmtpServer $smartHost -body $mailBody

}
答案

如何利用这个和根据需要调整。

密码过期报告和用户通知Powershell脚本

该脚本的原始部分归功于Martin Pugh(www.thesurlyadmin.com)。我刚刚清理了原始文件并添加了一些更好的电子邮件通知并添加了一些额外的功能。您可以将此脚本配置为计划任务,以获取用户的报告

https://gallery.technet.microsoft.com/scriptcenter/Password-Expiration-Report-478037a5

以上是关于Powershell创建密码过期报告的主要内容,如果未能解决你的问题,请参考以下文章

Powershell 将用户帐户密码设置为永不过期

PowerShell AD用户密码过期脚本更新版

没有第二个账号查询AD,如何检测AD用户密码是不是过期?

Powershell 替换 csv 对象

域控powershell实例(收集整理)

如何使控制台中的视图缓存片段过期?