首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Invoke-WebRequest错误

Invoke-WebRequest错误
EN

Stack Overflow用户
提问于 2017-10-11 04:42:04
回答 2查看 4.6K关注 0票数 0

最近被提升为系统管理员,我真的只是刚刚开始设置。我们有一个powershell脚本,我们用它来检查一些服务。似乎对所有其他管理员都有效。我认为在这一点上是权限问题,但我想在这里检查一下我是否遗漏了什么。

Powershell脚本

代码语言:javascript
复制
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

我得到的输出

代码语言:javascript
复制
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第一次启动。

有什么想法吗?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2017-10-11 04:48:18

您是否在运行此脚本的计算机上打开了Internet Explorer?

Invoke-WebRequest使用it浏览器,通常只有在你打开它至少一次并关闭运行一次弹出窗口后,它才能工作。

您可以通过添加-UseBasicParsing开关来解决此问题,您需要将其添加到 Invoke-WebRequest的所有实例(不只是第一个实例...我数到了两个,忽略了示例中注释掉的一个。)

或者,你可以在IE中use a GPO to disable第一次运行的东西。

票数 4
EN

Stack Overflow用户

发布于 2018-10-23 02:58:10

如果你用admin打开你的PowerShell会话,那么你也必须用admin打开IE浏览器,否则它将无法识别彼此。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46675646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档