ユーザー名を取り込んで、そのユーザーがローカル管理者(ドメイン全体ではなく、ローカルマシンのみ)の場合はtrueを返し、それ以外の場合はfalseを返すメソッドを作成しようとしています。プロセスに管理者権限があるかどうかをIn.NET/ C#テストで見つけた手法を変更しようとしましたが、変更されませんでした。NetUserGetInfoの方法を使用してみましたが、機能させることができませんでした。今、私は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メソッドよりも優れた方法はありますか?