默认情况下如何将新Windows用户添加到Users组

时间:2010-09-20 22:41:56

标签: c# windows directoryentry

我有一段创建Windows用户的代码。一切都很好,用户确实是创造出来的。但是,当我尝试pinvoke LoadUserProfile时,操作失败,因为用户不在Users组中。现在,我知道如何实际地将此用户添加到Users组,但我不想硬编码组名“Users”,因为它可能会根据区域设置而改变。有没有办法在默认情况下将用户添加到Users组(顺便说一下,runas user / add命令已经这样做了?)


DirectoryEntry dirEntry = new DirectoryEntry("WinNT://" + domain);
DirectoryEntries entries = dirEntry.Children;
DirectoryEntry user = entries.Add(username, "User");
user.Properties["FullName"].Add("Dr Zoidberg");
user.Invoke("SetPassword", password);
user.CommitChanges();

1 个答案:

答案 0 :(得分:2)

Windows和Active Directory有许多“熟知的SID”,它们是内置帐户和组的安全标识符。您可以使用众所周知的SID绑定到Users组,因为无论语言环境如何,它都不会更改。管理员甚至可以将Users组重命名为其他组,但SID将保持不变。

众所周知的SID在System.Security.Principal.WellKnownSidType

中枚举

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.security.principal.wellknownsidtype.aspx