$IE.quit() 之后,Internet Explorer 仍然存在于任务管理器中

$IE.quit() 之后,Internet Explorer 仍然存在于任务管理器中

以下是 powershell 脚本:

$looping = 10  
timenowhms = (get-date -f HH:mm:ss)  
try {  
$Url = "http://localhost:8080/commandcenter/checking.aspx"  
$IE = New-Object -com internetexplorer.application   
$IE.height = 700  
$IE.width = 750  
$IE.top = 10  
$IE.left = 10  
$IE.visible = $false; # can turn on for testing purpose  
$IE.navigate2($url);  
$IEPID  = [IntPtr]::Zero  
[Win32Api]::GetWindowThreadProcessId( $IE.HWND, [ref] $IEPID );  
# quit IE 1  
$IE.quit();  
} catch { $timenowhms = (get-date -f HH:mm:ss); echo "$td_date $timenowhms       Open website failed"; if ( (get-process -name "iexplore*" | ?{ $_.id -eq $IEPID } | measure ).count -eq 1 ){ stop-process -id $IEPID -force }; exit 1 }  
# confirm page loaded  
while ($ie.Busy -eq $true) { if ( $looping -eq 0 ){ $timenowhms = (get-date -f HH:mm:ss); echo "$td_date $timenowhms       Timeout, page not show"; if ( (get-process -name "iexplore*" | ?{ $_.id -eq $IEPID } | measure ).count -eq 1 ){ stop-process -id $IEPID -force }; exit 1 } else { Start-Sleep -Milliseconds 2500; $looping--; }}  
# quit IE 2  
# $IE.quit();  
exit  

我的情况发生在我已经运行 $IE.quit() 时,但 Internet Explorer 仍然存在于任务管理器中。
* 如果我在那里以“退出 IE 1”运行退出函数,Internet Explorer 将关闭/结束(不会退出任务管理器),
* 但是当我在那里以“退出 IE 2”运行它时,IE 不会结束(仍然存在于任务管理器中)
* 如果使用 $IE.visible = $true 运行,则不会出现此类问题。
* 环境:win2016,PSv5.1

1) 请问这是什么原因造成的?
2) 请问在“确认页面已加载”后,什么可能导致 IE 无法关闭?
3) 或者我该如何追踪此类问题?

我确实尝试在不使用“try catch”的情况下运行它。但发生了同样的事情。我尝试将 $IE = null,但结果相同。因为 $IE.quit() 描述强制结束 IE,假设 IE 上运行的程序不奇怪。它将结束任务。

相关内容