这个批处理,是我在实际环境中用了几年,不断修改、完善测试,分享给大家。

 

1.在XP/win7/win8环境下测试通过。

1.随着这几年win7的普及,win8也开始应用,再加上微软停止对XP系统的升级,企业中XP/Win7/win8混合使用的情况比较很常见,旧电脑跑不动win7的就装XP继续用,配置还OK的,就装win7,一些其它人士如IT人员,或者领导新买的笔记本等或者想尝鲜的人士,装win8的情况比较常见,这些都可以是批处理的用武之地。

2.这个批处理需要以管理员权限运行,XP、win7通常都是管理员账号,双击就行了,win8有点不同,win8运行这个批处理要右键选择管理员权限运行,否则会报错。

3.实际当中运行这个批处理,如果电脑上安装有杀毒软件或者安全卫士类软件,通常会对批处理进行拦截,请允许运行或者暂停安全软件保护。有的安全软件,批处理运行起来会给个提示,不好的直接给你禁止运行,或者提示你是风险软件提示删除,对于某数字杀毒软件,我一直恨之入骨,尼玛跟个女人一样啰嗦,只要是用批处理改点什么系统信息,总会默认就拦截甚至是直接给你关了,通常我是见一个卸载一个,在实际工作中,面对用户的疑问,不知道要费多少口水解释,还得要人家把安全软件退出。

2.支持多网卡环境。采用新的判别方法,可以识别任意网卡名称。

1.多网卡环境常见的情况是电脑安装了虚拟机的环境下。

2.在以前,我采用的判别方法是 本地连接,一般情况能够适用,一般联网的网卡通常都叫本地连接,但特殊情况下,就不行了,如操作系统是win8.1,这个不叫本地连接,叫Ethernet0,win8.1系统的笔记本叫 以太网,英文版的XP/win7叫做 Local Area Connection,或者手动可以修改本地连接,随意字符只要系统支持,以前采购本地连接这个词作判别,遇上这种情况就歇菜了,更新判别方法后,就不受连接名称限制。

3.具备简单的错误信息判别和提示,在没有收集到MAC的机器上会智能退出。

虽然只是加了一个简单的判断,但是我确实是走了不少弯路。

1.批处理中不存在预设的MAC项,常见的情况就是在公司,批处理集成到一个ghost系统镜像,一个镜像打弄下,来一台装一台,来两台装两台,多点的可以搞个网络克隆,机器有可能是现有的机器重装系统MAC,统计在内,这还好,批处理正好发挥他的作用,要是是新买的或者员工私人的,或者是没统计到MAC的,装完系统进桌面要做的第一件事,就是赶紧的把批处理关了,当个技术人员或者网管,人家找你装系统,是常有的事。公司的,私人的,通常都一个镜像ghost过去。

2.自己在测试批处理的时候,遇到很多情况,无法成功运行,以前一运行下来,黑屏一闪,过了,成功没有都不知道,还得一个步骤一个步骤去检查,有了这些提示判别信息,自己看着也舒服点。

3.在网络克隆批量装系统的情况下,如果你不能绝对保证你每台机器信息修改都OK的话,有的时候,你信心满满的认为没问题,结果就偏偏出了问题,最靠谱的方法当然是对结果一一检查。装一台机器还好,我以前遇到过给一个机房70多台电脑网络克隆的情况,结果有部分机器就出了问题,一台电脑检查下要30秒,你也要半小时,还真是痛苦,如果屏幕有个提示,至少人就不用点了。

4.在企业环境,发给员工运行时,运行有没有问题,他也可以看出来,有没有出错,至少还可以戴个图给你,你也大致明白,问题出在哪个步骤。

 

批处理、用户模板、使用说明下载地址

http://pan.baidu.com/s/1pJwl9Ib

使用方法

1.按照自己实际情况修改excel 用户信息模板,所有的项都要填写完整。
2.右键编辑 根据MAC修改计算机名v2.5.bat 把用户信息直接从excel用户信息模板表中复制到批处理后面,保存批处理再运行。

3.本批处理会自动提取批处理后面预设的值,根据MAC修改计算机名为   拼音-设备  修改当前登录用户名为 工号  修改计算机注释为。 子部门-姓名

下面为批处理后面预设的值,批处理会根据当前机器的MAC自动提取相应的信息。

::部门-i   子部门-j      姓名-k    工号-l   拼音-m   设备类别-n   IP地址-o    标准MAC-p   标准MAC2-q
技术部      运维分部  小黑侠 SN000427  XiaoHeiXia    DT    192.168.102.129    00-0C-29-9A-5C-C3  000C298919F0

4.win8.1系统请右键选择以管理员身份运行,否则会报错。
5.如有什么需要改善的意见或者建议,或者使用遇到什么问题,欢迎加QQ群:342116629交流。

 


 附:批处理源代码

 

@echo off
title 根据MAC地址修改计算机名批处理,支持XP/Win7/Win8.1操作系统,Edit by foreverlx427
echo **************************************************************************** 
echo     温馨提示1:请根据自己的实际情况,按指定格式编辑本批处理后面的用户信息。 
echo     温馨提示2:如有安全类软件拦截,请允许运行。
echo     温馨提示3: win8.1系统请右键选择以管理员身份运行,否则会报错。
echo ****************************************************************************  
@ping 127.1 -n  4  >nul
::*************** 1.获取本机MAC地址,并在外置文本信息中找匹配项 ***************
cd /d %~dp0
for /f "tokens=1-4 delims=," %%i in ('getmac /v /fo csv') do find /i %%k %0 >nul &&set Ethernet=%%i&&set Adapter=%%j&&set MAC=%%k &&goto true 
echo 未找到匹配MAC项,本程序在5秒后退出&del a.txt   >nul&@ping 127.0.0.1 -n  5 >nul &exit
:true
::*************** 2.去掉MAC地址的空格和引号 ***************
set "MAC=%MAC: =%"
set MAC=%MAC:"=%
set Ethernet=%Ethernet:"=%
set Adapter=%Adapter:"=%
::  3MAC -%MAC%- Ethernet -%Ethernet%- Adapter -%Adapter%-
:: *************** 3.信息汇总 ***************
for /f "tokens=1-8" %%i in ('find /i "%mac%" %0') do set "name=%%m-%%n"&set "p=%%j%%k"&set "user=%%l" 
echo ****************************************************************************
echo  本机预设信息,5秒后自动应用修改,如有错误,请关闭本窗口手动修改    
echo ****************************************************************************                              
echo          计算机名:       %name% (当前名称:%computername%)
echo          计算机注释:     %p%
echo          用户名:         %user% (当前名称:%username%)
echo          网络名称         %Ethernet%
echo          适配器名称       %Adapter%
echo          本机MAC地址      %mac%
echo ****************************************************************************
:: *************** 4.修改配置 ***************
@ping 127.1 -n  5  >nul
echo 1.正在修改计算机注释……
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\LanmanServer\Parameters" /v "srvcomment" /t reg_sz /d %p% /f >nul &&echo 修改计算机注释1/2成功|| echo 修改计算机注释1/2失败 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v "srvcomment" /t reg_sz /d %p% /f >nul  &&echo 修改计算机注释2/2 成功|| echo 修改计算机注释2/2失败 
echo 2.正在修改计算机名……
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v "ComputerName" /t reg_sz /d %name% /f >nul  &&echo 修改计算机名1/4 成功|| echo 修改计算机名1/4 失败 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f  >nul  &&echo 修改计算机名2/4 成功|| echo 修改计算机名2/4  失败 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t reg_sz /d %name% /f    >nul  &&echo 修改计算机名3/4  成功|| echo 修改计算机名3/4 失败 
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul  &&echo 修改计算机名4/4  成功|| echo 警告:修改计算机名4/4 失败 &&echo 修改系统信息失败,请检查当前用户权限是否为管理员,若不是,请尝试以管理员身份运行;或者是否有安全程序阻止本批处理运行,如果是win8系统,记得在右键选择以管理员身份运行,请按任意键退出  &&pause>nul&&exit
echo 3.正在修改当前用户名%username%为预设用户名%user%……
wmic useraccount where name='%username%' call Rename %user%  >nul &&echo 修改用户名1/1 成功|| echo 修改用户名1/1 失败 
echo 4.正在修改当前用户名%user%的全名为%p%……
wmic useraccount where name='%user%' set FullName="%p%"   >nul &&echo 修改用户名全名1/1 成功|| echo 修改用户名全名1/1 失败 
echo 所有操作已经完成,10秒后自动退出,感谢你的使用,如有问题,请反馈至QQ群:342116629
@ping 127.1 -n  10 >nul&exit
::部门-i 子部门-j 姓名-k 工号-l 拼音-m 设备类别-n IP地址-o 标准MAC-p         标准MAC2-q
技术部 运维分部 小黑侠 SN000427 XiaoHeiXia DT 192.168.102.129 00-0C-29-9A-5C-C3 000C298919F0
技术部 运维分部 张三 SN000428 ZhangSan DT 192.168.102.130 00-0C-29-5B-E7-99 000C295BE799
技术部 运维分部 李四 SN000429 LiSi         DT 192.168.102.131 00-0C-29-97-F0-4A 000C2997F04A