[英]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.