使用批处理命令向win server AD域中批量添加用户实现
使用批处理命令向win server AD域中批量添加用户实现
2016年12月09日 15:10:38Charles Ren阅读数:23043
版权声明:本文虽为博主原创文章,但是秉承学习开放原则,欢迎转载学习使用。 https://blog.csdn.net/chongbin007/article/details/53519073
因为要用个批处理命令在Windows Server里面批量添加域用户,所以需要使用批处理命令。
我这篇是纯新手教程,在百度上搜了一些批处理命令感觉属于进阶教程,研究了两天才完成我要完成的目标。
下面从头说一下:
批处理bat文档建立。
直接新建一个TXT文档然后把后缀名改成.bat就可以了,就是一个bat文档,双击可以运行。
注意:bat文件在哪,他的运行路径就在哪。
添加成功的用户
%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4%E5%90%91win%20server%20AD%E5%9F%9F%E4%B8%AD%E6%89%B9%E9%87%8F%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E5%AE%9E%E7%8E%B0.assets/0.986581007574941.png第一种方式:命令行传参添加
来源: https://blog.csdn.net/chongbin007/article/details/53519073/
dsadd user "cn=%1, ou=RadiusUser,dc=win218, dc=com" -upn %2@win218.com -samid %2 -pwd %3 -display %4 -dept %5 -company %6 -office %7 -tel %8 -disabled no
1
下面对这条语句进行分析: dsadd user :向域中添加用户 cn=%1 :用户姓名为cn第一个参数%1这个参数是用户在运行命令时需要输入的第一个参数 ou=RadiusUser :存储文件夹的名称 dc=win218, dc=com :域名称 -upn %2@win218.com :这个就是登录名添加在域之前的 -samid %2 :这个其实也是登录名,只不过版本不同,所以他和上面的参数保持一致 -pwd %3 :登录密码 -display %4 -dept %5 -company %6 -office %7 -tel %8 :这个就是里面的描述信息了,放在一块说,依次是:显示名称,部门,公司,办公室,电话。 -disabled no :直接可用的账户,如果是yes需要解锁账户才能使用。
将以上命令设置为一个bat文件然后可以运行cmd进行调用这个bat文件。因为需要传入参数,所以不能直接点击bat文件使用。以下是效果图:
%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4%E5%90%91win%20server%20AD%E5%9F%9F%E4%B8%AD%E6%89%B9%E9%87%8F%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E5%AE%9E%E7%8E%B0.assets/0.3108341075881704.png这里首先要进入到你的bat所在路径,因为我的是2.bat在桌面上所以进入到桌面路径,然后第一个参数是你的bat名字,就是你要运行哪个文件,然后依次输入参数。即可运行。成功添加用户。
我为何要这么做因为另一个人在网站上来添加用户,每次调用我的bat传入参数就可以添加用户,他不需要去AD域中一个个添加很方便。
第二种方式:读取文件添加用户
我是参考这篇文章WIN2008r2 AD用户批量导入
进行的操作,首先新建一个CSV格式的文件
%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4%E5%90%91win%20server%20AD%E5%9F%9F%E4%B8%AD%E6%89%B9%E9%87%8F%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E5%AE%9E%E7%8E%B0.assets/0.47701300719317064.png下面进行bat文件的创建
首先我们可以看一下如何查看csv文件在命令框显示
echo 查看文件信息
for /f "tokens=1-7 delims=," %%a in (C:\Users\Administrator.WIN-LS3G942M36M\Desktop\test.csv) do @echo %%a %%b %%c %%d %%e %%f %%g
pause
1
2
3
echo表示在命令行要显示的内容跟java中的system.out差不多pause表示暂停,如果不pause,命令行直接就运行完消失了。
运行之后效果:
%E4%BD%BF%E7%94%A8%E6%89%B9%E5%A4%84%E7%90%86%E5%91%BD%E4%BB%A4%E5%90%91win%20server%20AD%E5%9F%9F%E4%B8%AD%E6%89%B9%E9%87%8F%E6%B7%BB%E5%8A%A0%E7%94%A8%E6%88%B7%E5%AE%9E%E7%8E%B0.assets/0.6656015872409862.pngfor /f "skip=1 eol=;tokens=1-7 delims=," %%a in (C:\Users\Administrator.WIN-LS3G942M36M\Desktop\test.csv) do dsadd user "cn=%%a,ou=RadiusUser,dc=win218, dc=com" -upn %%b@win218.com -samid %%b -pwd %%c -display %%a -dept %%f -company %%e -office %%f -tel %%g -disabled no
1
skip=1 eol=;tokens=1-7 delims=, :表示跳过文本的第一行,因为第一行是标题。tokens表示一共有七个关键字 %%a in (C:\Users\Administrator.WIN-LS3G942M36M\Desktop\test.csv):两个%是因为在批处理命令中带字母的参数需要有两个百分号,而命令行中只需要一个。括号中的就是要读取的文件路径。 do dsadd user “cn=%%a,ou=RadiusUser,dc=win218, dc=com” :添加用户,参数a,b,c分别对应着文本中的参数位置。
用这种方式只需要在excel文件中输入你要添加的用户,然后执行bat文件一次性就可以批量添加用户了。
以上两种方式均可以批量添加用户适用于不同的情况。