如何在连接到网络之前对电子邮件命令进行排队



在我的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
  }
}

最新更新