如何编写Windows脚本以快速更改网络设置

更常见的问题是对于工程师或IT人员,它们通常需要连接到建筑物内小型网络上的设备或机器。要连接到该隔离的网络,必须将网络设置更改为静态IP。后来,当您重新连接到公司网络时,它又重新回到了DHCP。

我经常发现自己处于这种情况,并且对浏览网卡,打开IP设置并进行这些修改使我决定现在是时候整理一个VB脚本了,只需单击一下即可完成所有操作。如果您已经阅读了我的编程文章,那么您就会知道我喜欢VB脚本。我曾经用它来创建一台拥有数据备份的计算机。

还可以使用VB脚本来完成此任务,甚至可以使其足够灵活以使其可以接受用户输入的静态数据。 IP地址。在本文中,我将分三部分向您展示如何做到这一点。

创建网络设置更改脚本

在此脚本中需要完成三个主要任务。为了创建这个小应用程序来切换网络设置。首先是使用脚本创建静态IP设置。接下来是提出一个启用DHCP的脚本。最后,最后一个方法是询问用户他们想要执行的任务,然后使用该反馈来完成任务。

请记住,以下脚本需要另存为扩展名为.wsf的文本文件。为了在Windows PC上工作。下面的脚本会将您的网络设置更改为具有特定子网掩码和默认网关的静态IP,并将所有三个硬编码都编码到脚本中。

对于本文列出的所有代码示例,请确保添加开头为“ ,否则代码将不会运行。
这是静态IP更改脚本:

Option ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim arrGatewayDim colNetAdaptersDim errEnableStaticDim errGatewaysstrComputer = "."arrIPAddress = Array("192.168.1.106")arrSubnetMask = Array("255.255.255.0")arrGateway = Array("192.168.1.1")Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")For Each objNetAdapter in colNetAdapters     errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)     If Not errEnableStatic = 0 Then     	WScript.Echo "Failure assigning IP/Subnet."     End If     errGateways = objNetAdapter.SetGateways(arrGateway)     If Not errGateways = 0 Then     	WScript.Echo "Failure assigning Gateway."     End IfNextWScript.Quit
Option ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim errEnablestrComputer = "."Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")For Each objNetAdapter in colNetAdapters     errEnable = objNetAdapter.EnableDHCP()NextWScript.Quit
Option ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim arrGatewayDim colNetAdaptersDim errEnableStaticDim errGatewaysDim strInputDim errFailederrFailed = 0strInput = InputBox("Type Static IP Address or AUTO")If strInput = "AUTO" Then	strComputer = "."	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")	Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")	For Each objNetAdapter in colNetAdapters	     errEnable = objNetAdapter.EnableDHCP()	     If Not errEnable = 0 Then	     	WScript.Echo "Setting DHCP Failed."		errFailed = 1	     End If	NextElse	strComputer = "."	arrIPAddress = Array(strInput)	arrSubnetMask = Array("255.255.255.0")	arrGateway = Array("192.168.1.1")	Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")	Set colNetAdapters = objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")	For Each objNetAdapter in colNetAdapters	     errEnableStatic = objNetAdapter.EnableStatic(arrIPAddress, arrSubnetMask)	     If Not errEnableStatic = 0 Then	     	WScript.Echo "Failure assigning IP/Subnet."		errFailed = 1	     End If	     errGateways = objNetAdapter.SetGateways(arrGateway)	     If Not errGateways = 0 Then	     	WScript.Echo "Failure assigning Gateway."		errFailed = 1	     End If	NextEnd IfIf errFailed = 0 Then	WScript.Echo "IP Settings Successfully Modified."End IfWScript.Quit

如果在字段中键入了除“ AUTO"以外的任何内容,它将用作使用WMI设置代码的适配器的静态IP字符串。还检查了“ 0"确认消息,表明一切正常。

您可以尝试使用此Windows脚本吗?还有其他想法可以调整并使其变得更好吗?在下面的评论部分中分享您的想法和建议。

图片来源:通过Shutterstock的二进制代码

标签: 计算机自动化 计算机网络 IP地址 编程