active directory简单操作

在对AD进行操作,我们首先要引如System.DirectoryServices这个命名空间,里面的DirectoryEntry类是我们主要用到的。他封装了 Active Directory 层次结构中的节点或对象,我们先要建立一个DirectoryEntry对象。
1 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 public  DirectoryEntry GetDirectoryObject( string  path, string  username, string  password)
2 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户   C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 {
3C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户   DirectoryEntry de=new DirectoryEntry("LDAP://"+path, username, password, AuthenticationTypes.Secure);
4C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户   return de;
5C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户  }

  其中path是 DirectoryEntry的路径,username是在对客户端进行身份验证时使用的用户名,password是在对客户端进行身份验证时使用的密码,AuthenticationTypes是我们请求安全身份认证的方式。path说明一下,就是你所在的域的域名,如cnblogs.com。这样我们可以通过域名得到一个DirectoryEntry 对象。
  接下来我们需要做的工作是建立组织单位,用到Children属性,使用此属性在层次结构中查找、检索或创建目录项。此属性是一个集合,它与通常的迭代功能一起,提供 Add方法,通过该方法将节点直接添加到当前绑定到的父节点之下的集合。当向集合中添加节点时,必须指定新节点的名称以及要与该节点相关联的架构模板的名称。例如,您可能需要使用标题为“Computer”的架构在层次结构中添加新的计算机。Add.这个方法很简单,只需要注意一下参数,name是我们建立的组织单位的名称前面的OU=是必须的,后一个参数 Add 方法,通过该方法将节点直接添加到当前绑定到的父节点之下的集合。当向集合中添加节点时,必须指定新节点的名称以及要与该节点相关联的架构模板的名称。例如,您可能需要使用标题为“Computer”的架构在层次结构中添加新的计算机。Add.这个方法很简单,只需要注意一下参数,name是我们建立的组织单位的名称前面的OU=是必须的,后一个参数Add 方法,通过该方法将节点直接添加到当前绑定到的父节点之下的集合。当向集合中添加节点时,必须指定新节点的名称以及要与该节点相关联的架构模板的名称。例如,您可能需要使用标题为“Computer”的架构在层次结构中添加新的计算机。Add.这个方法很简单,只需要注意一下参数,name是我们建立的组织单位的名称前面的OU=是必须的,后一个参数organizationalUnit也是固定了,代表了要增加的DirectoryEntry的架构名称,organizationalUnit表示是增加的是组织单位。最后需要用CommitChanges方法提交一下。代码如下:

1C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户public DirectoryEntry GreateOU(string ouname)
2C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户        C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户{
3C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            DirectoryEntry entry = GetDirectoryObject(path,username,password);
4C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            DirectoryEntry OU = entry.Children.Add("OU="+ouname, "organizationalUnit");
5C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            OU.CommitChanges();
6C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            return OU;
7C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户
8C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户        }

  通过上面的方法我们已经建立了组织单位,下面是向组织单位里添加用户了,方法其实和添加组织单位一样,只是参数表示的类型不同而已。我们可以直接将用户这个DirectoryEntry加在刚才的组织单位对象下username表示名称, sAMAccountName设置的是用户的登陆名称。
1 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 DirectoryEntry ude = ou.Children.Add( " CN= " + username, " user " );
2 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Properties[ " sAMAccountName " ].Value = name;
3 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.CommitChanges();
4 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Close();

  通过上面的方法我们建立了组织单位和组织单位下的用户,但是这样还没有完。当我建好用户后发现用户并没有启用,所以我们还要想办法让建好的用户处于启用状态。查了相关资料和userAccountControl这个属性有关系。我在程序里设置断点跟踪了一下得到起用的值,重新获得用户DirectoryEntry对象后对其进行更改,用户被启用。我想因该还有其他方法,这是目前我能想到的。如果有更好的方法欢迎留言给我。代码如下。
1 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 public   void  SetEnable( string  user)
2 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户         C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 {
3C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            DirectoryEntry ude=GetDirectoryEntry(user);
4C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Properties["userAccountControl"].Value=544;
5C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.CommitChanges();
6C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Close();
7C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户
8C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户        }

  如果需要禁用该用户只需要将这个值设置为546就行了。
最后需要做的是对改用户设置密码,这一步必要好做,同样找到改用户DirectoryEntry对象对其进行设置

1 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 public   void  ChangePassword( string  name, string  password)
2 C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户         C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户 {
3C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            DirectoryEntry ude=GetDirectoryEntry(name);
4C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Invoke("SetPassword",new object[]C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户{password});
5C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.CommitChanges();
6C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户            ude.Close();
7C#在活动目录(ACTIVE <wbr>DIRECTORY)中创建组织单位和用户        }
  通过上面方法基本建立了组织单位和用户,但是我发现其中设置密码必须将程序放在主域服务器上才能生效,不然就说找不到对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值