[英]Powershell Schedule on SBS 2011 won't send e-mail
我创建了一个Powershell脚本,试图将其作为计划任务运行。 如果我在Powershell中运行脚本,它将运行正常并发送电子邮件。 但是,如果我将其作为计划任务运行,则它看起来像在运行,并且不发送电子邮件,但在计划代码中给出了0x0。 电子邮件功能之后,我也睡了10秒钟。 我已经在我的Windows 7计算机上设置了相同的脚本作为计划任务,它可以正常运行并按预期方式以及在Windows 8家用计算机上发送电子邮件。
该脚本检查文件夹中的文件,如果有文件存在,它将检查最旧文件的年龄,如果文件已超过60分钟,则会发送电子邮件警报,否则不执行任何操作并退出。
任何想法表示赞赏。
$FilePath = "C:\path1\"
$age = 60
function send-email {
$EmailFrom = "email@gmail.com"
$EmailTo = "email@email.co.uk"
$Subject = "File Alert"
$Body = "Check the file folder, files are over 60 minutes old. File = " + "$filepath" + "$OldestFile" +" "+ "Minutes = " + "$MinutesTrunc"
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
}
$fileExistence = test-path ($FilePath + "*")
if ($fileExistence -eq $false)
{
exit
}
else
{
#continue
}
$OldestFile = Get-ChildItem $FilePath | Sort LastWriteTime | Select -first 1
$StartDate=$OldestFile.LastWriteTime
$EndDate=get-date
$TimeDiff = NEW-TIMESPAN –Start $StartDate –End $EndDate -erroraction 'silentlycontinue'
$Minutes = $TimeDiff.totalminutes
$MinutesTrunc = [MATH]::Truncate($Minutes)
if ($Minutes -ge $age)
{
send-email
start-sleep -s 10
}
else
{
exit
}
更改自
-ExecutionPolicy绕过'C:\\ MyPath \\ File.ps1'
至
-ExecutionPolicy绕过&'C:\\ MyPath \\ File.ps1'(请注意&)由于某种原因而起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.