我在用户变量中得到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();
答案 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();