Как правильно закрыть Internet Explorer при запуске из PowerShell?

Был набор недавно заданных вопросов о том, как что-то делать с Internet Explorer через PowerShell. Все они содержат коды для запуска IE из PowerShell как объекта через$ie=new-object -comobject InternetExplorer.Application, Проблема в том, как правильнозакрытие IE, который состоит из вызова$ie.quit() не работает - во-первых, если бы в этом IE было более одной открытой вкладки, то IE не закрывается в целом, и закрывается только вкладка, соответствующая COM-объекту, и, во-вторых, если он имеет только вкладка, окно закрывается, но процессы остаются.

PS > get-process iexplore

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    352      31     7724      24968   142     0,58   3236 iexplore
    228      24    22800      15384   156     0,19   3432 iexplore

Я пытался исследовать методы, как закрыть процесс, начатый черезNew-Object -ComObjectи нашли это:Как избавиться от COMObject, Примером этого COMObject являетсяExcel.Applicationкоторый действительно ведет себя как задумано - звонитquit() закрывает окно и выполняет[System.Runtime.Interopservices.Marshal]::ReleaseComObject($ex) если$ex это созданный COMObject останавливает процесс Excel. Но это не относится к Internet Explorer.

Я также нашел этот вопрос:Как получить существующий COM-объект работающего IE который предоставляет код для подключения к IE через список открытых окон и работает в той степени, в которой IE запускается из другого места, но если COM-объект создается с помощью PowerShell, этот сценарий не сможет полностью остановить процессы IE, если он будет изменен следующим образом:

$shellapp = New-Object -ComObject "Shell.Application"
$ShellWindows = $shellapp.Windows()
for ($i = 0; $i -lt $ShellWindows.Count; $i++)
{
 if ($ShellWindows.Item($i).FullName -like "*iexplore.exe")
  {
  $ie = $ShellWindows.Item($i)
  $ie.quit()
  [System.Runtime.Interopservices.Marshal]::ReleaseComObject($ie)
  }
}

В случае запуска IE вне PowerShell процессы останавливаются, но в случае запуска IE в PowerShell остаются два процесса, и этот код сообщает, что не обнаружил окон IE для доступа к COM-объектам, поэтому процессы IE (пока) не могут (пока) быть остановленным.

Итак, как добраться до явно осиротевших процессов IE без окон иизящно Останови их? Я в курсеGet-Process iexplore | Stop-Process, но это остановит все без исключения IE, не только те, которые запускаются скриптом, и если скрипт запускается от имени администратора илиSYSTEM скажем, на сервере удаленного рабочего стола все IE будут остановлены.

Среда: ОС Windows 7 x64, PowerShell 4 (установлена ​​выше PS версии 2), IE11 версия 11.0.9600.17691 (автоматически обновляется). IE установлен на "Открыть домашнюю страницу" при запуске, поэтому всегда открыта хотя бы одна вкладка.