本文介绍如何使用 DirectoryServices
命名空间将用户添加到 Visual C# 中的本地系统和组。
原始产品版本: Visual C#
原始 KB 数: 306273
总结
本分步文章介绍如何使用 DirectoryServices
命名空间将用户添加到本地系统和组。
创建示例
启动 Visual Studio .NET 2003、Visual Studio 2005 或 Visual Studio 2008,然后创建新的 Visual C# 控制台应用程序项目。
在解决方案资源管理器中,右键单击“引用”,然后单击“添加引用”。
添加对程序集的
System.DirectoryServices.dll
引用。将Class1.cs文件中的代码替换为以下代码。
注意
在 Visual C# 2005 或 Visual C# 2008 中, Class1.cs 文件将 替换为Program.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(); } } }
编译并运行项目。
在基于 Windows 2000 的计算机上执行以下步骤,验证帐户是否已创建并添加到来宾组:
- 从“ 开始 ”菜单中,指向 “程序”,指向 “管理工具”,然后单击“ 计算机管理”。
- 单击以展开“ 本地用户和组” 节点。 新帐户应显示在“用户”节点下,以及来宾组的节点下。
在基于 Windows XP 的计算机上执行以下步骤,验证帐户是否已创建并添加到来宾组:
- 从“开始”菜单中,单击“控制面板”。
- 双击 “用户帐户”。 新的用户帐户应显示在 “用户帐户 ”对话框中。
重要
完成测试后,从系统中删除新创建的用户帐户。
创建新的目录条目
在此示例中创建目录条目时,假定系统正在运行 Windows NT、Windows 2000 或 Windows XP。
注意
传递给构造函数的 DirectoryEntry
字符串以 "WinNT://"
.. 还可以在其他第三方操作系统上运行目录服务。
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
将目录条目添加到目录树
以下代码将一个 DirectoryEntry
类型用户 TestUser1
的值添加到 Active Directory 树中。
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
设置新用户帐户的密码和说明
以下代码调用 Invoke 方法以调用 SetPassword
对象的方法和 Put
方法 DirectoryEntry
。 这会设置密码,并向用户帐户分配说明。 此代码还调用 CommitChanges
方法来保存更改。
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();
将帐户添加到组
若要将帐户添加到组,请执行以下步骤:
- 定义类型的
DirectoryEntry
变量。 Find
调用类成员ActiveDirectory
的方法Children
以填充变量。 在这种情况下,来宾组是搜索的目标。 此代码测试方法返回的值Find
,以确定是否已找到组。 如果找到该组,则会将新用户帐户添加到该组。
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
故障排除
如果尝试在没有足够权限的情况下运行代码来创建用户帐户,本文中的代码将失败。 若要使代码成功完成,当前登录的用户必须是管理员组的成员,或者具有允许用户创建用户帐户的特定权限。