我正在尝试使用以下代码将网络服务帐户添加到内置安全组:
DirectoryEntry de = new DirectoryEntry("WinNT://" + System.Environment.MachineName);
DirectoryEntry deGroup = de.Children.Find( groupName, "group"); >> here groupname = <some builtin group>
DirectoryEntry usr = de.Children.Find(accountName,”user”); >> here accountname = NT AUTHORITY\NETWORK SERVICE
deGroup.Invoke("Add", new object[] { usr.Path });
deGroup.CommitChanges();
突出显示会抛出异常“无法找到用户名”。我错过了什么?如何将网络服务添加到内置组?
答案 0 :(得分:1)
如果您使用的是.NET 3.5或更高版本,请查看System.DirectoryServices.AccountManagement。这些类很容易使用。例如,
PrincipalContext pc = new PrincipalContext(ContextType.Domain);
var user = UserPrincipal.FindByIdentity(pc, "johndoe");
var group = GroupPrincipal.FindByIdentity(oPrincipalContext, "some group name");
group.Members.Add(user);
group.Save();
请注意,对于计算机帐户(用户或群组),您需要使用ContextType.Machine