某段 Invoke-WebRequest 指令開發測試完,部署到目的主機,經手動執行確認 OK,設成排程卻出現以下錯誤訊息:

The response content cannot be parsed because the Internet Explorer engine is not available, or Internet Explorer’s first-launch configuration is not complete. Specify the UseBasicParsing parameter and try again.

檢查確認 HTTP 呼叫有正常執行,是 PowerShell 解析傳回結果時出錯。由訊息可知錯誤與 IE 有關,因手動執行正常,故可排除沒裝 IE 引擎的狀況,推測是卡在每個帳號第一次啟動 IE 時需要設定安全政策及相容性(如下圖),排程使的執行身分從未啟動用過 IE,因此卡住。

解決方法有幾種:

  1. 若傳回結果是單純文字或簡單 HTML,Invoke-WebRequest 可加上 -UseBasicParsing 參數不動用 IE 解析 (這個參數之前學過,若 IE 因 HTML 太複雜或遇到特定元素當掉,也是靠它解救)
  2. 改用排程身分帳號登入 Windows,啟動 IE 完成初始設定,但如果 NETWORK SERVICE 之類系統帳號,就沒法用這招
  3. 透過群組原則物件設定避開問題 (參考: Solving the First-Launch Configuration Error with PowerShell’s Invoke-WebRequest Cmdlet)


Comments

Be the first to post a comment

Post a comment