Board logo

标题: [分享]半自动加域的批处理,请大家指正 [打印本页]

作者: 喀喇喀喇    时间: 2010-2-1 12:58     标题: [分享]半自动加域的批处理,请大家指正

感谢论坛的各位高手,有了你们的成果俺才能这么顺利的弄完这段脚本,脚本实现的功能如下:

1、检测必要的计算机服务
2、按照规范更改计算机名称
3、修改计算机的hosts文件
4、修改计算机的dns
5、重启计算机,并在重启后执行下一步脚本
6、选择ou并加入域
7、将域用户加入到本地管理员组
8、重启微机完成全部工作

代码如下

join.bat

  1. @ECHO off
  2. color 4E
  3. mode con: cols=75 lines=35
  4. title    ◣ 加域脚本 欢迎指正 ◢
  5. ECHO                       ╭────────────────╮
  6. ECHO                      │    ★ 检 查 计 算 机 服 务 ★    │
  7. ECHO                      ╰─────────────────╯
  8. ECHO ─────────────────────────────────────
  9. ECHO 开始检测并启动必要的系统服务.....
  10. sc config LmHosts start= AUTO
  11. net start "TCP/IP NetBIOS Helper"
  12. sc config Browser start= AUTO
  13. net start "Computer Browser"
  14. sc config Winmgmt start= AUTO
  15. net start "Windows Management Instrumentation"
  16. sc config LanmanServer start= AUTO
  17. net start "Server"
  18. sc config LanmanWorkstation start= AUTO
  19. net start "Workstation"
  20. ECHO.
  21. ECHO 服务检测和启动完毕,按任意键进入下一步操作......
  22. pause>nul
  23. cls
  24. ECHO.
  25. ECHO                       ╭────────────────╮
  26. ECHO                      │    ★ 修 改 计 算 机 名 称 ★    │
  27. ECHO                      ╰─────────────────╯
  28. ECHO ─────────────────────────────────────
  29. ECHO.
  30. ECHO 计算机名称的格式为:
  31. ECHO 单位简称-部门编码-用户名或岗位名称的简拼
  32. ECHO.
  33. ECHO ─────────────────────────────────────
  34. ECHO.
  35. set /p name=请输您的计算机名:
  36. reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  37. reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  38. reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  39. reg add "HKEY_LOCAL_MACHINE\System\ControlSet001\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  40. reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  41. reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  42. reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  43. reg add "HKEY_LOCAL_MACHINE\System\ControlSet002\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  44. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  45. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  46. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  47. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  48. ECHO.
  49. ECHO 修改计算机名完毕,按任意键将进行下一步工作......
  50. pause>nul
  51. cls
  52. ECHO.
  53. ECHO                       ╭────────────────╮
  54. ECHO                      │     ★ 修改计算机HOSTS文件 ★    │
  55. ECHO                      ╰─────────────────╯
  56. ECHO ─────────────────────────────────────
  57. ECHO.
  58. ECHO 修改之前务必关闭360安全卫士以及暂停其他杀毒或者防护软件......
  59. ECHO WIN7和Vista用户请关闭UAC......
  60. ECHO 开始修改计算机HOSTS文件......
  61. ECHO.
  62. ECHO ─────────────────────────────────────
  63. copy %windir%\system32\drivers\etc\hosts %windir%\system32\drivers\etc\hosts.bak
  64. ECHO ------------DC服务器Hosts---------- >> %windir%\system32\drivers\etc\hosts
  65. ECHO 172.22.16.20   hnsd.com.cn >> %windir%\system32\drivers\etc\hosts
  66. ECHO 172.22.16.20   hnsd-11-001.hnsd.com.cn >> %windir%\system32\drivers\etc\hosts
  67. ECHO 172.22.16.20   hnsd-11-001 >> %windir%\system32\drivers\etc\hosts
  68. ECHO ------------DC服务器Hosts---------- >> %windir%\system32\drivers\etc\hosts
  69. ECHO.
  70. ECHO 修改计算机HOSTS文件完成,按任意键进入下一步操作......
  71. pause>nul
  72. cls
  73. ECHO.
  74. ECHO                       ╭────────────────╮
  75. ECHO                      │    ★ 修 改 计 算 机 D N S ★    │
  76. ECHO                      ╰─────────────────╯
  77. ECHO ─────────────────────────────────────
  78. ECHO.
  79. for /f "tokens=1,2* delims=_" %%a in ('getmac') do (
  80.   set "AdapterID=%%b"
  81. )
  82. set "KeyName=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\%AdapterID: =%"
  83. set "ValueName=NameServer"
  84. set "Data=172.22.16.20"
  85. REG ADD %KeyName% /v %ValueName% /t REG_SZ /d %Data% /f
  86. ECHO 修改计算机DNS完毕,按任意键将进行下一步工作......
  87. pause>nul
  88. cls
  89. ECHO.
  90. ECHO                       ╭────────────────╮
  91. ECHO                      │    ★ 进行重启前的必要设置 ★    │
  92. ECHO                      ╰─────────────────╯
  93. ECHO ─────────────────────────────────────
  94. ECHO.
  95. copy netdom.exe c:\windows /y
  96. copy join2.bat c:\windows /y
  97. copy netapi32.dll c:\windows /y
  98. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /v join2 /t reg_sz /d "c:\windows\join2.bat" /f >nul
  99. ECHO.
  100. ECHO 设置完毕,按任意键将重启您的计算机......
  101. pause>nul
  102. shutdown.exe -r -t 0
复制代码

作者: 喀喇喀喇    时间: 2010-2-1 13:00     标题: 继续脚本

join2.bat

  1. @ECHO off
  2. color 4E
  3. mode con: cols=75 lines=35
  4. title    ◣ 加域脚本 欢迎指正◢
  5. ECHO.
  6. ECHO     ╭────────────────╮
  7. ECHO    │   ★ 选 择 OU 并 开 始 加 域 ★  │
  8. ECHO     ╰─────────────────╯
  9. ECHO.
  10. ECHO ─────────────────────────────────────
  11. ECHO.
  12. ECHO  1.厂领导          2.助理总师          3.办公室          4.纪监
  13. ECHO.
  14. ECHO  5.审计办          6.工会              7.政工部          8.公安科
  15. ECHO.
  16. ECHO  9.人事部          10.教培中心         11. 财务部        12.企划部
  17. ECHO.
  18. ECHO  13.煤质监督中心   14.燃料供应部       15.生产部         16.安监部
  19. ECHO.
  20. ECHO  17.运调科         18.运行部           19.运营公司       20.工程建设处
  21. ECHO.
  22. ECHO  21.检修公司       22.锅炉检修队       23.汽机检修队     24.电热检修队
  23. ECHO.
  24. ECHO  25.综合服务队     26.燃料部           27.物资供应部     28.集团公司
  25. ECHO.
  26. ECHO  29.集团综合管理部 30.商贸公司         31.建材公司       32.房地产开发
  27. ECHO.
  28. ECHO  33.铝塑管业公司   34.实业发展中心 35.信通公司       36.热力
  29. ECHO.
  30. ECHO  37.物业管理中心   38.社区管理中心
  31. ECHO.
  32. ECHO ─────────────────────────────────────
  33. ECHO.
  34. set OU=
  35. set/p OU=请输入上面OU的序号并回车:
  36. if %OU% EQU 1 (set OUName=CLD)
  37. if %OU% EQU 2 (set OUName=ZLZS)
  38. if %OU% EQU 3 (set OUName=BGS)
  39. if %OU% EQU 4 (set OUName=JJ)
  40. if %OU% EQU 5 (set OUName=SJB)
  41. if %OU% EQU 6 (set OUName=GH)
  42. if %OU% EQU 7 (set OUName=ZGB)
  43. if %OU% EQU 8 (set OUName=GAK)
  44. if %OU% EQU 9 (set OUName=RSB)
  45. if %OU% EQU 10 (set OUName=JPZX)
  46. if %OU% EQU 11 (set OUName=CWB)
  47. if %OU% EQU 12 (set OUName=QHB)
  48. if %OU% EQU 13 (set OUName=MZJDZX)
  49. if %OU% EQU 14 (set OUName=RLGYB)
  50. if %OU% EQU 15 (set OUName=SCB)
  51. if %OU% EQU 16 (set OUName=AJB)
  52. if %OU% EQU 17 (set OUName=YDK)
  53. if %OU% EQU 18 (set OUName=YXB)
  54. if %OU% EQU 19 (set OUName=YYGS)
  55. if %OU% EQU 20 (set OUName=GCJSC)
  56. if %OU% EQU 21 (set OUName=JXGS)
  57. if %OU% EQU 22 (set OUName=GLJXD)
  58. if %OU% EQU 23 (set OUName=QJJXD)
  59. if %OU% EQU 24 (set OUName=DRJXD)
  60. if %OU% EQU 25 (set OUName=ZHFWD)
  61. if %OU% EQU 26 (set OUName=RLB)
  62. if %OU% EQU 27 (set OUName=WZGYB)
  63. if %OU% EQU 28 (set OUName=JTGS)
  64. if %OU% EQU 29 (set OUName=JTZHGLB)
  65. if %OU% EQU 30 (set OUName=SMGS)
  66. if %OU% EQU 31 (set OUName=JCGS)
  67. if %OU% EQU 32 (set OUName=FDCKFGS)
  68. if %OU% EQU 33 (set OUName=LSGYGS)
  69. if %OU% EQU 34 (set OUName=HTSYFZZX)
  70. if %OU% EQU 35 (set OUName=XTGS)
  71. if %OU% EQU 36 (set OUName=HTRL)
  72. if %OU% EQU 37 (set OUName=WYGLZX)
  73. if %OU% EQU 38 (set OUName=SQGLZX)
  74. netdom join %computername% /Domain:hnsd.com.cn\hnsd-11-001 /ou:ou=%OUName%,ou="ht",ou="hnsd",dc=hnsd,dc=com,dc=cn /Userd:hnsd\joindomain /Passwordd:Hpi123
  75. pause
  76. cls
  77. ECHO.
  78. ECHO                       ╭────────────────╮
  79. ECHO                      │    ★ 将用户加入本地管理组 ★    │
  80. ECHO                      ╰─────────────────╯
  81. ECHO ─────────────────────────────────────
  82. ECHO.
  83. ECHO.
  84. set username=
  85. set/p username=请输入加入Administrators组的用户名:
  86. net localgroup "Administrators" hnsd\%username% /add
  87. ECHO.
  88. ECHO 将用户加入本地管理组工作完成......
  89. pause
  90. cls
  91. ECHO.
  92. ECHO.
  93. ECHO 最后一步啦!按任意键重启计算机并登陆域!
  94. pause>nul
  95. shutdown.exe -r -t 10
复制代码


至此重启后登陆域成功!完成全部工作
作者: Batcher    时间: 2010-2-1 21:20     标题: 回复 1楼 的帖子

1、用户输入的计算机名可能包含空格,%name%是否需要加上双引号?
2、是否考虑给shutdown命令加上/f开关?
作者: Batcher    时间: 2010-2-1 21:22     标题: 回复 2楼 的帖子

几十个if并排着写会影响代码效率,是否考虑改成如下格式?
  1. if ... (
  2.     xxx
  3. ) else if ... (
  4.     xxx
  5. ) else ... (
  6.     xxx
  7. )
复制代码

作者: 喀喇喀喇    时间: 2010-2-2 07:57

确实,应该给shutdown 加上-f的开关的,呵呵,谢谢老大提醒
用户名这里因为我们加域的计算机名称都是有规范,没有空格之类的所以没有加引号,需要的朋友可以自行改动一下

if确实影响效率了,呵呵,感谢老大,按您说的改了下,执行的效率提高了一些,多谢!呵呵
作者: killer2014    时间: 2014-6-25 23:20

加域这个动作似乎不能完成啊,哪位大侠可以指点一下呢 ?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2