在我的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
}
}
提前谢谢
答案 0 :(得分:1)
如果您需要简单延迟,请使用while
循环
...
else
{
while (!(Test-Connection -ComputerName $SmtpServer -Quiet))
{
Start-Sleep 30
}
Send-MailMessage -SmtpServer $SmtpServer ...
continue
}
答案 1 :(得分:1)
我刚刚从一位好帮手那里学到了感谢他;)
您可以尝试这样:
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
}
}