将网络服务用户添加到Admin组

时间:2013-10-09 15:26:24

标签: c#

我在用户变量中得到null ..我错过了什么????

PrincipalContext pc = new PrincipalContext(ContextType.Machine);
GroupPrincipal user = GroupPrincipal.FindByIdentity(pc, @"NT AUTHORITY\NETWORK SERVICE");
GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, "Administrators");
group.Members.Add(user);
group.Save();  

2 个答案:

答案 0 :(得分:1)

在这里猜测,但可能是因为MSDN说:

  

NetworkService帐户是由。使用的预定义本地帐户   服务控制经理。此帐户无法识别   安全子系统

此外,我不确定将网络服务帐户添加到管理员组是一件好事,从安全的角度来看,即使有可能。

答案 1 :(得分:0)

可以通过名称或sAMAccountName来查找LSA帐户(NT AUTHORITY\...),但是可以通过SID来 查找:

var account = new NTAccount(@"NT AUTHORITY\NETWORK SERVICE")
  .Translate(typeof(SecurityIdentifier));

using(PrincipalContext pc = new PrincipalContext(ContextType.Machine))
{
  var user = GroupPrincipal.
    FindByIdentity(pc, IdentityType.Sid, account.Value);
  var group = GroupPrincipal.FindByIdentity(pc, "Administrators");
  group.Members.Add(user);
}
group.Save();