使用目录服务和 Visual C# .NET 向本地系统添加用户
創建示例
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 組的成員或者擁有創建用戶帳戶的特定權限。
轉載于:https://www.cnblogs.com/tommyli/archive/2007/04/11/708339.html
總結
以上是生活随笔為你收集整理的使用目录服务和 Visual C# .NET 向本地系统添加用户的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装gtsam遇到的错误
- 下一篇: gbase mysql数据库_mysql