0
我有一個腳本,用於監視AD中的用戶證書。它工作正常,但有一件事我不明白。 這裏的中頻部分:獲取日期不適用於任務調度程序
If ($Certs.expiresin -contains $days)
{
$strings = $Certs | where {$_.expiresin -eq $days}
$table = $strings | select @{n='Username';e={$_.Fullname}}, @{n='Email';e={$_.subject}}, @{n='Expires';e={$_.expiresafter}}
Send-MailMessage @toadmin -Body $toadminbody -BodyAsHtml -Encoding $encoding
foreach ($string in $strings) {
$To = $string.subject
$smtpsettings = @{
To = $To
From = $From
Subject = $Subject
SmtpServer = $SmtpServer
}
if ($string.subject -like '*@*')
{
$date = Get-date $string.ExpiresAfter -f D
Send-MailMessage @smtpsettings -body $emailbody -Encoding $encoding
}
}
}
機身設置爲
$emailbody = @()
$emailbody += "Certificate bla bla bla expires in $date"
$emailbody += "bla bla bla bla bla"
$emailbody = $emailbody | Out-String
問題是,當我從任務調度運行腳本,用戶通知來沒有任何$date
和一個空的HTML表格。它只是錯過了。但是當我從ISE啓動這個腳本時,第一次運行結果缺少$date
和表,但第二個按預期工作,$date
和表被填滿。 它有什麼不對?