1

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

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();  
4

2 回答 2

1

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

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

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

于 2013-10-09T16:12:04.657 回答
0

LSA 帐户 ( NT AUTHORITY\...) 不能名称或 sAMAccountName 查找,但可以按 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();  

于 2019-04-15T14:47:33.063 回答