【发布时间】:2017-02-27 11:29:52
【问题描述】:
我正在尝试使用.Exec 拉回机器的 IP 配置。然后,从命令的给定输出中,我想返回所有无线和以太网 LAN IPv4 地址或“媒体已断开连接”(如果不存在)。我非常坚持如何解决这个问题,因为用户通常可以拥有多个 NIC。我可以得到输出,但是我不确定如何遍历 ipconfig 的结果来存储我需要的信息。
Set objShell = CreateObject("WScript.Shell")
StrIPConfig = "ipconfig /all"
Set IPConfig = objShell.Exec(StrIPConfig)
strText = ""
Do While Not IPConfig.StdOut.AtEndOfStream
strText = IPConfig.StdOut.Readline
If InStr(strText, "Wireless Network Connection") Then
strWLAN = IPConfig.StdOut.Readline +2
WScript.Echo strWLAN
End If
Loop
Do While Not IPConfig.StdOut.AtEndOfStream
strText = IPConfig.StdOut.Readline
If InStr(strText, "Local Area Connection") Then
strLAN = IPConfig.StdOut.Readline +2
WScript.Echo strWLAN
End If
Loop
必须通过 WMI Windows 批处理文件或 WMI VBscript 或使用 Exec 的 VBScript 完成,如上所述。不幸的是,PowerShell 不是一种选择。
【问题讨论】:
-
使用
wmic执行WMI 查询只返回您需要的信息可能比解析ipconfig的输出更容易。参见serverfault.com/a/55437/1440