Scripting 自动更改(可能)多个DNS服务器
我有一个脚本,它利用VBScript来识别它运行的机器的DNS。我有它提醒我,如果我正在寻找的DNS正在使用。我的希望是更进一步,如果找到指定的DNS,将特定的DNS更改为另一个DNS。我发现了一些脚本,这些脚本似乎是基本的想法,但我不认为它们会取代已确定的脚本,只是列表顶部的脚本 以下是我的VBScript,用于标识指定的DNS:Scripting 自动更改(可能)多个DNS服务器,scripting,vbscript,dns,Scripting,Vbscript,Dns,我有一个脚本,它利用VBScript来识别它运行的机器的DNS。我有它提醒我,如果我正在寻找的DNS正在使用。我的希望是更进一步,如果找到指定的DNS,将特定的DNS更改为另一个DNS。我发现了一些脚本,这些脚本似乎是基本的想法,但我不认为它们会取代已确定的脚本,只是列表顶部的脚本 以下是我的VBScript,用于标识指定的DNS: 'Bind to Shell Set objShell = WScript.CreateObject("WScript.Shell") 'Read Servers
'Bind to Shell
Set objShell = WScript.CreateObject("WScript.Shell")
'Read Servers NetbiosName
'strComputer = objShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName\ComputerName")
strComputer = "."
wscript.echo strComputer
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfigs
If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
For Each strDNSServer In objNicConfig.DNSServerSearchOrder
if strDNSServer = "8.8.8.8" Then
wscript.echo "Works!"
End if
wscript.echo strDNSServer
Next
End If
Next
为了澄清,我需要帮助的部分是脚本打印“工作”的地方。我特别希望将该DNS更改为另一个指定的DNS
以下是我还发现的一些声称更改DNS的代码,但我担心如果我将其插入其中,它只会将更改DNS放在列表的顶部,而不是我识别的DNS:
Set objShell = WScript.CreateObject("Wscript.Shell")
objShell.Run "netsh interface ip set address name=""Local Area Connection"" static " & strIPAddress & " " & strSubnetMask & " " & strGateway & " " & intGatewayMetric, 0, True
如果我能澄清任何事情,请告诉我!提前谢谢 您可以使用
SetDNSServerSearchOrder
方法设置DNS服务器(参见示例)。但是,该方法需要一个包含所有要使用的DNS服务器的数组,因此需要将当前DNS服务器读入一个数组,修改要更改的地址,然后使用修改后的数组调用SetDNSServerSearchOrder
If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
dns = objNicConfig.DNSServerSearchOrder
For i = 0 To UBound(dns)
if dns(i) = "8.8.8.8" Then dns(i) = "4.4.4.4"
Next
objNicConfig.SetDNSServerSearchOrder(dns)
End If
您可以使用
SetDNSServerSearchOrder
方法设置DNS服务器(参见示例)。但是,该方法需要一个包含所有要使用的DNS服务器的数组,因此需要将当前DNS服务器读入一个数组,修改要更改的地址,然后使用修改后的数组调用SetDNSServerSearchOrder
If Not IsNull(objNicConfig.DNSServerSearchOrder) Then
dns = objNicConfig.DNSServerSearchOrder
For i = 0 To UBound(dns)
if dns(i) = "8.8.8.8" Then dns(i) = "4.4.4.4"
Next
objNicConfig.SetDNSServerSearchOrder(dns)
End If