Sha*_* L. 4 windows powershell server prtg
我有一个Powershell脚本,应该Invoke-WebRequest对一个网站运行。我想将此脚本与PRTG Network Monitor一起使用,以确保Web服务器正常启动并运行。
当前,该脚本可以在我的本地计算机上运行,也可以在探测服务器上使用我的域凭据运行。但是,当使用PRTG使用的本地管理员凭据登录时,它不会运行。
我把它缩小到一行
Invoke-WebRequest $uri -Method POST -Body $body -TimeoutSec 10
Run Code Online (Sandbox Code Playgroud)
看来,无论出于何种原因,在使用此帐户Invoke-WebRequest时均无法使用。运行该行时,它不会产生任何东西,没有错误,警告或输出。这两个$uri和$body变量已被定义为好。
即使我使用本地admin PRTG帐户登录了探针服务器并以其他用户身份(使用我自己的凭据)运行Powershell,它仍然无法产生任何结果。
为什么本地管理员帐户无法运行Invoke-WebRequest?这是在带有PSVersion 4.0的Windows Server 2012R2上发生的。
[将我的评论变成答案]
在Windows PowerShell中,Invoke-WebRequest除非另有说明,否则使用Internet Explorer引擎解析网站。IE有很多限制-来自其受信任的站点/安全区域的安全模型,IE增强安全性,由组策略覆盖的限制,也许还有更多限制,并且您似乎尝试了所有其他明智的尝试,因此值得进行测试直接。
此开关:
Invoke-WebRequest -UseBasicParsing ....
Run Code Online (Sandbox Code Playgroud)
避免使用IE引擎并发出HTTP请求并在C#/。Net中处理响应。
折衷方案是您可以使用纯文本结果,并且无法通过HTML DOM访问页面,否getElementByTagName()或需要实时浏览器引擎才能工作。
| 归档时间: |
|
| 查看次数: |
4227 次 |
| 最近记录: |