Email 如何将电子邮件命令排队,直到连接到网络

Email 如何将电子邮件命令排队,直到连接到网络,email,powershell,Email,Powershell,在我的PowerShell代码中,如果在执行命令时在某个目录中发现意外文件夹,我将发送一封电子邮件。 这已经起作用了,但我需要知道的是,如果笔记本电脑没有连接到网络,如何将电子邮件排队。一旦笔记本电脑具有网络连接,然后发送电子邮件 if ($item.Attributes -eq "Directory") { if ($ip=get-WmiObject Win32_NetworkAdapterConfiguration|Where {$_.Ipaddress.length -g

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

提前谢谢

如果您需要简单的延迟,请在循环时使用

   ...
    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
  }
}

while
循环可能会检查连接,或者
尝试/catch
将详细信息写入文件,然后当脚本再次运行时检查文件?您正在运行什么操作系统?我是powershell新手,但是,如果这里有人可以将此vbscript转换为powershell,对您来说会更好;)按照相同的原则,但在vbscript==>中,我不能在该块中真正执行while或sleep选项,因为此时需要执行其他功能,这就是为什么我要执行continue,以便完成其他功能。