好友
阅读权限10
听众
最后登录1970-1-1
|
Windows域控批量创建域用户,并授权组
对于没有开发能力的公司管理域控,这个脚本可以节省很多时间,避免出现的一些错误。
-
创建一个csv的模板文件
samid |
display |
ou-1 |
dc-1 |
dc-2 |
pwd |
dept |
group |
1 |
刘一 |
技术中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
2 |
刘二 |
测试中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
3 |
刘三 |
开发中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
4 |
刘四 |
开发中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
5 |
刘五 |
开发中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
6 |
刘六 |
测试中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
7 |
刘七 |
测试中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
8 |
刘八 |
技术中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
-
编写一个bat批处理
@echo off
echo 获取Administrator权限
cacls.exe "%SystemDrive%\System Volume Information" >nul 2>nul
if %errorlevel%==0 goto Admin
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
echo Set RequestUAC = CreateObject^("Shell.Application"^)>"%temp%\getadmin.vbs"
echo RequestUAC.ShellExecute "%~s0","","","runas",1 >>"%temp%\getadmin.vbs"
echo WScript.Quit >>"%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" /f
if exist "%temp%\getadmin.vbs" del /f /q "%temp%\getadmin.vbs"
exit
:Admin
echo 成功取得Administrator权限
for /f "skip=1 eol=; tokens=1-9 delims=," %%a in (G:\domin\domainuser.csv) do dsadd user "cn=%%b,OU=%%c,dc=%%d,dc=%%e" -samid "%%a" -upn "%%a@chenfan.com" -display "%%b" -ln "%%b" -pwd %%f -dept %%c
timeout /nobreak /t 3
for /f "skip=1 eol=; tokens=1-9 delims=," %%a in (G:\domin\domainuser.csv) do net group "Domain Admins" %%a /add
pause
以上代码大概的意思是,先获取管理员权限,然后循环读取刚刚创建的csv文件,并逐一复制创建账号,等等3秒后循环读取csv文件逐一授权域管理员权限。具体命令与命令参数如下:
-
skip=1 跳过第一行数据,也就是跳过标题
-
eol; 注释行的符号为;
-
tokens=1-9 每次提取的变量个数(可以往多了写,不影响的)
-
delims, 每个变量的分割符号是 ,
-
%%a in 引用 %%a 变量为第一列的值,%%b 则是第二列的值依次类推 ,in 后面的括号则是csv模板文件的路径地址
-
do 这后面跟的就是你需要循环执行的命令,跟其他的开发语言类似
-
"cn=%%b,OU=%%c,dc=%%d,dc=%%e" 这里一一对应模板中的二、三、四、五列中的值,cn你可以理解为你用户的显示名,ou则为组织单位(如果存在多级组织单位的则一次层级写多个ou,先小再大的顺序。例如你需要将你的用户创建在开发中心的开发组那么这里就需要写两个ou,顺序则是 ou=开发组,ou=开发中心 ),dc则为你的域名(例如我的域名是test.com ,那么写的格式则是dc=test,dc=com )
-
-samid 用户的登录名(Windows 2000以前版本格式)
-
-upn 用户登录名
-
-display 用户显示名称
-
-ln 用户的姓氏
-
-pwd 指定用户密码
-
-dept 用户组织中的部门
dsadd user 完整的命令参数可参考官方文档:点击前往查看
-
演示测试
我这里就批量创建两个账号做一个测试演示。
3.1 创建csv文件
samid |
display |
ou-1 |
dc-1 |
dc-2 |
pwd |
dept |
group |
11999 |
刘九 |
技术中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
11998 |
刘八 |
技术中心 |
test |
com |
12345678 |
研发部 |
Domain Admins |
3.2 双击运行bat批处理
3.3 创建后效果如下图,因另外一个账号没什么不同我就不一一截图了。参数不懂的可以看我发的图来对应起来。
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|