下面是编程之家 jb51.cc 通过网络收集整理的代码片段。
编程之家小编现在分享给大家,也给大家做个参考。
' This script changes the DNS servers for a network device in Windows
' to a defined IP or deletes them and makes it the default automatic
' Test if in admin mode by detecting 'elevated' in the command line that launched this script
' WScript is basically a THIS script object
If WScript.Arguments.Named.Exists("elevated") = False Then
'Launch this script again as administrator
CreateObject _
("Shell.Application").ShellExecute _
"wscript.exe","""" & WScript.ScriptFullName & """ /elevated","","runas",1
WScript.Quit
Else
'Change the working directory from the system32 folder back to the script's folder.
Set oShell = CreateObject("WScript.Shell")
oShell.CurrentDirectory = CreateObject _
("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName)
'MsgBox "Now running with elevated permissions"
End If
' Define the DNS Primary and secondary server IPs
DNSserv = "111.111.111.111,222.222.222.222"
' Ask if the DNS servers should be set or removed
iAction = MsgBox("Would you like to use DNS?",_
vbYesNoCancel+vbQuestion+vbApplicationModal,"DNS Toggle: " & DNSserv)
' Cancel was selected - quit this script
If vbCancel = iAction Then
WScript.Quit
End If
strComputer = "." ' This computer
' Get the Script shell and WMI Service objects
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set WshShell = WScript.CreateObject("WScript.Shell")
' The registry key that hold the TCP/IP parameters
Regkey = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\Interfaces\"
' Enumerate all of the enabled network devices
Set IPDevSet = objWMIService.ExecQuery _
("Select SettingID from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
DNSservRead = ""
For Each IPDev in IPDevSet
' Get the current setting
DNSservRead = WshShell.RegRead _
( Regkey & IPDev.SettingID & "\NameServer")
'MsgBox "DNS Servers was set to:" & vbCrLf & DNSservRead,vbOK,"Old Status"
' if it's blank and the user chose YES set it to the DNS Server values.
' So we don't overwrite the values that are already set
If "" = DNSservRead and vbYes = iAction Then
'Combine regkey,settingID,and nameserver to create the correct registry key path
WshShell.RegWrite Regkey & IPDev.SettingID & "\NameServer",DNSserv,"REG_SZ"
' If the user selected NO to delete the DNS values this script sets
' and it's not set to those DNS values do not mess with it.
ElseIf DNSservRead = DNSServ and vbNo = iAction Then
WshShell.RegWrite Regkey & IPDev.SettingID & "\NameServer","REG_SZ"
End If
' See the new setting
'DNSservRead = WshShell.RegRead( Regkey & IPDev.SettingID & "\NameServer")
'MsgBox "DNS Servers now set to:" & vbCrLf & DNSservRead,"New Status"
Next
'Final message
szTitle = ""
szMssg = ""
If vbYes = iAction Then
szMssg = "DNS Servers now set to use:" & vbCrLf & " " & DNSserv
szTitle = "DNS.com is ON"
Else
szMssg = "DNS Servers deleted."& vbCrLf & "Now set to Automatic"
szTitle = "DNS.com is OFF"
End If
MsgBox szMssg,vbInformation,szTitle
以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
总结
如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。