我在 SCOM PowerShell 脚本中使用 Invoke-WebRequest
定期监控 URI 的可用性。我的脚本相当简单(因为我对 PS 知之甚少:-)):
$scomapi = new-object -comObject "MOM.ScriptAPI"
$scompb = $scomapi.CreatePropertyBag()
$fullHostName = "https://" + <full path to monitored web endpoint>
$result = Invoke-WebRequest $fullHostName
if($result.content) {
$scompb.AddValue("ConfigurationReachable",$true);
} else {
$scompb.AddValue("ConfigurationReachable",$false);
}
$scomapi.AddItem($scompb)
$scomapi.ReturnItems()
为了测试这个脚本,我在运行我想进行监控的 SCOM 代理的客户端上的 hosts
文件中进行了手动更改。有趣的是,即使主机无法访问(通过从该机器执行 ping 测试),该脚本仍能成功获取 Web 端点。
我直接从命令行做了一些进一步的测试,没有任何变化。即使我没有 ping 到远程地址,Invoke-WebRequest
仍然成功并获取网页。那么我在这里做错了什么?
最佳答案
我知道这是旧的,但以防万一这对某人有帮助:
我遇到了类似的问题,添加“-Disable KeepAlive”为我解决了这个问题。
关于powershell - 在服务器无法访问后调用 WebRequest 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18556456/