首页 > 解决方案 > 我可以防止在 PowerShell 中创建的 Windows 事件观察程序随着服务器注销而消失吗?

问题描述

我设置了一个在服务器 1(安装了所需的应用程序,Windows Server 2008 R2)上运行的事件观察程序,以检测服务器 2(存储共享文件的位置)上的文件创建事件。两者都在 UNC 路径上。我使用 RDC/RDP 登录到服务器 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 没有在服务器上运行?但我已经阅读了几十篇关于事件观察者的文章,但没有人提到这很重要。有点重要。

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

谢谢!

标签: powershellfilesystemwatcher

解决方案


推荐阅读