使用计时器同时崩溃多个Powershell脚本

时间:2018-11-08 12:18:28

标签: powershell

我有3个独立的Powershell脚本,都分别调用,它们执行非常相似的操作。每个窗口中都设置了一个计时器,以每5分钟检查一次CVS文件,并将结果显示为Windows任务栏中的图标。他们查询不同的CSV文件,但是布局如下:

//setup my variables
$poll_timer = New-Object System.Timers.Timer($poll_interval * 1000 * 60)
$poll_timer.Start()

function check_CSV{
    query the CSV
    $Icon.Icon = $whichImage
...
} 
$poll = {
    check_CSV
} 
Register-ObjectEvent $poll_timer -EventName Elapsed -Action $poll 

一切正常,它们全天运行。但是,它们每周崩溃2到3次,因此轮询停止。我觉得很奇怪的是,这3个崩溃并停止了轮询。如果我运行不同的脚本,Powershell仍然可以工作,但是这三个都被独立调用的脚本会同时崩溃。

我已经将$ ErrorActionPreference =“ silentlycontinue”放在顶部,这似乎没有任何区别。我看不到它们为什么崩溃,只是偶尔在运行CSV检查时挂起。

谢谢。

1 个答案:

答案 0 :(得分:0)

最后,我相信这是由于独立的Powershell脚本使用了相同的Timer名称。所以我举个例子:

Register-ObjectEvent $poll_timer_script1 -EventName Elapsed -Action $poll_script1 
Register-ObjectEvent $poll_timer_script2 -EventName Elapsed -Action $poll_script2 

我不完全理解为什么这样做会有所帮助,因为它们是独立文件中的单独脚本中的独立脚本,但是在几周后,我还没有发生崩溃,现在几乎可以肯定会发生。