2013-05-03 68 views
0

我想检查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") 
+0

'get-process iexplore' ?? – 2013-05-03 09:52:41

回答

2

尝试:

if (
    Get-Process iexplore -ea silentlycontinue | 
    Where-Object {$_.MainWindowTitle -ne ""} 
) 
+0

**嘿谢谢队友,它的工作:) :) :) :) :) ** – Rohit2194017 2013-05-03 10:40:02

+0

@ user2194017很高兴帮助,请记住接受它作为答案。 – 2013-05-03 10:41:09

0
if (Get-Process iexplore) { "Yes" } else { "No" } 

我不知道这是否工作在终端服务环境有许多用户(进程确实非凸起Get-Process只在自己的会议看(和系统会话)?)

+1

我会添加一个'-erroraction silentlycontinue'参数,以避免在丢失过程中发生异常。 – 2013-05-03 09:56:22

+0

我试过这个,但它没有工作,没有IE窗口打开,仍然得到进程显示iexplore – Rohit2194017 2013-05-03 10:07:02

+0

@ user2194017 4个实例:如果您一直在测试通过COM从PSH实例启动IE,您可能已经泄露COM参考(这些可能需要很长时间才能GC是PSH没有管理内存压力)。 – Richard 2013-05-03 14:45:45

相关问题