设为首页 收藏本站
查看: 610|回复: 0

Windows 2003/08域用户帐户的导出/导入

[复制链接]

尚未签到

发表于 2015-5-3 10:21:24 | 显示全部楼层 |阅读模式
作为网管,有时我们需要批量地向AD域中添加用户帐户,这些用户帐户既有一些相同的属性,又有一些不同属性。如果逐个添加、设置的话,十分地麻烦。一般来说,如果不超 过10个,我们可利用AD用户帐户复制来实现。如果再多的话,我们就应该考虑使用csvde.exe或ldifde.exe来减轻我们的工作量了。
  
一、 AD用户帐户复制
  1、在“AD域和计算机”中建一个作为样板的用户,如S1。
  2、设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
  3、在S1上/右键/复制,输入名字和口令。
说明:
  1、 只有AD域用户帐户才可以复制,对于本地用户帐户无此功能。
  2、 帐户复制可将在样板用户帐户设置的大多数属性带过来。具体如下:
选项卡

复制到新用户帐号的属性

常规无。
地址除了“街道”之外所有
帐户除了“用户登录名”之外所有
配置文件除“配置文件路径”和“主文件夹”。欲复制它们,应该使用
%username%变量,如:\\server\share\%username%
电话
单位除了“职务”之外所有。
隶属于全部
拨入无,将默认值应用于新帐户。
环境无,将默认值应用于新帐户。
会话无,将默认值应用于新帐户。
远程控制无,将默认值应用于新帐户。
终端服务配置文件无,将默认值应用于新帐户。

二、比较csvde与ldifde

 
csvde逗号分隔符目录交换

ldifde轻型目录访问协议
互换格式目录交换

功能只能用来添加对象,不能用于删除/修改可用于添加/删除/修改对象
格式字段名1,字段名2,字段名3,……
记录1此值,记录1此值,记录1此值,……
字段名1: 记录1此值
字段名2: 记录1此值
字段名3: 记录1此值
     ……
举例Dn,objectclass,samaccountname,
userprincipalname,useraccountcontrol
“cn=s1,ou=test,dc=mcse,dc=com”
,user,s1,s1@mcse.com,512
Dn: cn=s1,ou=test,dc=mcse,dc=com
Objectclass:user
Samaccountname:s1
Userprincipalname:s1@mcse.com
useraccountcontrol:512


共同点用于导入的文本文件必须包含:
* 用户帐号的OU,对象的类型以及用户登录名的路径,用户主名
* 默认(即不指定时):用户帐户为禁用。启用:512,禁用:514
* 可包含个人信息,但不可包含密码,只能用默认的空口令。
* 或通过设pwdLastSet字段值为0,使“用户下次登录时须更改密码”
(不设这个字段,默认也是如此)。
* 通过设userAccountControl字段值为66048,可使“密码永不过期”。

三、以csvde.exe为例说明:域用户帐户的导出/导入
  操作步骤如下:
1、 在“AD域和计算机”中建一个用户,如S1。
2、 设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
3、 在DC上,开始/运行:cmd
4、 键入:csvde –f demo.csv
说明:
  (1)不要试图将这个文件导回,来验证是否好使。因为这个文件中的好多字段在导入时是不允许用的,如:ObjectGUID、objectSID、pwdLastSet 和 samAccountType 等属性。我们导出这个文件目的只是为了查看相应的字段名是什么,其值应该怎么写,出错信息如下:

objectGUID:写UNPRINTABLEBINARY(16)"由于安全原因不允许修改。"
objectSid:写UNPRINTABLEBINARY(28)"由于该属性处于“安全帐户管理器”
(SAM),不允许访问该属性。"

  (2)可通过-d –r参数指定导出范围和对象类型。例如:
   -d “ou=test,dc=mcse,dc=com” 或 -d “cn=users,dc=mcse,dc=com”
   -r &#8220;< Objectclass=user>&#8221;
5、 以上面的文件为参考基础,创建自己的my.csv,并利用复制、粘贴、修改得到多条记录。例如:
dn,objectClass,sAMAccountName,userAccountControl,userPrincipalName
"CN=s1,OU=test,DC=mcse,DC=com",user,S1,512,S1@mcse.com
"CN=s2,OU=test,DC=mcse,DC=com",user,S2,512,S2@mcse.com
&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;
其它可用字段,我试了一下,见下表(不全):

用户帐户属性 

字符名

说明

 

&#8220;常规&#8221;标签

 
Sn  
Givename  
英文缩写Initials  
显示名称displayName  
描述Description  
办公室physicalDeliveryOfficeName   
电话号码telephoneNumber  
电话号码:其它otherTelephone多个以英文分号分隔
电子邮件Mail  
网页wWWHomePage  
网页:其它url多个以英文分号分隔
 
&#8220;地址&#8221;标签

 
国家/地区C如:中国CN,英国GB
省/自治区St 
市/县L 
街道streetAddress 
邮政信箱postOfficeBox 
邮政编码postalCode 
 
&#8220;帐户&#8221;标签

 
用户登录名userPrincipalName形如:S1@mcse.com
用户登录名(以前版本)sAMAccountName形如:S1
登录时间logonHours 
登录到userWorkstations多个以英文逗号分隔
用户帐户控制userAccountControl启用:512,禁用:514,66050
密码永不过期:66048
帐户过期accountExpires 
 
&#8220;配置文件&#8221;标签

 
配置文件路径profilePath  
登录脚本scriptPath  
主文件夹:本地路径homeDirectory  
连接homeDrive  
homeDirectory  
 
&#8220;电话&#8221;标签

 
家庭电话homePhone
若是其它,在前面加other。

寻呼机Pager
如:otherhomePhone。

移动电话mobile若多个以英文分号分隔。
传真FacsimileTelephoneNumber  
IP电话ipPhone  
注释Info  

&#8220;单位&#8221;标签

 
职务Title  
部门Department  
公司Company  
 
&#8220;隶属于&#8221;标签

 
隶属于 memberOf 用户组的DN不需使用引号,
多个用分号分隔 

&#8220;拨入&#8221;标签

 
远程访问权限(拨入或VPN)msNPAllowDialin  
允许访问值:TRUE  
拒绝访问值:FALSE  
回拨选项msRADIUSServiceType  
由呼叫方设置或回拨到值:4  
总是回拨到msRADIUSCallbackNumber  


&#8220;环境&#8221;、&#8220;会话&#8221;、&#8220;远程控制&#8221;、&#8220;终端服务配置文件&#8221;、&#8220;COM+&#8221;标签
说明:这些标签,平常极少用到,我也没试。如果需要可以自己导出来看一下,像一些复杂的字段,如:userParameters,还是用粘贴吧


6、导入到AD,键入 csvde &#8211;i &#8211;f my.csv &#8211;j c:\
说明:-j用于设置日志文件位置,默认为当前路径。此选项可帮助用户在导入不成功时排错。

  有一点大家必须明确的是:我们在这里做AD域用户帐户复制、做AD域用户帐户的导出/导入,并不能代替&#8220;AD备份和恢复&#8221;。我们只是在批量创建用户帐号,帐号的SID都是重新生成的,权利权限都得重新设才行。(当然我们可以把导入的用户,通过memberof字段设到一些用户组中去,使它有权利权限。但这与利用&#8220;AD备份和恢复&#8221;到原状,完全是两回事)。

=====================================================================
追加:利用ldifde修改域用户帐号属性

开始/运行:ldifde -i -f modify.txt
修改域用户帐号user1的&#8220;部门&#8221;为Info,示例modify.txt的内容如下:
dn: CN=user1,CN=Users,DC=mcse,DC=com
changetype:modify
replace: department
department: info
-
最后的&#8220;-&#8221; 一定要加上,不然是会报错的,切记!!!冒号后有没有空一格没有关系。

中文的问题,可以先通过导出,查看某个文字的编码。编辑文件时,一粘过来就可以了。
如:&#8220;测&#8221;字编码为&#8220;5rWL&#8221;,&#8220;试&#8221;字编码为&#8220;6K+V&#8221;
下面为用于导入的文章内容:
dn: CN=user1,CN=users,DC=mcse,DC=com
changetype: modify
replace:department
department::5rWL6K+V
-
&#8230;&#8230;
注意:必须两个冒号

=====================================================================

追加:利用脚本创建批量用户帐户   



  
  
  
  1、利用脚本创建用户帐号(用户可参考下例)。

  
  
  Set objDomain = GetObject(LDAP://dc=fabrikam,dc=com)
Set objOU = objDomain.Create("organizationalUnit", "ou=Management")
objOU.SetInfo
说明:fabrikam.com域创建一个名叫ManagementOU
Set objOU = GetObject(LDAP://OU=Management,dc=fabrikam,dc=com)
Set objUser = objOU.Create("User", "cn= AckermanPila")
objUser.Put "sAMAccountName", "AckermanPila"
objUser.SetInfo
objUser.SetPassword "i5A2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
说明:Management OU下创建一个名叫AckermanPila的用户,口令为i5A2sj*!,启用。
Set objOU = GetObject(LDAP://OU=Management,dc=fabrikam,dc=com)
Set objGroup = objOU.Create("Group", "cn=atl-users")
objGroup.Put "sAMAccountName", "atl-users"
objGroup.SetInfo
objGroup.Add objUser.ADSPath
objGroup.SetInfo
说明:Management OU下创建一个名叫atl-users的用户组,将用户AckermanPila加入到这个组中。
Wscript.echo "Script ended successfully"
说明:显示&#8220;脚本成功结束&#8221;信息

  
  
  
  
  
  2、利用脚本中的循环功能实现批量创建用户帐号
  
  
  
  
  
  Set objRootDSE = GetObject(LDAP://rootDSE)
Set objContainer = GetObject("LDAP://cn=Users," & _ objRootDSE.Get("defaultNamingContext"))
  
  
  For i = 1 To 1000
Set objUser = objContainer.Create("User", "cn=UserNo" & i)
objUser.Put "sAMAccountName", "UserNo" & i
objUser.SetInfo
objUser.SetPassword "i5A2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
Next

  
  
  WScript.Echo "1000 Users created."

  
  
  说明:在当前域的Users容器中创建UserNo1UserNo1000,共1000个用户帐户

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-63043-1-1.html 上篇帖子: 为什么 Winfx 必须运行在windows xp sp2 和 windows 2003 以及之后的OS 下篇帖子: NT4.0 Migration to Windows 2003:Using WFetch
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表