DirectoryServices中的DirectoryEntry添加用户

一直以来看到很多的用VBSCRIPT来进行AD操作的东东

我就是不用,而喜欢用.net的DirectoryServices

1

首先添加引用System.DirectoryServices的.net组件

using System.DirectoryServices;

2

private void adduser(string addaccount)

{

DirectoryEntry decu=new DirectoryEntry("LDAP//","用户名","密码")

DirectoryEntries users=decu.Children;
    DirectoryEntry user=users.Add("CN="+addaccount,"user");

    user.Properties["userPrincipalName"].Add(account);
    user.Properties["samAccountName"].Add(addaccount);    //添加用户的帐号名称
    user.Properties["pwdLastSet"].Value=0;           //设置上一次登陆密码为空,用户在新登陆后需要重新设置密码
    user.Properties["userAccountControl"].Value=544;   //有效用户   ,应该设为512,却出错
    user.CommitChanges();                                                 //确认改变,写入AD

}

这里的话可以把用户添加到了USER组里了

3

其他属性

user.Properties["c"].Value="cn";

user.Properties["co"].Value="China";

user.Properties["telephonenumber"].add("123456789");

属性的添加有两类

一类可以直接输入VALUE的数值

另一类由于有多项值,所以需要用ADD( )方法来解决

但需要判断是否有空值

if(user.Properties.Contains("mobile"))

{

user.Properties["mobile"][0]="13333333333";

}

else

{

user.Properties["mobile"].Add("13333333333");

}

user.CommitChanges();

4

关于member的管理

用户的memberof属性是用户在AD中比较重要的部分

在发现我们没有办法直接修改

user.Properties["memberOf"].add("cn=....");                         X

但我们可以直接修改需要添加到的组的属性

然后修改

group.Properties["member"].add("cn=....");   

就可以达到修改组成员的效果来实现添加为某组的成员,但需要有比修改user比较大的修改组的权限

5

CommitChanges()

保存修改操作,勿忘.

6

关于Exchange2000也可以使用以上的方法创建exchange2000的用户

不过存在创建的Exchange用户与AD帐号的连接问题

EXCHANGE2003下却由于与AD结合,方便不少

问题:

user.Properties["telephonenumber"]属于多值属性

经测试只有1000个的容量

如果我有些特定的属性已经超出1000个

user.Properties["telephonenumber"].[999]

以后似乎没有办法继续了,请知情者告知~~~~万分感谢.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值