在使用窗口的任务调度程序进行调度后,Powershell会输出错误的输出

时间:2016-09-29 05:24:49

标签: windows powershell taskscheduler

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

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

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

这是配置,

1.一般标签 - 运行用户是否登录 - 以最高权限运行 - 配置:Windows Server 2012 R2

  1. 操作标签

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

    • 如果运行时停止任务:3天 - 如果正在运行的任务在请求时没有停止,则强制停止
    • 如果任务已在运行,则将应用以下规则:停止现有实例。
  3. 如果您需要任何其他详细信息,请与我们联系

    谢谢, 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到期日期的同一帐户运行的。

0 个答案:

没有答案