在我的PowerShell代码中,如果在执行命令时在某个目录中发现意外文件夹,我会发送电子邮件。这已经有效了,但是如果笔记本电脑未连接到网络,我需要知道如何对该电子邮件进行排队。笔记本电脑具有网络连接后,发送电子邮件。
if ($item.Attributes -eq "Directory")
{
if ($ip=get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -gt 1})
{
Send-MailMessage -SmtpServer $SmtpServer -From "$Admin" -To "$Admin" -Subject "Unexpected folder in $path folder on ""$env:computername""" -Body "There is an unexpected folder in the $path Folder on ""$env:computername"". Check on this ASAP."
continue
}
else
{
#Need to queue this message until we are connected to a network again
Send-MailMessage -SmtpServer $SmtpServer -From "$Admin" -To "$Admin" -Subject "Unexpected folder in $path folder on ""$env:computername""" -Body "There is an unexpected folder in the $path Folder on ""$env:computername"". Check on this ASAP."
continue
}
}
提前谢谢你
如果您需要简单的延迟,请使用while
循环
...
else
{
while (!(Test-Connection -ComputerName $SmtpServer -Quiet))
{
Start-Sleep 30
}
Send-MailMessage -SmtpServer $SmtpServer ...
continue
}
我现在刚刚从一个好帮手那里学到了,多亏了他;)
你可以这样尝试:
while($true) {
if(Test-Connection -ComputerName $smtpserver -Count 1 -Quiet)
{
Write 'The host responded'
Send-MailMessage -SmtpServer $SmtpServer -From "$Admin" -To "$Admin" -Subject "Unexpected folder in $path folder on ""$env:computername""" -Body "There is an unexpected folder in the $path Folder on ""$env:computername"". Check on this ASAP."
break
}
}