我试图通过运行VBScript重命名计算机并为它们分配静态IP。 名称和IP将从文本文件中读取。
我已经在Windows 7上成功使用了以下脚本,但是在Windows 10上却无法使用
要重命名Windows 7计算机:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colComputers = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
Dim objComputer 'as Win32_ComputerSystem
For Each objComputer In colComputers
err = objComputer.Rename("NewName")
Next
要设置Windows 7静态IP:
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array("192.168.1.xxx")
strSubnetMask = Array("255.255.255.x")
strGateway = Array("192.168.1.xxx")
strGatewayMetric = Array(1)
我找不到适用于Windows 10的脚本版本。
答案 0 :(得分:2)
如果要从外部文本文件中获取Tcpip配置(IP和DNS)和计算机新名称
首先以这种格式创建文本文件,删除引号之间的内容并添加配置,但不要更改其他内容,然后保存该文件,例如“ IP.txt”:
newComputerName="ALHAMDULILLAH"
Name="wi-fi"
Address="192.168.1.7"
Mask="255.255.255.0"
Gateway="192.168.1.1"
DNS1="2.2.2.2"
DNS2="8.8.8.8"
然后使用此脚本更改计算机的名称
' run script as administrator
If WScript.Arguments.Length=0 Then
CreateObject("Shell.Application").ShellExecute "Wscript.exe",Chr(34)&WScript.ScriptFullName&Chr(34)&" HOLLOPOST",Null,"runas",1
WScript.Quit
End If
' Get the new computer name from Text File
myTextFilePath="C:\USERS\ENG\DESKTOP\IP.TXT" 'add here the full path of text fill
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(myTextFilePath).ReadAll
a=Split(T,vbcrlf)
For i=0 To UBound(a)
If InStr(1,a(i),"newComputerName",1)>0 Then
newComputerName=right(a(i),len(a(i))-16)
End If
Next
' change Computer Name for registry
Dim sh : Set sh = CreateObject("Wscript.Shell")
Dim strRegPath : strRegPath="HKLM\system\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname"
sh.RegWrite strRegPath, newComputerName
WScript.Sleep 1000
strRegPath="HKLM\system\CurrentControlSet\control\ComputerName\ComputerName\ComputerName"
sh.RegWrite strRegPath,newComputerName
WScript.Sleep 1000
' restart the Computer
For Each ComputerObject In GetObject("Winmgmts:{(Shutdown)}").InstancesOf("Win32_OperatingSystem"): ComputerObject.Win32Shutdown(6) : Next
然后在重新启动计算机后,使用第二个脚本来更改IP配置和DNS:
' run script as administrator
If WScript.Arguments.Length=0 Then
CreateObject("Shell.Application").ShellExecute "Wscript.exe",Chr(34)&WScript.ScriptFullName&Chr(34)&" HOLLOPOST",Null,"runas",1
WScript.Quit
End If
'Get Ip configuration from Text file
myTextFilePath="C:\USERS\ENG\DESKTOP\IP.TXT"
T = CreateObject("Scripting.FileSystemObject").OpenTextFile(myTextFilePath).ReadAll
a=Split(T,vbcrlf)
For i=0 To UBound(a)
If InStr(1,a(i),"Name",1)>0 Then
myInterfaceName=a(i)
ElseIf InStr(1,a(i),"Address",1)>0 Then
myIP=a(i)
ElseIf InStr(1,a(i),"Mask",1)>0 Then
myMask=a(i)
ElseIf InStr(1,a(i),"Gateway",1)>0 Then
myGateway=a(i)
ElseIf InStr(1,a(i),"DNS1",1)>0 Then
myPreferredDNS=right(a(i),len(a(i))-5)
ElseIf InStr(1,a(i),"DNS2",1)>0 Then
myAlternatedDNS=right(a(i),len(a(i))-5)
End If
Next
' change Computer IP and DNS
Set sh=CreateObject("WScript.Shell")
sh.Run "cmd.exe /c netsh interface ipv4 set address """&myInterfaceName&""" static "&myIP&" "&myMask&" "&myGateway &" 1",0,False
sh.Run "cmd.exe /c netsh interface ipv4 Set dnsservers """&myInterfaceName&""" static "&myPreferredDNS&" primary",0,False
sh.Run "cmd.exe /c netsh interface ipv4 Add dnsservers """&myInterfaceName&""" "&myAlternatedDNS&" Index=2",0,False
sh.Run "cmd.exe /k netsh interface ipv4 show config",1,False
答案 1 :(得分:0)
更改计算机名称:
' run script as administrator
If WScript.Arguments.Length=0 Then
CreateObject("Shell.Application").ShellExecute "Wscript.exe",Chr(34)&WScript.ScriptFullName&Chr(34)&" RunAs",Null,"runas",1
WScript.Quit
End If
' change Computer Name for registry
Dim newComputerName : newComputerName="android"
Dim sh : Set sh = CreateObject("Wscript.Shell")
Dim strRegPath
strRegPath="HKLM\system\CurrentControlSet\Services\Tcpip\Parameters\NV Hostname"
sh.RegWrite strRegPath, newComputerName
WScript.Sleep 1000
strRegPath="HKLM\system\CurrentControlSet\control\ComputerName\ComputerName\ComputerName"
sh.RegWrite strRegPath,newComputerName
WScript.Sleep 1000
' restart the Computer
For Each Computer In GetObject("Winmgmts:{(Shutdown)}").InstancesOf("Win32_OperatingSystem")
Computer.Win32Shutdown(6)
Next
'sh.Run "cmd.exe /c shutdown /r /f /t 00",0,False
重新启动后,您可以使用此脚本更改IP地址和DNS
' run script as administrator
If WScript.Arguments.Length=0 Then
CreateObject("Shell.Application").ShellExecute "Wscript.exe",Chr(34)&WScript.ScriptFullName&Chr(34)&" RunAs",Null,"runas",1
WScript.Quit
End If
' change Computer IP and DNS
myInterfaceName="wi-fi"
myIP="192.168.1.7"
myMask="255.255.255.0"
myGateway="192.168.1.100"
myPreferredDNS ="2.2.2.2"
myAlternatedDNS ="8.8.8.8"
Set sh=CreateObject("WScript.Shell")
sh.Run "cmd.exe /c netsh interface ipv4 set address """&myInterfaceName&""" static "&myIP&" "&myMask&" "&myGateway &" 1",0,False
sh.Run "cmd.exe /c netsh interface ipv4 Set dnsservers """&myInterfaceName&""" static "&myPreferredDNS&" primary",0,False
sh.Run "cmd.exe /c netsh interface ipv4 Add dnsservers """&myInterfaceName&""" "&myAlternatedDNS&" Index=2",0,False
sh.Run "cmd.exe /k netsh interface ipv4 show config ",1,False