Powershell 调用WebRequest错误

Powershell 调用WebRequest错误,powershell,Powershell,最近晋升为系统管理员,我真的刚刚开始安装。我们有一个powershell脚本,用于检查某些服务。似乎适用于所有其他管理员。我认为这是许可证在这一点上,但想检查这里,看看我是否遗漏了什么 Powershell脚本 Import-Module WebAdministration -ErrorAction SilentlyContinue #Change the location to match your file. $ServerLocation = "C:\Scripts\Servers"

最近晋升为系统管理员,我真的刚刚开始安装。我们有一个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,我就能够得到我正在寻找的响应。但我还是收到了第一次发射的错误消息

有什么想法吗


谢谢大家!

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

Invoke-WebRequest
使用Internet Explorer,通常在您至少打开一次并取消运行一次弹出窗口之前,它无法工作

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


或者,您可以在IE中运行第一个操作。

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

Invoke-WebRequest
使用Internet Explorer,通常在您至少打开一次并取消运行一次弹出窗口之前,它无法工作

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


或者,您也可以在IE中运行第一个操作。

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

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

我已经登录到所有4个框,并打开IE。甚至注销和重新登录,只是为了确保它不是个人资料不可靠。我将尝试将-useBasicPassing添加到其他命令中。让我感到困惑的是,没有其他系统管理员必须登录到这些框,也不必添加-UseBasicParsing命令。这一定是权限问题,对吗?我从来没有看到过与权限相关的错误消息(原因非常明确,并提供了一个特定的解决方案;))我已经登录到所有4个框并打开IE。甚至注销并重新登录,只是为了确保配置文件不存在问题。我将尝试将-useBasicPassing添加到其他命令中。让我感到困惑的是,没有其他系统管理员必须登录到这些框,也不必添加-UseBasicParsing命令。这一定是权限问题,对吗?我从未见过与权限相关的错误消息(它非常明确地说明了原因,并提供了一个特定的解决方案;)