Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9267674
  • 博文数量: 1669
  • 博客积分: 16831
  • 博客等级: 上将
  • 技术积分: 12594
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-25 07:23
个人简介

柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!

文章分类

全部博文(1669)

文章存档

2023年(4)

2022年(1)

2021年(10)

2020年(24)

2019年(4)

2018年(19)

2017年(66)

2016年(60)

2015年(49)

2014年(201)

2013年(221)

2012年(638)

2011年(372)

分类: WINDOWS

2017-11-02 13:22:33

使用批处理命令向win server AD域中批量添加用户实现

原创 2016年12月09日 15:10:38
  • 6066

因为要用个批处理命令在Windows Server里面批量添加域用户,所以需要使用批处理命令。 
我这篇是纯新手教程,在百度上搜了一些批处理命令感觉属于进阶教程,研究了两天才完成我要完成的目标。 
下面从头说一下:

批处理bat文档建立。

直接新建一个TXT文档然后把后缀名改成.bat就可以了,就是一个bat文档,双击可以运行。 
注意:bat文件在哪,他的运行路径就在哪。 
添加成功的用户 

第一种方式:命令行传参添加

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文件使用。以下是效果图: 
 
这里首先要进入到你的bat所在路径,因为我的是2.bat在桌面上所以进入到桌面路径,然后第一个参数是你的bat名字,就是你要运行哪个文件,然后依次输入参数。即可运行。成功添加用户。 
我为何要这么做因为另一个人在网站上来添加用户,每次调用我的bat传入参数就可以添加用户,他不需要去AD域中一个个添加很方便。

第二种方式:读取文件添加用户

我是参考这篇文章WIN2008r2 AD用户批量导入 
进行的操作,首先新建一个CSV格式的文件 
 
下面进行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,命令行直接就运行完消失了。 
运行之后效果: 

for /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文件一次性就可以批量添加用户了。

以上两种方式均可以批量添加用户适用于不同的情况。







    对于如何批量创建用户,网络上已经有不少相关的贴子教程,但大多都是使用csvde及ldifde命令创建的贴子文章,经过测试,发现使用这种方法创建用户并不方便,步骤多而且较为复杂。那么有没有一种既简单又快捷的方法呢?有········ 那就是DSADD命令,直接运行批处理即可实现一键批量创建。当然,创建虽方便快捷,但前期的信息收集也是需要时间的,下面就为大家介绍下dsadd的使用。

       首先在使用DSADD之前我们先来了解一下LDAP协议,目录服务使用LDAP这个公用协议来查找和定位对象,LDAP可以描述对象在那个域,对象在那个OU,对象自己的名字。通常它的语法为“OU=OU对象,CN=非域非OU对象,DC=域对象”。比如:CN=xd,OU=Sales,OU=gongsi,DC=china,DC=ds.

接下来我们来看一看DSADD的语法:
dsadd computer - 将计算机添加到目录。
dsadd contact - 将联系人添加到目录。
dsadd group - 将组添加到目录。
dsadd ou - 将组织单位添加到目录。
dsadd user - 将用户添加到目录。

在这里,我只用到了:dsadd ou - 将组织单位添加到目录;dsadd user - 将用户添加到目录这两个命令。

案例需求:
       某公司网管为集中规范管理用户,将公司网络从原来的工作组环境升级至域网络,需要新增大量用户信息,这些信息要求包括:部门、电话、职务、电子邮件等。

我们先来了解下dsadd命令的可使用参数释议:
参数
UserDN
必需。指定要添加的用户的可分辨名称。如果省略可分辨名称,则将从标准输入 (stdin) 中获取该名称。
-samid SAMName
指定 SAM 名称作为该用户的唯一 SAM 帐户名(例如,Linda)。如果未指定,dsadd 将尝试使用 UserDN 的公用名 (CN) 值的至多前 20 个字符创建 SAM 帐户名。
-upn UPN
指定要添加的用户的用户主体名称(例如,)。
-fn FirstName
指定要添加的用户的名字。
-mi Initial
指定要添加的用户的中间名首字母。
-ln LastName
指定要添加的用户的姓氏。
-display DisplayName
指定要添加的用户的显示名。
-empid EmployeeID
指定要添加的用户的雇员 ID。
-pwd {Password | *}
指定将用户密码设置为 Password 或 *。如果设置为 *,将提示您输入用户密码。
-desc Description
指定要添加的用户的描述。
-memberof GroupDN ...
指定希望用户加入的组的可分辨名称。
-office Office
指定要添加的用户的办公室位置。
-tel PhoneNumber
指定要添加的用户的电话号码。
-email Email
指定要添加的用户的电子邮件地址。
-hometel HomePhoneNumber
指定要添加的用户的家庭电话号码。
-pager PagerNumber
指定要添加的用户的寻呼机号码。
-mobile CellPhoneNumber
指定要添加的用户的移动电话号码。
-fax FaxNumber
指定要添加的用户的传真号码。
-iptel IPPhoneNumber
指定要添加的用户的 IP 电话号码。
-webpg WebPage
指定要添加的用户的 Web 页的 URL。
-title Title
指定要添加的用户的称谓。
-dept Department
指定要添加的用户的部门。
-company Company
指定要添加的用户的公司信息。
-mgr ManagerDN
指定要添加的用户的管理器的可分辨名称。
-hmdir HomeDirectory
指定要添加的用户的主目录位置。如果 HomeDirectory 是作为通用命名约定 (UNC) 路径给出,则必须使用 -hmdrv 参数指定要映射到此路径的驱动器号。
-hmdrv DriveLetter:
指定要添加的用户的主目录驱动器号(例如,E:)。
-profile ProfilePath
指定要添加的用户的配置文件路径。
-loscr ScriptPath
指定要添加的用户的登录脚本路径。
-mustchpwd {yes | no}
指定用户是否必须在下次登录时更改其密码(yes 必须更改,no 不必更改)。默认情况下,用户不必更改密码 (no)。
-canchpwd {yes | no}
指定用户是否可以更改其密码(yes 可以更改,no 根本不能更改)。默认情况下,允许用户更改密码 (yes)。如果 -mustchpwd 参数的值为 yes,则该参数的值必须为 yes。
-reversiblepwd {yes | no}
指定是否应使用可逆加密来存储用户密码(yes 表示应该,no 表示不应该)。默认情况下,用户不能使用可逆加密 (no)。
-pwdneverexpires {yes | no}
指定用户密码是否永不过期(yes 表示是,no 表示不是)。默认情况下,用户密码会过期 (no)。
-acctexpires NumberOfDays
指定从今天算起用户帐户将到期的天数。0 值表示将今天的结束时间设置为到期时间。正值表示将将来的时间设置为到期时间。负值表示将以前的时间设置为到期时间。值 never 将帐户设置为永不过期。例如,0 值表示该帐户在今天结束时过期。值 -5 表示该帐户 5 天前就已经到期,并将以前的时间设置为到期日期。值 5 表示该帐户将在 5 天后到期。
-disabled {yes | no}
指定是否禁用用户帐户登录(yes 禁用登录,no 允许登录)。默认情况下,启用用户帐户登录 (no)。
{-s Server | -d Domain}
连接到指定的远程服务器或域。默认情况下,计算机与登录域中的域控制器相连接。
-u UserName
指定用户要用于登录到远程服务器的用户名。默认情况下,-u 使用用户登录时的用户名。您可以使用下列任一格式指定用户名:
用户名(例如 Linda)
域\用户名(例如 widgets\Linda)
用户主体名称 (UPN)(例如 )
-p {Password | *}
指定使用密码或 * 登录到远程服务器。如果键入 *,将提示您输入密码。
-q
将所有输出降低为标准输出(安静模式)。

       从以上释议可以得知,如果我要创建用户名为林坚、属于总经办部门、职务为总经理、电话分号为6168、指定电子邮件帐号为、用户在下次登录时不需要更改密码、密码为不过期、帐户状态为启用、密码为123.com(注,密码必需符合微软要求的复杂程度,即大、小写字母、数字、符号其中的三种即可)。

即完整的批处理写法为:(在空白记事本里输入)
    dsadd user cn=林坚,ou=总经办,dc=mj0763,dc=com -upn  -pwd 123.com -display 林坚 -fn 坚 -ln 林 -dept 总经办 -title 总经理 -tel 6181 -email  -mustchpwd no -pwdneverexpires yes -disabled no -samid Darren.Lam

       其他用户内容即按照这个模板来进行修改,完成后别存为dsadd user.bat 文件即可,如下图:
 


        当然,为了规范管理,一般都会创建不同的OU来存放不同的用户,这时,你需要先导入OU,然后再导入用户,上图也包括创建OU的命令编写。

       最后,把编写好的TXT文档另存为或更改后缀名为.bat,然后双击运行即可。。。。。(后面的图省略)
       具体个中的简单程度,速度与效率,绝对会比csvde及ldifde容易兼高效,心动的朋友们可以放心的去干吧,你会发觉,一键创建原来就是这么的简单。   
阅读(4488) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~