window批处理修改计算机名,网管专用自动更改I

2019-09-25 20:36栏目:网络操作
TAG:

一、需要重启

复制代码 代码如下:

澳门新葡亰平台官网,本人负责的部门有上百台机器,重装完后需要恢复原有配置,我曾使用过很多方法:
1:手工更改,这条就不要说了
2:使用netsh dump +文件和 netsh -f +文件来更改,但是整个盘都格式化就没用.
3:使用专用的更改ip地址的小程序,但还是需要手工来指定IP

@echo off
set /p pcnanme=请输入计算机的名字:
reg add HKEY_LOCAL_MACHINESYSTEMControlSet001ControlComputerNameComputerName /v ComputerName /t REG_SZ /d %pcnanme% /f
eixt

@echo off
echo 骏龙包装计算机名称、计算机描述、工作组修改批处理程序
Echo
pause
cls
:set/p id=请输入本机网段号:
:set/p ip=请输入本机IP地址:
:netsh interface ip set address name="本地连接" source=static addr=192.168.%id%.%ip% mask=255.255.255.0
set /p name=请输您的主机出厂S/N编号:
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameActiveComputerName" /v ComputerName /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v "NV Hostname" /t reg_sz /d %name% /f
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v Hostname /t reg_sz /d %name% /f
SET work=骏龙
wmic computersystem where Name="%NAME%" call JoinDomainOrWorkgroup Name="%work%"
set /p describe=请输入您的计算机描述(公司规定必须是使用者姓名):
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServiceslanmanserverParameters" /v srvcomment /t reg_sz /d %describe% /f

最后,我想到如下办法:
1:首先实现:netsh interface ip 来更改IP
2:使用wmic computersystem 修改工作组
3:使用reg add 来更改机器名
4:因为修改机器名后要重启才生效,于是使用:reboot.inf 来重启
5:后来增加了新机器名和ip的配置,使用机器的序列号(联想机:wmic bios get SerialNumber)来做机器名,ip地址最后1位使用随机
因为可以通过 wmic来读取序列号,那么我们可以用来登记本机的网络配置时,就方便多了.
6:最后将自己整理的IP地址等对应表放到了bat中,避免bat调用其他文件.
7:实现上面功能后,我就可以将该bat文件封装到gho文件里面,恢复重启完后就可以自动设置,我不要做其他操作,用户就可以使用.如果有必要,你可以加上执行完后自动删除本身.

需要重启电脑才能生效

net config server /SRVCOMMENT:"%describe%"
pause

整个代码如下:(欢迎大家继续优化和整理)

 

用批处理修改计算机名和工作组,不用重启!

复制代码 代码如下:

二、不需要重启

如果你喜欢用Ghost镜像的系统,那么每次重装完成之后的计算机名都是一串长长的随机字符,非常不方便和不美观。
一般来说,你在系统属性那里修改计算机名或者工作组,总是要进行重新启动,非常麻烦。甚至在最新的Vista操作系统里面也是这样。
其实计算机名是保存在注册表里面的,我们可以通过直接修改注册表,达到修改的目的。

@echo off & code by m13632750052
for /f "tokens=12 delims= " %%i in ('ipconfig/all^|find "Physical Address"') do set localmac=%%i
echo 通过MAC地址%localmac%查找对应的机器名
for /f "skip=90 tokens=1,2,3,4 delims= " %%i in (%澳门新葡亰平台游戏,~f0) do (
if [%%k]==[%localmac%] set Name=%%i
if [%%k]==[%localmac%] set IP=%%j
if [%%k]==[%localmac%] set MAC=%%k
if [%%k]==[%localmac%] set Workgroup=%%l
set mask=255.255.0.0
set gway=168.30.1.233
set dns=168.1.4.147
set dns2=168.1.6.243
)
echo 显示查找结果 code by cn-dos breakme
if defined Name (echo %Name% %IP% %mac% %Workgroup%) else (goto newset)
:Enterset
for /l %%i in (3,-1,0) do ping -n 2 127.0.0.%%i>nul && @echo. %%i s 后修改机器名……

@echo off
set /p name=输入新的计算机名称
wmic computersystem where "PrimaryOwnerName='%username%'" call rename %NAME%&exit
利用wmic改名不用重启

复制代码 代码如下:

reg add "HKEY_CURRENT_USERSoftwareMicrosoftWindowsShellNoRoam" /v @ /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetControlComputerNameComputerName" /v "ComputerName" /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetControlComputerNameActiveComputerName" /v "ComputerName" /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetServicesEventlog" /v "ComputerName" /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetControlComputerNameComputerName" /v "ComputerName" /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetServicesTcpipParameters" /v "NV Hostname" /t REG_SZ /d "%Name%" /f
reg add "HKLMSYSTEMCurrentControlSetServicesTcpipParameters" /v "Hostname" /t REG_SZ /d "%Name%" /f

 

HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameActiveComputerName
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters

echo 刷新注册表
if exist c:winnt (secedit /refreshpolicy machine_policy /enforce) else (gpupdate /force)

 

工作组的修改可以通过一个wmic命令来实现目的。

echo 修改工作组
wmic computersystem where Name="%Name%" call JoinDomainOrWorkgroup Name="%Workgroup%"
wmic computersystem where Name="%ComputerName%" call JoinDomainOrWorkgroup Name="%Workgroup%"

通过修改注册表修改主机名和工作组

wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="%WORKGROUP%"
现在我们把它写成一个批处理,来实现无需重启修改计算机名和工作组:

echo 修改IP
::查找MAC所对应的连接名称
for /f "tokens=1,2,3,4,5,6 delims=-" %%A in ("%MAC%") do set MacWMIC=%%A:%%B:%%C:%%D:%%E:%%F
for /f "skip=2 tokens=2* delims==" %%A in ('WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value') do set "ConnName=%%A"
if not defined ConnName set ConnName="本地连接"
netsh interface ip set address name="%ConnName%" source=static addr=%IP% mask=%mask%
netsh interface ip set address name="%ConnName%" gateway=%gway% gwmetric=0
netsh interface ip set dns name="%ConnName%" source=static addr=%dns% register=PRIMARY
netsh interface ip add dns name="%ConnName%" addr=%dns2% index=2
netsh interface ip set wins name="%ConnName%" source=static addr=none

@echo off
echo AppLife.Net
set /p name=请输您的计算机名:
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
echo.
echo 修改计算机名完毕
echo.
echo AppLife.Net
set /p work1=请输入您的工作组名:
wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="%work1%"
echo 修改工作组完毕
pause>nul
echo.

复制代码 代码如下:

echo arp绑定 %IP% %MAC%
arp -d
arp -s %IP% %MAC%
echo arp绑定网关 %gway%,如果网络不通,将使用默认网关的MAC:00-00-5e-00-01-01
ping -n 2 %gway%>nul 2>nul
if [%ERRORLEVEL%]==[1] (set GateMac=00-00-5e-00-01-01) else (
for /f "skip=3 tokens=2" %%H in ('arp -a %gway%') do set GateMac=%%H
)
cmd /c arp -s %gway% %GateMac%

 

@echo off
echo AppLife.Net
set /p name=请输您的计算机名:
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetControlComputerNameActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINESystemCurrentControlSetServicesTcpipParameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
echo.
echo 修改计算机名完毕
echo.
echo AppLife.Net
set /p work1=请输入您的工作组名:
wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="%work1%"
echo 修改工作组完毕
pause>nul
echo.

for /l %%i in (3,-1,0) do ping -n 2 127.0.0.%%i>nul && @echo. %%i s 后重启电脑……
setlocal
cd/d %temp%
echo [version] > reboot.inf
set inf=InstallHinfSection DefaultInstall
echo signature=$chicago$ >> reboot.inf
echo [defaultinstall] >> reboot.inf
rundll32 setupapi,%inf% 1 %temp%reboot.inf
del reboot.inf
EXIT

不需要重启

把上面的代码保存为一个bat文件,运行就可以了。

:newset
echo 您的机器可能是新机器,需要手工输入ip
for /f "tokens=1,2 delims==" %%i in ('wmic bios get SerialNumber /value^|find "="') do set Name=%%j
if not defined Name set /p Name=请输入新机器的名字
echo 机器名:%Name%
call :select "Physical Address" "mac"
echo mac :%mac%
set /a aa=%random%%%9
set IP=168.30.7.1%aa%
set mask=255.255.0.0
set gway=168.30.1.233
set dns=168.1.4.147
set dns2=168.1.6.243
set Workgroup=vga00l
echo IP 配置: %ip% %mask% %gway% %dns% %dns2% %Workgroup%
for /l %%i in (5,-1,0) do ping -n 2 127.0.0.%%i>nul && @echo. %%i s 后修改机器名……
goto Enterset

:select
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| findstr /i /c:%1') do if not "!%~2!" == "" set "%~2=%%i"
GOTO :eof

版权声明:本文由澳门新葡亰平台游戏发布于网络操作,转载请注明出处:window批处理修改计算机名,网管专用自动更改I