赞
踩
批量添加用户、批量修改密码的BAT脚本,根据自身环境更改实际AD域名。
列如:ABC.COM/财务部/,ABC.COM就是你真实环境里的AD域名。
usersadd.csv 用户模板(ANSI编码),跟脚本存
放同一目录。usersadd.csv格式必须如图,文件名自己看脚本自己改,如果懂dsadd命令,可以自行修改脚本,比如添加电话号码、职位等等;
- @echo off & setlocal ENABLEDELAYEDEXPANSION
- mode con cols=120 lines=30 & color 3f
- set current_dir=%~dp0
- cd /d %current_dir%
- set UsersFile=usersadd.csv
-
- title 域控管理工具v1.2
- rem 判断是否以管理员运行
- net.exe session 1>NUL 2>NUL && ( goto 主菜单 ) || ( goto not_admin )
- :not_admin
- echo.
- echo.
- echo "*********请以管理员权限运行此脚本*********"
- echo.
- echo.
- pause
- exit
-
- :主菜单
- cls
- set menu1=
- rem usersadd.csv 必须是ANSI编码,usersadd.csv必须严格按模板文件来添加用户信息
- rem 脚本必须以管理员权限运行
- rem 脚本必须保存为ANSI编码
- echo.
- echo *************************************************************************************
- echo 当前脚本运行目录:%current_dir%
- echo.
- echo.
- echo ^*准备好usersadd.csv 用户模板(ANSI编码),跟脚本存放同一目录
- echo.
- echo.
- echo.
- echo [1] 检查域账号是否已经存在
- echo.
- echo [2] 批量修改域用户密码
- echo.
- echo [3] 批量添加域用户
- echo.
- echo [4] 退出
- echo.
- echo *************************************************************************************
- echo.
- set /p menu1=" 请输入你的选择1-4:"
- if "%menu1%" == "1" goto CheckUser
- if "%menu1%" == "2" goto UserChangePwd
- if "%menu1%" == "3" goto input_department
- if "%menu1%" == "4" goto :eof
- echo.
- echo ----选择无效,请重新选择....
- pause >nul
- goto 主菜单
-
- :批量添加域用户菜单
- cls
- set menu2=
- echo.
- echo ************************批量添加域用户***********************************************
- echo.
- echo ^*请确认OU部门,批量添加的域用户将存放在此OU下
- echo ^*: %NewDepartment%
- echo.
- echo ^*域用户密码必须符合密码复杂度
- echo.
- echo [1] 正式员工(有员工号)
- echo.
- echo [2] 外包人员(没有员工号)
- echo.
- echo [3] 返回
- echo.
- echo *************************************************************************************
- echo.
- echo.
- set /p menu2="请输入你的选择1-3:"
- if "%menu2%" == "1" goto regularemployee
- if "%menu2%" == "2" goto Noemployee
- if "%menu2%" == "3" goto 主菜单
- echo.
- echo ----选择无效,请重新选择...
- pause >nul
- goto 批量添加域用户菜单
-
- :input_department
- cls
- set InputDepartment=
- echo.
- echo ********************输入批量添加域用户的部门OU***************************************
- echo.
- echo 例如:ABC.COM/华南区/财务部/
- echo.
- echo 则输入:财务部
- echo.
- echo *************************************************************************************
- echo.
- set /P InputDepartment="----请输入部门OU :"
- if "%InputDepartment%"=="" (
- echo.
- echo "----请输入有效信息"
- pause >nul
- goto input_department )
- for /f "tokens=*" %%i in ('dsquery ou domainroot -name "%InputDepartment%"') do set Department=%%i
- if "!Department!"=="" (
- echo.
- echo 没有找到部门OU:%InputDepartment%
- pause >nul
- goto input_department ) else (
- set NewDepartment=%Department:~1,-1%
- echo.
- echo 搜索到OU:!NewDepartment!
- echo 请按任意键确认 )
- pause >nul
- goto 批量添加域用户菜单
-
- :regularemployee
- rem 正式员工批量开通域账号
- call :Usermuspwd
- if not exist %UsersFile% (
- echo.
- echo %UsersFile%模板文件不存在,请创建该文件
- echo 请按任意键返回...
- pause >nul
- goto 批量添加域用户菜单
- ) else (
- echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
- for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
- 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
- if not "!ERRORLEVEL!"=="0" ( echo %%d 添加失败 ) else ( echo %%d 添加成功 )
- )>>usersadd.log
- )
- echo "输出日志文件%~dp0usersadd.log"
- echo 添加用户完毕,请按任意键退出...
- pause >nul
- exit
-
- :Noemployee
- rem 外包人员批量开通域账号
- call :Usermuspwd
- if not exist %UsersFile% (
- echo.
- echo %UsersFile%模板文件不存在,请创建该文件
- echo 请按任意键返回...
- pause >nul
- goto 批量添加域用户菜单
- ) else (
- echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
- for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
- dsadd user "cn=%%c,%NewDepartment%" -samid %%d -upn %%d@ABC.COM -ln %%a -fn %%b -display %%c -pwd %%e -mustchpwd %muspwd% >nul 2>nul
- if not "!ERRORLEVEL!"=="0" ( echo %%d 添加失败 ) else ( echo %%d 添加成功 )
- )>>usersadd.log
- )
- echo "输出日志文件%~dp0usersadd.log"
- echo 添加用户完毕,请按任意键退出...
- pause >nul
- exit
-
-
- :CheckUser
- rem 检查域账号是否已经存在
- if not exist %UsersFile% (
- echo %UsersFile%模板文件不存在,请创建该文件!
- pause
- goto 主菜单
- ) else (
- echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
- for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do dsquery user -samid %%d -o samid >>已有域账号.txt
- )
- echo.
- echo 检查完毕,输出"%~dp0已有域账号.txt"
- echo 请按任意键退出...
- pause >nul
- exit
-
- :UserChangePwd
- rem 批量修改域用户密码
- call :Usermuspwd
- if not exist %UsersFile% (
- echo %UsersFile%模板文件不存在,请创建该文件!
- echo 请按任意键返回...
- pause >nul
- goto 主菜单
- ) else (
- echo "正在运行...请耐心等待,你可以Ctrl+c 中断脚本运行"
- for /f "skip=1 tokens=1-6 delims=," %%a in (%UsersFile%) do (
- dsquery user -samid %%d | dsmod user -pwd %%e -mustchpwd %muspwd% >nul 2>nul
- if not "!ERRORLEVEL!"=="0" ( echo %%d 修改失败 ) else ( echo %%d 修改成功 )
- )>>ChangePwd.log
- )
- echo.
- echo 检查完毕,输出"%~dp0ChangePwd.log"
- echo 请按任意键退出...
- pause >nul
- exit
-
- :Usermuspwd
- rem 请确认用户下次登陆时[是否]必须更改密码
- cls
- set muspwd=
- set menu3=
- echo.
- echo.
- echo *********强制用户下次登陆时[是否]必须更改密码*********
- echo.
- echo [1] 是 Yes
- echo.
- echo [2] 否 No
- echo.
- echo ******************************************************
- echo.
- set /p menu3="请输入你的选择1-2:"
- if "%menu3%" == "1" set muspwd=yes && goto :eof
- if "%menu3%" == "2" set muspwd=no && goto :eof
- echo.
- echo ----选择无效,请重新选择...
- pause >nul
- goto Usermuspwd
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。