最近升级到系统管理员,我真的只是设置。我们有一个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首次启动。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
您是否在运行此脚本的计算机上打开了Internet Explorer?
Invoke-WebRequest
使用Internet Explorer,并且在您至少打开一次并取消一次运行弹出窗口之前,它通常无法工作。
您可以通过添加-UseBasicParsing
开关来解决这个问题,您需要将其添加到Invoke-WebRequest
的所有实例中(不仅仅是第一个......我算了二,在你的样本中忽略注释掉的那个。)
或者,您可以use a GPO to disable首先在IE中运行。
答案 1 :(得分:0)
如果使用admin打开PowerShell会话,则也必须使用admin打开IE浏览器,否则它将无法识别彼此。