c#活動目錄添加用戶

創建示例
1. 打開 Microsoft Visual Studio .NET,然後新建一個 Visual C# Console 應用程序項目。 
2. 在“解決方案資源管理器”中,右鍵單擊引用,然後單擊添加引用。 
3. 添加一個對 System.DirectoryServices.dll 程序集的引用。
4. 將 Class1.cs 中的代碼替換爲下面的代碼: using System;
using System.DirectoryServices;

class Class1
{
static void Main(string[] args)
    {
try
        {
  DirectoryEntry AD = new DirectoryEntry("WinNT://" +
                      Environment.MachineName + ",computer");
  DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
  NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
  NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
  NewUser.CommitChanges();
  DirectoryEntry grp;

  grp = AD.Children.Find("Guests", "group");
  if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
  Console.WriteLine("Account Created Successfully");
  Console.ReadLine();
 }
    catch (Exception ex)
 {
  Console.WriteLine(ex.Message);
  Console.ReadLine();

 }
    }
}
 
5. 編譯並運行該項目。 
6. 在基於 Windows 2000 的計算機上按以下步驟操作,驗證帳戶已創建並已添加到 Guest 組中:

a.  從開始菜單,指向程序,再指向管理工具,然後單擊計算機管理。 
b.  單擊本地用戶和組節點將其展開。 新帳戶將顯示在用戶節點下面,同時會顯示在 Guest 組的節點下面。 
在基於 Windows XP 的計算機上按以下步驟操作,以驗證帳戶已創建並已添加到 Guest 組中: a.  從開始菜單,單擊控制面板。 
b.  雙擊用戶帳戶。 新用戶帳戶將顯示在用戶帳戶對話框中。 
 
7. 重要的是,測試完後要從系統中刪除新創建的用戶帳戶。 

 

代碼說明
創建新目錄項
創建本示例中的目錄項時,假定系統正在運行 Microsoft Windows NT、Windows 2000 或 Windows XP。 注意,向 DirectoryEntry 構造函數傳遞以“WinNT://”開頭的字符串。 您還可以在其他第三方操作系統上運行“目錄服務”。 DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
向目錄樹添加目錄項
以下代碼在 Active Directory 樹中添加了一個 user 類型的、值爲 TestUser1 的 DirectoryEntry。 DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
設置新用戶帳戶的密碼和說明
以下代碼調用 Invoke 方法來調用 DirectoryEntry 對象的 SetPassword 和 Put 方法。 這將爲用戶帳戶設置密碼並分配說明。 此代碼還調用 CommitChanges 方法保存這些更改。 NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();
將帳戶添加到組
將帳戶添加到組的第一步是定義 DirectoryEntry 類型的變量。 然後調用 ActiveDirectory 類 Children 成員的 Find 方法來填充變量。 在這種情況下,Guest 組是搜索目標。 此代碼測試 Find 方法返回的值以確定是否已找到該組。 如果找到該組,新用戶帳戶便會添加到組中。 DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}

疑難解答
若嘗試運行本文中的代碼時沒有足夠的權限來創建用戶帳戶,則這些代碼會失敗。 若要使這些代碼成功完成,當前登錄的用戶必須是 Administrators 組的成員或者擁有創建用戶帳戶的特定權限。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章