Powershell事件处理程序上下文

时间:2017-04-13 12:43:49

标签: powershell events event-handling

我尝试使用下一个命令加入SessionSwitch事件:

multipartFormData

适用于Windows 7,Windows Server 2008 R2和Windows Server 2012 R2上的Powershell ISE。 我锁定并解锁会话并在shell中显示“Session Changed”消息。 但是如果我在Windows Server 2012 R2上的“常见”Powershell shell中运行命令,它就不起作用。 看起来我错过了重要的事情。请告诉我我错过了什么。

“Common” - powershell.exe,Powershell ISE - powershell_ise.exe

1 个答案:

答案 0 :(得分:0)

似乎与以下问题相同:Question about ISE vs Console with SystemEvents

解决方案是将控制台作为 MTA 而不是 STA 运行:

if ([System.Threading.Thread]::CurrentThread.ApartmentState -ne [System.Threading.ApartmentState]::MTA)
{
    powershell.exe -MTA -File $MyInvocation.MyCommand.Path
    return
}

查看答案了解更多详情:https://stackoverflow.com/a/60641410/1819480