要使用 VBScript 来根据 MAC 地址设置计算机名和 IP 地址,并从一个 .INI 文件中读取设备配置,可以参考以下方法。以下是一个 VBScript 示例,读取 .INI 文件并根据 MAC 地址设置计算机名和 IP 地址。
要使用 VBScript 来根据 MAC 地址设置计算机名和 IP 地址,并从一个 .INI 文件中读取设备配置,可以参考以下方法。以下是一个 VBScript 示例,读取 .INI 文件并根据 MAC 地址设置计算机名和 IP 地址。
1. INI 文件格式 (mac_addresses.ini)
假设你有一个 .INI 文件,里面包含了每个设备的 MAC 地址、计算机名、IP 地址等信息。
iniCopy Code
[Device1]
MAC=00:11:22:33:44:55
COMPUTER_NAME=Computer_1
IPV4=192.168.1.101
DNS1=119.29.29.29
DNS2=223.5.5.5
[Device2]
MAC=66:77:88:99:00:11
COMPUTER_NAME=Computer_2
IPV4=192.168.1.102
DNS1=119.29.29.29
DNS2=223.5.5.5
2. VBScript 示例 (set_network_config.vbs)
vbscriptCopy Code
' VBScript 用于根据 MAC 地址设置计算机名和 IP 地址
' 获取传入的 MAC 地址
If WScript.Arguments.Count = 0 Then
WScript.Echo "错误: 请提供一个 MAC 地址作为参数!"
WScript.Quit
End If
currentMac = WScript.Arguments(0)
' 读取 INI 文件
iniFile = "mac_addresses.ini"
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FileExists(iniFile) Then
WScript.Echo "无法找到 INI 文件: " & iniFile
WScript.Quit
End If
Set ini = fso.OpenTextFile(iniFile, 1) ' 以只读方式打开文件
' 解析 INI 文件并查找与 MAC 地址匹配的配置
deviceConfig = ""
Do Until ini.AtEndOfStream
line = Trim(ini.ReadLine)
' 如果行是一个区段头 [Device1],记录下设备名称
If Left(line, 1) = "[" Then
section = Mid(line, 2, Len(line) - 2) ' 提取区段名称
End If
' 查找每个设备的配置
If InStr(line, "MAC=") > 0 Then
macAddress = Mid(line, 5)
If macAddress = currentMac Then
deviceConfig = section
Exit Do
End If
End If
Loop
ini.Close
' 如果没有找到匹配的 MAC 地址
If deviceConfig = "" Then
WScript.Echo "未找到与 MAC 地址 " & currentMac & " 匹配的设备配置."
WScript.Quit
End If
' 重新读取 INI 文件,获取相关配置
Set ini = fso.OpenTextFile(iniFile, 1)
Do Until ini.AtEndOfStream
line = Trim(ini.ReadLine)
If Left(line, 1) = "[" Then
section = Mid(line, 2, Len(line) - 2)
End If
If section = deviceConfig Then
If InStr(line, "COMPUTER_NAME=") > 0 Then
computerName = Mid(line, 15)
End If
If InStr(line, "IPV4=") > 0 Then
ipv4Address = Mid(line, 6)
End If
If InStr(line, "DNS1=") > 0 Then
dns1 = Mid(line, 6)
End If
If InStr(line, "DNS2=") > 0 Then
dns2 = Mid(line, 6)
End If
End If
Loop
ini.Close
' 设置计算机名
Set objShell = CreateObject("WScript.Shell")
objShell.Run "wmic computersystem where caption='" & objShell.ExpandEnvironmentStrings("%COMPUTERNAME%") & "' rename " & computerName, 0, True
' 设置静态 IP 地址
Set objShell = CreateObject("WScript.Shell")
strCmd = "netsh interface ipv4 set address name=""以太网"" static " & ipv4Address & " 255.255.255.0 192.168.1.1"
objShell.Run strCmd, 0, True
' 设置 DNS
strCmd = "netsh interface ipv4 set dns name=""以太网"" static " & dns1
objShell.Run strCmd, 0, True
strCmd = "netsh interface ipv4 add dns name=""以太网"" " & dns2 & " index=2"
objShell.Run strCmd, 0, True
WScript.Echo "网络配置已完成!"
3. 使用方法
-
INI 文件:
mac_addresses.ini文件中定义了每个设备的 MAC 地址、计算机名、IP 地址和 DNS 配置。- 每个设备的配置项都位于一个
[DeviceX]区段下,其中MAC是设备的 MAC 地址,COMPUTER_NAME是设备的计算机名,IPV4是静态 IP 地址,DNS1和DNS2是 DNS 服务器地址。
-
运行 VBScript:
- 将脚本保存为
set_network_config.vbs文件。 - 运行时,需要传入一个 MAC 地址作为参数,例如:
cmdCopy Code
cscript set_network_config.vbs 00:11:22:33:44:55
- 将脚本保存为
-
脚本解释:
WScript.Arguments.Count用于检查是否提供了 MAC 地址参数。- 脚本读取
mac_addresses.ini文件,查找与提供的 MAC 地址匹配的配置。 - 根据配置项,脚本设置计算机名、IPv4 地址和 DNS 地址。
-
设置计算机名和 IP 地址:
wmic computersystem rename命令用来修改计算机名。netsh命令用来设置静态 IP 地址和 DNS。
4. 注意事项
- 管理员权限:由于脚本需要更改计算机名和网络配置,需要以管理员权限运行。
- 接口名称:在脚本中,接口名称硬编码为
"以太网",如果你的计算机使用不同的网络接口名称,可能需要修改脚本中的"以太网"为实际的接口名称(可以在控制面板或通过ipconfig查看)。 - 运行环境:确保 VBScript 能在目标计算机上运行,并且网络配置命令是有效的。
通过这个脚本,你可以根据 MAC 地址动态读取配置并自动设置计算机名、IP 地址和 DNS 配置。

浙公网安备 33010602011771号