sycx's Blog

Nothing here.

批处理设置计算机名及IP

管着两间学生机房,每间机器数量64台,每次网刻后设置计算机名和IP总是件麻烦的事情

于是就写了个批处理方便设置了

功能说明:运行后获取输入的两位数字的机器号后,将计算机名改为PCxx, IP改为192.168.0.1xx

限制:只支持最大99台机器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@echo off
echo.
echo.
echo.
set /p cNum=请输入机号(两位数字):

::添加计算机名前缀PC
set name=PC%cNum%

::设置计算机名
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  ::尝试修复重名问题
reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam" /v @ /t REG_SZ /d "%name%" /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t REG_SZ /d "%name%" /f >nul 2>nul
reg add "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v "ComputerName" /t REG_SZ /d "%name%" /f >nul 2>nul


::设置ip地址变量
set IPAddress=192.168.0.1%cNum%
set IPMask=255.255.255.0
set IPGateway=192.168.0.1
set IPDNS1=8.8.8.8
set IPDNS2=8.8.4.4

::为"本地连接"设置IP
netsh interface ip set address name="本地连接" source=static addr=%IPAddress% mask=%IPMask% gateway=%IPGateway% gwmetric=1

::设置DNS
netsh interface ip set dns name="本地连接" source=static addr=%IPDNS1% register=PRIMARY
netsh interface ip add dns name="本地连接" addr=%IPDNS2%

cls
echo.
echo.
echo.
echo.
echo        =====================设置成功====================
echo.
echo                计算机名:  %name%
echo                      IP:  %IPAddress%
echo                子网掩码:  %IPMask%
echo                    网关:  %IPGateway%
echo                    DNS1:  %IPDNS1%
echo                    DNS2:  %IPDNS2%
echo.
echo        =================================================
echo.
::等待15秒退出
ping /n 15 127.1>nul

本想写个功能强大点的批处理,比如加上根据MAC地址自动设置,但是看了看实现方法,一堆麻烦的for语句,goto语句,顿觉头大,最终还是选择放弃,简单够用就行了

Update:添加几句代码,尝试修复提示重名的问题

Comments