我编写了一些VBScripts来自动执行我通过网络在计算机上执行的任务。这些工作对大多数任务都很有用,但是在我们的网络中,我们遇到的问题是DNS中的IP地址始终是正确的。这主要发生在笔记本电脑上,我们为无线和有线网络上的机器提供不同的IP范围。
例如,机器可以在早上启动并获得IP地址:10.10.10.1
当它切换到无线时,它将获得不同子网中的地址:10.11.10.1
当您尝试连接到该计算机时,即使计算机现在有新的IP地址,它仍然会返回旧的IP地址(10.10.10.1)。
我发现即使机器没有ping,我仍然可以通过\ computer name \ c $连接到该计算机的C $共享。显然还有其他类型的地址解析,我的问题是如何利用它来允许我的VBScripts连接到WMI?
谢谢!
答案 0 :(得分:1)
如果DNS没有正确的地址,那么可能是通过NetBios解决的。您需要做的是使用WINS服务器或通过广播解析计算机名称到网络。根据您的网络环境,您可以使用其中一个或两个选项。
Microsoft有一个名为NBLookup的工具,它应该能够至少从WINS中查找名称。
您可以调用NBLookup并解析结果。我不记得在VBScript中本地进行NetBios解析的另一种方法,但我最近看起来并不是很难。
答案 1 :(得分:1)
您的问题是名称解析。 Windows使用两种类型的名称解析: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
在这些命令之间,您应该能够确定哪种类型的名称解析是罪魁祸首,并通过刷新缓存来解决它。
答案 2 :(得分:0)
根据我自己的经验,我发现Microsoft TechNet ScriptCenter几乎可以提供任何与VBScript有关的内容。这通常是我开始的时候,我想深入研究一个我以前没有探索过的VBScript的新领域。
Microsoft TechNet网站上的WMI FAQ包含指向ScripCenter的链接以及指向许多其他usefule站点的链接,用于学习如何编写WMI脚本。我建议找一个已经做你想要的脚本,因为有人必须已经写好了你需要的东西。
文章Automating TCP/IP Networking on Clients可能包含您解决此问题所需的内容。