1

我编写了一些 VBScripts 来自动化我通过网络在计算机上执行的任务。这些对于大多数任务都非常有用,但是在我们的网络中,我们遇到了 DNS 中的 IP 地址始终正确的问题。这主要发生在笔记本电脑上,我们对无线和有线网络上的机器有不同的 IP 范围。

例如,一台机器可能在早上以有线方式启动并获得一个 IP 地址:10.10.10.1

当它切换到无线时,它将获得不同子网中的地址:10.11.10.1

当您尝试连接到该计算机时,即使计算机现在有一个新 IP 地址,它仍会返回旧 IP 地址 (10.10.10.1)。

我发现我仍然可以通过 \computer name\c$ 连接到该计算机的 C$ 共享,即使机器没有 ping。显然还有其他类型的地址解析正在进行,我的问题是如何利用它来允许我的 VBScripts 连接到 WMI?

谢谢!

4

3 回答 3

1

如果 DNS 没有正确的地址,那么它可能会被 NetBios 解析。您需要做的是使用 WINS 服务器或通过网络广播来解析计算机名称。根据您的网络环境,您可以使用其中一个或两个选项。

Microsoft 有一个名为NBLookup的工具,它至少应该能够从 WINS 中查找名称。

您可以调用 NBLookup 并解析结果。我不记得在 VBScript 中本地解析 NetBios 的另一种方法,但我最近看起来并不难。

于 2009-02-13T14:45:13.397 回答
1

您的问题是名称解析。Windows 使用 2 种类型的名称解析:DNS 和 NetBIOS。

DNS 将解析 .comcast.net 或 www.google.com 之类的名称 NetBIOS 解析 15 个字符或更少的名称,就像您的计算机名称一样。

当您的计算机查找一个它不知道如何转换为 IP 地址的名称时,它会转到 DNS 服务器和/或使用 NetBIOS 名称解析。一旦它查找到一个名称,它会在再次查找之前将其保存在缓存中一段时间​​(通常大约一个小时)。

您可以通过以下方式使用命令行查看计算机为每种名称解析类型缓存的名称列表:

DNS
  ipconfig -displaydns
NetBIOS
  nbtstat -c

这些命令中的每一个还允许您清除该缓存,这将迫使您的系统重新发现名称指向的 IP 地址。以下是这些命令:

DNS
  ipconfig -flushdns
NetBIOS
  nbtstat -R

在这些命令之间,您应该能够确定哪种类型的名称解析是罪魁祸首,并通过刷新该缓存来解决它。

于 2009-05-20T21:34:01.923 回答
0

根据我自己的经验,我发现Microsoft TechNet ScriptCenter几乎可以提供任何与 VBScript 相关的内容。当我想深入研究一个我以前没有探索过的 VBScript 新领域时,我通常会从那里开始。

Microsoft TechNet 网站上的WMI 常见问题解答包含到 ScripCenter 的链接以及许多其他有用站点的链接,用于学习如何编写 WMI 脚本。我建议您找到一个已经完成您想要的脚本,因为肯定有人已经编写了您需要的内容。

文章在客户端上自动化 TCP/IP 网络可能包含您开始解决此问题所需的内容。

于 2009-02-06T19:53:54.627 回答