filesystemwatcher powershell 在我的机器上工作,但不适用于我同事的剧本是一样的

问题描述

我正在使用 filesystemwatcher 来监视使用 powershell 的特定文件的创建和更改。我猜这个脚本每 5 秒轮询一次。 在我的机器上工作。它在我的同事机器上不起作用。 下面是脚本。基本上问题发生在检测到事件后的定义操作中

$action = { $path = $Event.sourceEventArgs.FullPath。出于某种原因,它没有检测到事件并在他的机器中调用一个动作。 我正在尝试找出故障排除步骤。为什么它在我的机器上运行良好而不在他的机器上运行? PS-我在我的机器上有管理员权限,而他不是他的管理员。我运行这个脚本的方式是右键单击并作为 powershell 运行。执行模式在我们的两台机器中都受到限制。

$global:DownloadsPath = (New-Object -ComObject Shell.application).NameSpace('shell:Downloads').Self.Path
 $watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $global:DownloadsPath
$watcher.Filter = "frmh.seq" 
$watcher.IncludeSubdirectories = $false
$watcher.EnableRaisingEvents = $true  

 Write-Host ("Within ScriptMonitoring")

 ### DEFINE ACTIONS AFTER AN EVENT IS DETECTED

  $action = { $path = $Event.sourceEventArgs.FullPath
  $FolderPath = $global:DownloadsPath
  Write-Host ("Within ScriptMonitoring")
 $loglocation = $FolderPath + "\Watcherlogs.txt"

$frmhLocation = $FolderPath + "\frmh.seq"
$controlDocLocation=  $FolderPath + "\control.doc"
            $changeType = $Event.sourceEventArgs.ChangeType
     $logline = "$(Get-Date),$changeType,$path"
            Add-content $loglocation $logline      

      & ".\anotherscript.ps1" -SourceOfPcforms $FolderPath -SourceFileFrmhSeq $frmhLocation - 
      SourceFileControlDoc $controlDocLocation
            
        } ### DECIDE WHICH EVENTS SHOULD BE WATCHED 
 $created = Register-ObjectEvent $watcher "Created" -SourceIdentifier 'FileCreated' -Action $action
 $changed = Register-ObjectEvent $watcher "Changed" -SourceIdentifier 'FileChanged' -Action $action

    Write-Host ($created)
      Write-Host ($changed)

while ($true) {sleep 5}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)