Powershell:如何检查Internet Explorer的任何实例是否已在运行
我想检查Internet Explorer的任何实例(即它的任何窗口)是否已打开,以便我可以决定是否有新对象必须被创建或我必须附加到该IE窗口的现有进程。这是下面的代码:只有当IE浏览器的窗口已经打开,如果打开没有IE窗口,然后行应该是这样的Powershell:如何检查Internet Explorer的任何实例是否已在运行
$ie = (New-Object -COM "Shell.Application").Windows()| ? { $_.Name -eq "Windows Internet Explorer" }
我要附加到窗口():
$ie = (New-Object -COM "Shell.Application")
尝试:
if (
Get-Process iexplore -ea silentlycontinue |
Where-Object {$_.MainWindowTitle -ne ""}
)
**嘿谢谢队友,它的工作:) :) :) :) :) ** – Rohit2194017 2013-05-03 10:40:02
@ user2194017很高兴帮助,请记住接受它作为答案。 – 2013-05-03 10:41:09
if (Get-Process iexplore) { "Yes" } else { "No" }
我不知道这是否工作在终端服务环境有许多用户(进程确实非凸起Get-Process
只在自己的会议看(和系统会话)?)
我会添加一个'-erroraction silentlycontinue'参数,以避免在丢失过程中发生异常。 – 2013-05-03 09:56:22
我试过这个,但它没有工作,没有IE窗口打开,仍然得到进程显示iexplore – Rohit2194017 2013-05-03 10:07:02
@ user2194017 4个实例:如果您一直在测试通过COM从PSH实例启动IE,您可能已经泄露COM参考(这些可能需要很长时间才能GC是PSH没有管理内存压力)。 – Richard 2013-05-03 14:45:45
'get-process iexplore' ?? – 2013-05-03 09:52:41