我在SCOM PowerShell脚本中使用Invoke-WebRequest
来定期监视URI的可用性。我的脚本是相当简单的(因为我有PS :-)不甚了解):Invoke-WebRequest在服务器无法访问后工作
$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
文件想要做的监测。有趣的是,即使在主机无法访问的情况下,该脚本也可以成功获取Web端点(通过从该机器执行ping操作进行测试)。
我直接从命令行做了一些进一步的测试,没有任何改变。即使我没有ping到远程地址,Invoke-WebRequest
仍会成功并获取网页。那么我在这里做错了什么?
我在虚拟机上运行,但无法访问虚拟机管理程序(我可以访问但需要一些时间)。任何想法如何清除PowerShell会话?有没有一些选项可以清除它,或者使用另一个不使用缓存的命令? – vainolo
查看更新的答案 –
奇怪...不起作用。我也尝试执行'Clear-DnsClientCache',但没有任何反应。不管怎么说,还是要谢谢你。 – vainolo