【问题标题】:Copy Files and Folders After Antivirus Scan防病毒扫描后复制文件和文件夹
【发布时间】:2017-08-06 22:54:35
【问题描述】:

我想在 Windows 2012 Server 启动时在后台运行一个 PowerShell 脚本,该脚本执行以下操作:

  • 监视文件夹和所有子文件夹(不是计划任务;需要“实时”)
  • 调用防病毒扫描(如果有人熟悉赛门铁克,我想使用DoScan.exe
  • 如果文件“干净”,则将文件复制到目标文件夹;隔离那些没有的人
  • 记录所有活动

我已经找到了一些代码片段并为此构建了一个框架,但我遇到了各种问题。首先,PowerShell 脚本在运行不到 10 秒后退出。然而,在 ISE 中连续运行。其次,-WindowStyle Hidden 没有像我希望的那样运行。我不希望用户直接知道脚本正在运行。第三(这可能更像是赛门铁克的事情),我的“调用扫描”例程似乎注册为 1 个大扫描,而不是单个文件扫描。

感谢任何指导。请解释为什么/为什么不这样做,以及我是否应该使用另一种语言,以及是否应该将其分解为多个脚本。

$incomingfile = "E:\"
$filter = "*.*"

$watcher = New-Object IO.FileSystemWatcher $incomingfile, $filter -Property @{
    IncludeSubdirectories = $true
    NotifyFilter = [IO.NotifyFilters] 'FileName, LastWrite'
}

$onCreated = Register-ObjectEvent $watcher Created -SourceIdentifier FileCreated -Action {
    $path = $Event.SourceEventArgs.FullPath
    $name = $Event.SourceEventArgs.Name
    $changeType = $Even.SourceEventArgs.ChangeType
    $timeStamp = $Event.TimeGenerated

    foreach ($incomingfile in $watcher) {
        & "C:\Program Files (x86)\Symantec\Symantec Endpoint Protection\DoScan.exe" /ScanFile $path
    }
}

【问题讨论】:

    标签: powershell background move startup


    【解决方案1】:

    几件事:

    • 您的观察者操作的其中一个语句中缺少t

      $changeType = $Even.SourceEventArgs.ChangeType
      #                 ^^
      

      但应该不会有影响,因为您并没有使用该变量。

    • 观察者仅在其父 PowerShell 进程运行时保持活动状态。

    • 您的foreach 循环错误。观察者会为每个创建的文件触发,因此删除循环并将命令直接放在操作脚本块中。

      $onCreated = Register-ObjectEvent ... -Action {
          $path = $Event.SourceEventArgs.FullPath
          & "C:\Pro...can.exe" /ScanFile $path
      }
      
    • 您希望脚本执行 SEP 的所有操作都已经可以自己完成。完全不需要用FileSystemWatcher 重新实现轮子。

    【讨论】:

    • 好的,谢谢。有没有办法让 Powershell 进程保持运行?它似乎在 10 秒内退出并且不会重新启动
    • 在脚本末尾添加一个无限循环:while ($true) {Start-Sleep -Milliseconds 100}。重申一下:SEP 已经可以自己做所有你想做的事情。没有任何 PowerShell 行。
    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多