這裏是我的解決方案:
$IEProcess = [System.Diagnostics.Process]::Start("iexplore", "-noframemerging")
Sleep -Seconds 1
$ie = $(New-Object -ComObject "Shell.Application").Windows() | ? {$_.HWND -eq $IEProcess.MainWindowHandle}
我啓動一個實例與System.Diagnostic.Process庫,我是用開始處理,但得到一些奇怪的結果,這種固定的權利了。在這一點上,我有一個IE的實例打開與noframemerging開關和一個變量指向進程。
我在那裏扔了一個睡眠,讓com對象有機會在嘗試引用它之前進行構造。
然後我抓住所有窗口的com對象,並選擇一個句柄(HWND)與我剛剛啓動的過程相同,並將其分配給我的$ ie變量。
最終的結果是我有一個變量,引用獨立於所有其他會話的Internet Explorer的com對象。我特別需要的原因是我打開了許多IE實例並登錄到具有不同用戶帳戶的網站,如果他們共享一個會話,登錄頁面將被跳過,並且他們已經以登錄的第一個用戶的身份登錄。
感謝所有的幫助!
http://citator5.rssing.com/browser.php?indx=4016525&item=184 –