簡體   English   中英

調用WebRequest錯誤

[英]Invoke-WebRequest Error

最近被提升為Systems Admin,實際上只是在進行設置。 我們有一個用於檢查某些服務的powershell腳本。 似乎適用於所有其他管理員。 我當時認為這是權限,但想在這里查看我是否丟失了任何內容。

Powershell腳本

Import-Module WebAdministration -ErrorAction SilentlyContinue 


#Change the location to match your file.
$ServerLocation = "C:\Scripts\Servers"
$StartTime = Get-Date


$ServerName = Get-Content "$ServerLocation\ServerText.txt"


ForEach ($Server in $ServerName)
{
   #$Server = "ServerPD20" 
   #Invoke-WebRequest -Uri http://$Server/ServerService/ServerCalculator.svc | Select StatusDescription
   Write-Host $Server -ForegroundColor Cyan
   $Check = Invoke-WebRequest -Uri http://$Server/ServerService/ServerCalculator.svc
   If($Check.StatusDescription -eq 'OK')
   {
      Write-Host "Server Calculator Service is:" $Check.StatusDescription
      Write-Host "Status Code:" $Check.StatusCode
      $Time = (Measure-Command {Invoke-WebRequest -Uri http://$Server/ServerService/ServerCalculator.svc}).TotalSeconds
      Write-Host "Total Request Time: $Time seconds" `n -ForegroundColor Gray
   }
   ElseIf($Check.StatusDescription -ne 'OK')
   {
      Write-Host "Server Calculator Service is NOT ONLINE" -ForegroundColor Red
      Write-Host "Status Code:" $Check.StatusCode `n
   }
}
$RunTime = Get-Date
Write-Host `n"Start Time" $StartTime
Write-Host "Run Time: "$RunTime -ForegroundColor Yellow

我得到的輸出

Invoke-WebRequest : 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.  At C:\Scripts\Folder\CalculatorCheck.ps1:17 char:13
+    $Check = Invoke-WebRequest -Uri http://$Server/ServerCalculator ...
+             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotImplemented: (:) [Invoke-WebRequest], NotSupportedException
    + FullyQualifiedErrorId : WebCmdletIEDomNotSupportedException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

有兩件事要注意。

我已經使用運行Powershell腳本的相同帳戶登錄了所有四個框。 我右鍵單擊並以其他用戶身份運行。 我輸入的用戶名是我登錄所有4台服務器並確保已打開IE的用戶名。

如果在“ $ Check = Invoke-WebRequest -Uri http://$Server/ServerService/ServerCalculator.svc”之后添加-UseBasicParsing,則可以得到我正在尋找的響應。 但是我仍然收到錯誤IE首次啟動。

有任何想法嗎?

謝謝!

您是否在運行此腳本的計算機上打開了Internet Explorer?

Invoke-WebRequest使用Internet Explorer,通常只有在至少打開一次並消除一次運行的彈出窗口后,它才能正常工作。

您可以通過添加-UseBasicParsing開關來解決此問題,您需要將其添加到Invoke-WebRequest 所有實例中(不僅是第一個實例,我還要數兩個,而忽略示例中注釋掉的一個實例。)

或者,您可以使用GPO禁用 IE中的第一次運行。

如果使用admin打開PowerShell會話,則也必須使用admin打開IE瀏覽器,否則它將無法識別彼此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM