我有一个PowerShell脚本来检查系统用户的密码到期日期,如果它将在10天内过期,则发送邮件。当我们独立运行时,脚本工作正常。但它在使用Windows任务调度程序调度后显示异常行为。有时候它的效果非常好,有时则不然。
输出:密码将在-736235天后过期。 预期输出:密码将在几天后过期。
如果运行不正确,它总是给-736235天。
这是配置,
1.一般标签 - 运行用户是否登录 - 以最高权限运行 - 配置:Windows Server 2012 R2
操作标签
设置标签(选中以下选项) - 允许任务按需运行
如果您需要任何其他详细信息,请与我们联系
谢谢, Navdeep
脚本是,
$user = Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False -and Name -eq "<user_name>" } –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
$DayCount = $user.ExpiryDate - (GET-DATE)
$DayAbsCount = $DayCount.Days
$message.body = "Password will Expire in $DayAbsCount Days.Please reset."
if ( $DayAbsCount -lt 10)
{
$smtp = new-object Net.Mail.SmtpClient($smtpserver)
$smtp.Send($message)
}
, 并且脚本是从我们需要的pwd到期日期的同一帐户运行的。