active directory簡單操作

在對AD進行操作,我們首先要引如System.DirectoryServices這個命名空間,裏面的DirectoryEntry類是我們主要用到的。他封裝了 Active Directory 層次結構中的節點或對象,我們先要建立一個DirectoryEntry對象。
1C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶public DirectoryEntry GetDirectoryObject(string path,string username,string password)
2C#在活動目錄(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設置的是用戶的登陸名稱。
1C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶DirectoryEntry ude=ou.Children.Add("CN="+username,"user");
2C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶            ude.Properties["sAMAccountName"].Value=name;
3C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶            ude.CommitChanges();
4C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶            ude.Close();

  通過上面的方法我們建立了組織單位和組織單位下的用戶,但是這樣還沒有完。當我建好用戶後發現用戶並沒有啓用,所以我們還要想辦法讓建好的用戶處於啓用狀態。查了相關資料和userAccountControl這個屬性有關係。我在程序裏設置斷點跟蹤了一下得到起用的值,重新獲得用戶DirectoryEntry對象後對其進行更改,用戶被啓用。我想因該還有其他方法,這是目前我能想到的。如果有更好的方法歡迎留言給我。代碼如下。
1C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶public void SetEnable(string user)
2C#在活動目錄(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對象對其進行設置

1C#在活動目錄(ACTIVE <wbr>DIRECTORY)中創建組織單位和用戶public void ChangePassword(string name,string password)
2C#在活動目錄(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)中創建組織單位和用戶        }
  通過上面方法基本建立了組織單位和用戶,但是我發現其中設置密碼必須將程序放在主域服務器上才能生效,不然就說找不到對象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章