Я пытаюсь использовать метод, который принимает имя пользователя и возвращает true, если этот пользователь является локальным администратором (а не во всем домене, только локальном компьютере) и false в противном случае. Я попытался изменить технику, найденную в In .NET/C# test if process has administrative privileges, чтобы работать, но это не так. Я попытался использовать способ NetUserGetInfo, но не смог заставить это работать. Теперь я пытаюсь использовать UserPrincipal. Следующий код - это все, что у меня есть ... в основном просто проверка того, что основы работали, и они это делают.Использование UserPrincipal для проверки локального администратора
PrincipalContext ctx = new PrincipalContext(ContextType.Machine);
UserPrincipal usr = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, userId);
if(usr == null)
{
Console.WriteLine("usr is null");
}
else
{
Console.WriteLine(usr.Enabled);
Console.WriteLine(usr.IsAccountLockedOut());
foreach (Principal p in usr.GetAuthorizationGroups())
{
Console.WriteLine(p.ToString());
}
}
Похоже, что я должен быть в состоянии использовать метод isMemberOf, но как я могу сделать группу для местных администраторов? Или есть лучший способ, чем метод isMemberOf?
Имейте в виду, что это работает только для английских машин. знак равно – Jens