问题描述
我正在使用 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 (将#修改为@)