当前位置:   article > 正文

微软AD域控工具,批量添加用户、批量修改密码bat脚本_ad域 批量改密码

ad域 批量改密码

批量添加用户、批量修改密码的BAT脚本,根据自身环境更改实际AD域名。

列如:ABC.COM/财务部/ABC.COM就是你真实环境里的AD域名。

usersadd.csv 用户模板(ANSI编码),跟脚本存

放同一目录。usersadd.csv格式必须如图,文件名自己看脚本自己改,如果懂dsadd命令,可以自行修改脚本,比如添加电话号码、职位等等;

  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. mode con cols=120 lines=30 & color 3f
  3. set current_dir=%~dp0
  4. cd /d %current_dir%
  5. set UsersFile=usersadd.csv
  6. title 域控管理工具v1.2
  7. rem 判断是否以管理员运行
  8. net.exe session 1>NUL 2>NUL && ( goto 主菜单 ) || ( goto not_admin )
  9. :not_admin
  10. echo.
  11. echo.
  12. echo "*********请以管理员权限运行此脚本*********"
  13. echo.
  14. echo.
  15. pause
  16. exit
  17. :主菜单
  18. cls
  19. set menu1=
  20. rem usersadd.csv 必须是ANSI编码,usersadd.csv必须严格按模板文件来添加用户信息
  21. rem 脚本必须以管理员权限运行
  22. rem 脚本必须保存为ANSI编码
  23. echo.
  24. echo *************************************************************************************
  25. echo 当前脚本运行目录:%current_dir%
  26. echo.
  27. echo.
  28. echo ^*准备好usersadd.csv 用户模板(ANSI编码),跟脚本存放同一目录
  29. echo.
  30. echo.
  31. echo.
  32. echo [1] 检查域账号是否已经存在
  33. echo.
  34. echo [2] 批量修改域用户密码
  35. echo.
  36. echo [3] 批量添加域用户
  37. echo.
  38. echo [4] 退出
  39. echo.
  40. echo *************************************************************************************
  41. echo.
  42. set /p menu1=" 请输入你的选择1-4:"
  43. if "%menu1%" == "1" goto CheckUser
  44. if "%menu1%" == "2" goto UserChangePwd
  45. if "%menu1%" == "3" goto input_department
  46. if "%menu1%" == "4" goto :eof
  47. echo.
  48. echo ----选择无效,请重新选择....
  49. pause >nul
  50. goto 主菜单
  51. :批量添加域用户菜单
  52. cls
  53. set menu2=
  54. echo.
  55. echo ************************批量添加域用户***********************************************
  56. echo.
  57. echo ^*请确认OU部门,批量添加的域用户将存放在此OU下
  58. echo ^*: %NewDepartment%
  59. echo.
  60. echo ^*域用户密码必须符合密码复杂度
  61. echo.
  62. echo [1] 正式员工(有员工号)
  63. echo.
  64. echo [2] 外包人员(没有员工号)
  65. echo.
  66. echo [3] 返回
  67. echo.
  68. echo *************************************************************************************
  69. echo.
  70. echo.
  71. set /p menu2="请输入你的选择1-3:"
  72. if "%menu2%" == "1" goto regularemployee
  73. if "%menu2%" == "2" goto Noemployee
  74. if "%menu2%" == "3" goto 主菜单
  75. echo.
  76. echo ----选择无效,请重新选择...
  77. pause >nul
  78. goto 批量添加域用户菜单
  79. :input_department
  80. cls
  81. set InputDepartment=
  82. echo.
  83. echo ********************输入批量添加域用户的部门OU***************************************
  84. echo.
  85. echo 例如:ABC.COM/华南区/财务部/
  86. echo.
  87. echo 则输入:财务部
  88. echo.
  89. echo *************************************************************************************
  90. echo.
  91. set /P InputDepartment="----请输入部门OU :"
  92. if "%InputDepartment%"=="" (
  93. echo.
  94. echo "----请输入有效信息"
  95. pause >nul
  96. goto input_department )
  97. for /f "tokens=*" %%i in ('dsquery ou domainroot -name "%InputDepartment%"') do set Department=%%i
  98. if "!Department!"=="" (
  99. echo.
  100. echo 没有找到部门OU:%InputDepartment%
  101. pause >nul
  102. goto input_department ) else (
  103. set NewDepartment=%Department:~1,-1%
  104. echo.
  105. echo 搜索到OU:!NewDepartment!
  106. echo 请按任意键确认 )
  107. pause >nul
  108. goto 批量添加域用户菜单
  109. :regularemployee
  110. rem 正式员工批量开通域账号
  111. call :Usermuspwd
  112. if not exist %UsersFile% (
  113. echo.
  114. echo %UsersFile%模板文件不存在,请创建该文件
  115. echo 请按任意键返回...
  116. pause >nul
  117. goto 批量添加域用户菜单
  118. ) else (
  119. echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
  120. for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
  121. dsadd user "cn=%%c,%NewDepartment%" -samid %%d -upn %%d@ABC.COM -ln %%a -fn %%b -display %%c -pwd %%e -empid %%f -mustchpwd %muspwd% >nul 2>nul
  122. if not "!ERRORLEVEL!"=="0" ( echo %%d 添加失败 ) else ( echo %%d 添加成功 )
  123. )>>usersadd.log
  124. )
  125. echo "输出日志文件%~dp0usersadd.log"
  126. echo 添加用户完毕,请按任意键退出...
  127. pause >nul
  128. exit
  129. :Noemployee
  130. rem 外包人员批量开通域账号
  131. call :Usermuspwd
  132. if not exist %UsersFile% (
  133. echo.
  134. echo %UsersFile%模板文件不存在,请创建该文件
  135. echo 请按任意键返回...
  136. pause >nul
  137. goto 批量添加域用户菜单
  138. ) else (
  139. echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
  140. for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
  141. dsadd user "cn=%%c,%NewDepartment%" -samid %%d -upn %%d@ABC.COM -ln %%a -fn %%b -display %%c -pwd %%e -mustchpwd %muspwd% >nul 2>nul
  142. if not "!ERRORLEVEL!"=="0" ( echo %%d 添加失败 ) else ( echo %%d 添加成功 )
  143. )>>usersadd.log
  144. )
  145. echo "输出日志文件%~dp0usersadd.log"
  146. echo 添加用户完毕,请按任意键退出...
  147. pause >nul
  148. exit
  149. :CheckUser
  150. rem 检查域账号是否已经存在
  151. if not exist %UsersFile% (
  152. echo %UsersFile%模板文件不存在,请创建该文件!
  153. pause
  154. goto 主菜单
  155. ) else (
  156. echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
  157. for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do dsquery user -samid %%d -o samid >>已有域账号.txt
  158. )
  159. echo.
  160. echo 检查完毕,输出"%~dp0已有域账号.txt"
  161. echo 请按任意键退出...
  162. pause >nul
  163. exit
  164. :UserChangePwd
  165. rem 批量修改域用户密码
  166. call :Usermuspwd
  167. if not exist %UsersFile% (
  168. echo %UsersFile%模板文件不存在,请创建该文件!
  169. echo 请按任意键返回...
  170. pause >nul
  171. goto 主菜单
  172. ) else (
  173. echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
  174. for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
  175. dsquery user -samid %%d | dsmod user -pwd %%e -mustchpwd %muspwd% >nul 2>nul
  176. if not "!ERRORLEVEL!"=="0" ( echo %%d 修改失败 ) else ( echo %%d 修改成功 )
  177. )>>ChangePwd.log
  178. )
  179. echo.
  180. echo 检查完毕,输出"%~dp0ChangePwd.log"
  181. echo 请按任意键退出...
  182. pause >nul
  183. exit
  184. :Usermuspwd
  185. rem 请确认用户下次登陆时[是否]必须更改密码
  186. cls
  187. set muspwd=
  188. set menu3=
  189. echo.
  190. echo.
  191. echo *********强制用户下次登陆时[是否]必须更改密码*********
  192. echo.
  193. echo [1] 是 Yes
  194. echo.
  195. echo [2] 否 No
  196. echo.
  197. echo ******************************************************
  198. echo.
  199. set /p menu3="请输入你的选择1-2:"
  200. if "%menu3%" == "1" set muspwd=yes && goto :eof
  201. if "%menu3%" == "2" set muspwd=no && goto :eof
  202. echo.
  203. echo ----选择无效,请重新选择...
  204. pause >nul
  205. goto Usermuspwd

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/440755
推荐阅读
相关标签
  

闽ICP备14008679号