已创建Powershell电子邮件通知文件

问题描述 投票:0回答:1

我已经为PowerShell编写了一个代码,以便在将新文件添加到指定文件夹时通知我,但每次打开文件时都会创建一个临时文件,每次打开它时我都会收到这些电子邮件。我试图创建一个if-else语句,以便临时文件电子邮件转到另一个电子邮件地址。理想情况下,我希望根本不接收这些电子邮件。如果你们中的任何一个人知道这种可行的方法,请帮助我。我在下面复制了我的代码。

$folder = "File Folder Path"
$mailserver = "mailserver"
$recipient = "[email protected]"

$fsw = New-Object System.IO.FileSystemWatcher $folder -Property @{
   IncludeSubdirectories = $true
   EnableRaisingEvents=$true
}


$created = Register-ObjectEvent -InputObject $fsw -EventName Created -SourceIdentifier CreatedEvent -Action {
   $item = Get-Item $eventArgs.FullPath
   $s = New-Object System.Security.SecureString
   $anon = New-Object System.Management.Automation.PSCredential ("NT AUTHORITY\ANONYMOUS LOGON", $s)
   If ($fsw -ccontains '~') {
      Send-MailMessage -To "[email protected]" `
                    -From "[email protected]" `
                    -Subject “File Creation Event” `
                    -Body "A file was created: $($eventArgs.FullPath)" `
                    -SmtpServer $mailserver `
                    -Credential $anon
    }
   Else {
      Send-MailMessage -To $recipient `
                    -From "[email protected]" `
                    -Subject “File Creation Event” `
                    -Body "A file was created: $($eventArgs.FullPath)" `
                    -SmtpServer $mailserver `
                    -Credential $anon
    }
}
powershell email temp
1个回答
3
投票

包含对数组的工作,而不是字符串。使用-like-match

如果您不想要电子邮件,请不要编写代码来发送电子邮件。

例如,如果您的临时文件不包含~,则仅发送电子邮件。由于没有别的,如果文件名确实包含~,则不会采取任何操作。

If ($fsw -notlike '*~*') {
  Send-MailMessage -To $recipient `
                -From "[email protected]" `
                -Subject “File Creation Event” `
                -Body "A file was created: $($eventArgs.FullPath)" `
                -SmtpServer $mailserver `
                -Credential $anon
}
© www.soinside.com 2019 - 2024. All rights reserved.