2012-06-27 79 views
2

我正在研究一個腳本,該腳本應該從Internet Explorer中的鏈接安裝一些軟件,不幸的是該站點需要32位Internet Explorer才能工作。有沒有辦法強制在64位機器上打開32位Internet Explorer窗口?該腳本在32位機器上運行時工作正常。強制32位Internet Explorer ComObject

$ie = New-Object -ComObject InternetExplorer.Application 
$ie.Navigate2($url) 
$ie.Visible = $true 

回答

4
$url = "http://www.google.com" 
$shell = New-Object -ComObject WScript.Shell 
$shell.Exec("C:\Program Files (x86)\Internet Explorer\iexplore.exe $url") | Out-Null 
-1

我不知道PowerShell的答案,但在C你會傳遞給CLSCTX_ACTIVATE_32_BIT_SERVERCoCreateInstance。也許你知道如何將它轉換爲PowerShell-land?

注意:在代碼中,我有這樣做,有一個評論:「在32位XP上存在此標誌會導致調用失敗」(之後是針對微軟API開發人員的一些暴力威脅,在這裏發佈)。只有在64位Windows上運行時,代碼纔會添加該標誌。

1

一個解決方案是使用SysWOW64文件夾(C:\ windows \ syswow64 \ WindowsPowerShell \ v1.0 \ powershell.exe)下的完整路徑顯式啓動powershell.exe 32位版本並運行腳本。

-1

問題的最簡單的解決方案是以32位啓動Powershell。

啓動

Windows Powershellx86 

路徑

C:\Windows\syswow64\Windowspowershell\v1.0\powershell.exe 
+0

你的答案和@CB提供的答案是否有區別? – dazedconfused

1

是MSIE的位水平在很大程度上基於的版本應該注意的。 IE9具有獨立的32/64位版本,可以獨立執行,但IE10 +完全是64位核心(在64位系統上),子進程可以基於邏輯樹(請參閱下面的鏈接)以32位或64位運行頁面。增強保護模式(EPM)可以強制不受信任的站點以完整64位模式運行(有關詳細信息,請參閱下面的文章)。這導致許多插件與EPM不兼容,例如Adobe Reader的瀏覽器內查看器,直到v11.0.7沒有64位元組件(EPM強制執行64位)。

http://blogs.msdn.com/b/ieinternals/archive/2012/03/23/understanding-ie10-enhanced-protected-mode-network-security-addons-cookies-metro-desktop.aspx

http://blogs.msdn.com/b/asiatech/archive/2013/12/25/how-internet-explorer-enhanced-protected-mode-epm-is-enabled-under-different-configurations.aspx

我不知道該如何實現你在找什麼,但上面的信息可以幫助您避免陷阱。

相關問題