0

我有一个 PowerShell 脚本来检查系统用户的密码到期日期,如果密码将在 10 天内到期,则发送邮件。当我们单独运行脚本时,它可以正常工作。但它在使用 Windows 任务调度程序调度后显示异常行为。有时它工作得很好,有时它不是。

输出:密码将在 -736235 天后过期。预期输出:密码将在几天后过期。

如果运行不正确,它总是给出 -736235 天。

这是配置,

1.General 选项卡 - 无论用户是否登录都运行 - 以最高权限运行 - 配置:Windows server 2012 R2

  1. 操作选项卡

    • 程序/脚本:PowerShell -添加参数:.\ps.ps1
    • 开始于: D:
  2. 设置选项卡(选中以下选项) - 允许任务按需运行

    • 如果任务从以下时间开始运行,则停止任务:3 天 - 如果正在运行的任务在请求时没有停止,则强制停止
    • 如果任务已经在运行,则将应用以下规则:停止现有实例。

如果您需要任何其他详细信息,请告诉我,

谢谢, 纳夫迪普


脚本是,

$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) 
} 

,并且该脚本从我们需要其密码到期日期的同一帐户运行。

4

0 回答 0