最近被提升为系统管理员,我真的只是刚刚开始设置。我们有一个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第一次启动。
有什么想法吗?
谢谢!
发布于 2017-10-11 04:48:18
您是否在运行此脚本的计算机上打开了Internet Explorer?
Invoke-WebRequest使用it浏览器,通常只有在你打开它至少一次并关闭运行一次弹出窗口后,它才能工作。
您可以通过添加-UseBasicParsing开关来解决此问题,您需要将其添加到 Invoke-WebRequest的所有实例(不只是第一个实例...我数到了两个,忽略了示例中注释掉的一个。)
或者,你可以在IE中use a GPO to disable第一次运行的东西。
发布于 2018-10-23 02:58:10
如果你用admin打开你的PowerShell会话,那么你也必须用admin打开IE浏览器,否则它将无法识别彼此。
https://stackoverflow.com/questions/46675646
复制相似问题