![WMI 查询检查 OSD 的 IP 默认网关](https://linux22.com/image/666424/WMI%20%E6%9F%A5%E8%AF%A2%E6%A3%80%E6%9F%A5%20OSD%20%E7%9A%84%20IP%20%E9%BB%98%E8%AE%A4%E7%BD%91%E5%85%B3.png)
我正在尝试为命令行添加一个条件,只有满足条件时才会运行该命令行。我使用 WMI 查询来执行此操作;
Select * From Win32_NetworkAdapterConfiguration Where DefaultIPGateway="192.168.1.1"
因此,如果此部署的网关已获得 192.168.1.1,它应该运行一个添加注册表设置的命令,如果不满足条件,它将跳过它。
更多信息:
- 我已经有一个类似的命令可以运行,它查询 WMI 以获取主机名信息。如果主机名以 XXX% 开头(% 是通配符),它将部署该命令,否则它将跳过它。
- 如果是某个网关,它应该运行命令
- 这已经是一个实时任务序列,我只是想添加这个条件来获得 1 个大序列
欢迎任何帮助。谢谢
答案1
您正在寻找类似查询
SELECT * FROM WIN32_NETWORKADAPTERCONFIGURATION WHERE DEFAULTIPGATEWAY LIKE "192.168.1.1"
如果我理解正确的话,您需要运行一个任务序列步骤有条件的,这可以通过任务序列选项 WMI 查询来实现,这样只有当满足一个或所有条件时,该步骤才会运行。请参阅下面的示例查询。
参考:
https://msdn.microsoft.com/en-us/library/Aa394217(v=VS.85).aspx
答案2
对于那些正在寻找我所寻找的东西的人来说。这是我正在使用的 WMI 查询。我弄清楚了如何做到这一点。我在 DefaultIPGateway 中执行查询,但我应该查询 Win32_IP4RouteTable。
Select Mask,Destination,NextHop from Win32_IP4RouteTable WHERE ((Mask='0.0.0.0' AND Destination='0.0.0.0') AND (NextHop='10.0.0.1'))
因此 10.0.0.1 是示例网关。
我用它来检查我的序列中的步骤,以检查默认网关是否是这个,如果不是,它将跳过这一步。