我可以防止在PowerShell中创建的Windows事件观察程序随服务器注销而消失吗?

时间:2020-10-28 19:59:49

标签: powershell filesystemwatcher

我设置了一个在服务器1(安装了所需的应用程序,Windows Server 2008 R2)上运行的事件观察程序,以检测服务器2(存储共享文件)上的文件创建事件。两者都在UNC路径上。我使用RDC / RDP登录到Server 1,然后在其中运行PowerShell以创建,注册和/或注销事件观察器。

假设:我从阅读有关计算机重新启动后持续存在的事件观察程序操作的信息中推断出,此类事件应持续存在,而不管我是否已登录。

行为:就我而言,观察者的操作仅在我注销之前执行,并且当我重新登录观察者时消失,或者我相信是因为尝试取消订阅时出现此错误从中...

Get-EventSubscriber : Event subscription with identifier 'FileToProcess' does not exist.

目标:我希望在创建文件时触发精彩的$OnEvent操作,无论什么情况。更新:尤其是在我注销后,而且通常是注销时。

设置:

$Monitor = New-Object System.IO.FileSystemWatcher
$Monitor.Path = $FolderToMonitor
$Monitor.IncludeSubdirectories = $true
$Monitor.Filter = '*.*'

$SourceIdentifier = "FileToProcess"
$OnEvent = {...run a program in Server 1, write a file to Server 2, etc...}

# Unregister:
Unregister-Event $SourceIdentifier

# Register:
Register-ObjectEvent $Monitor Created -SourceIdentifier $SourceIdentifier -Action $OnEvent

猜想::注销时,并不是说断开连接。我注销,当我重新登录时,得到了一个全新的Windows会话。登出后,Windows可能不在服务器上运行吗?但是我已经阅读了数十篇有关事件观察者的文章,没有人提到这一点。很重要。

后续行动::如果这是真正的问题,那么...

  • 我知道Windows Task Scheduler可以在不登录的情况下运行任务。是否不能告诉某种事件观察者也这样做?
  • 有没有退出Windows的注销方法?
  • 其他人似乎都有持续的事件(甚至有时抱怨不管他们做什么都不想要的事件都持续存在)吗?

谢谢!

0 个答案:

没有答案