有关使用SystemEvents的ISE与控制台的问题

问题描述 投票:2回答:1

当我在PowerShell ISE中运行以下命令时,它完美地运行,给出了“AccountLock”或“AccountUnlock”的原因,正如它应该的那样。但是,当我在高架PowerShell控制台中运行此命令时,它根本不会在控制台中返回sessionswitch原因。解锁后它什么都不返回。

我检查了Get-EventSubscriber以及Get-Job,两者看起来都成功了。 Subscriber&Job的屏幕截图:

get-job and get-EventSuscriber calls

Register-ObjectEvent -InputObject $([microsoft.win32.systemevents]) -EventName "SessionSwitch" -Action {write-host $event.SourceEventArgs.Reason}

我想要做的一件事是在会话解锁时(在用户将域密码与域同步后)检测窗口并打开程序。

操作系统:Windows 10版本:5.1 Build 17134 R 590

powershell events powershell-ise
1个回答
0
投票

看看Microsoft文档:SystemEvents.SessionSwitch Event,解释似乎是这条消息被发送到消息泵,这是处理图形消息的代码的一部分。您可能可以尝试在代码中使用隐藏的表单来强制创建消息泵。

注意 :

仅在消息泵运行时才会引发此事件。在Windows服务中,除非使用隐藏表单或手动启动消息泵,否则不会引发此事件。有关演示如何使用Windows服务中的隐藏表单处理系统事件的代码示例,请参阅SystemEvents类。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.