我Invoke-WebRequest
在 SCOM PowerShell 脚本中使用定期监视 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()
为了测试这个脚本,我在hosts
运行 SCOM 代理的客户端上手动更改了我想要进行监控的文件。有趣的是,即使在主机无法访问后,该脚本也成功获取了 Web 端点(通过从该机器进行 ping 测试)。
我直接从命令行做了一些进一步的测试,没有任何变化。即使我没有 ping 到远程地址,Invoke-WebRequest
仍然成功并获取网页。那么我在这里做错了什么?