private static void Main() { using var token = AccessToken.OpenCurrentProcessToken(TokenAccessLevels.Query); PrintToken(token); using var linkedToken = token.GetLinkedToken(); PrintToken(linkedToken); Console.WriteLine("WellKownSID " + SecurityIdentifier.FromWellKnown(WellKnownSidType.WinLowLabelSid)); Console.WriteLine("IsAdministrator " + IsAdministrator()); }
static bool IsAdministrator(AccessToken accessToken) { var adminSid = SecurityIdentifier.FromWellKnown(WellKnownSidType.WinBuiltinAdministratorsSid); foreach (var group in accessToken.EnumerateGroups()) { if (group.Attributes.HasFlag(GroupSidAttributes.SE_GROUP_ENABLED) && group.Sid == adminSid) { return(true); } } return(false); }
private static void Main() { try { using (var token = AccessToken.OpenCurrentProcessToken(TokenAccessLevels.Query)) { Console.WriteLine("Owner: " + token.GetOwner()); Console.WriteLine("TokenType: " + token.GetTokenType()); Console.WriteLine("ElevationType: " + token.GetElevationType()); Console.WriteLine("IsElevatedToken: " + token.IsElevated()); Console.WriteLine("IsRestricted: " + token.IsRestricted()); Console.WriteLine("MandatoryIntegrityLevel: " + token.GetMandatoryIntegrityLevel()?.Sid); foreach (var group in token.EnumerateGroups()) { Console.WriteLine($"Group: {group.Sid} ({group.Attributes})"); } foreach (var group in token.EnumerateRestrictedSid()) { Console.WriteLine($"Restricted Group: {group.Sid} ({group.Attributes})"); } foreach (var privilege in token.EnumeratePrivileges()) { Console.WriteLine($"Privilege: {privilege.Name} ({privilege.Attributes})"); } } Console.WriteLine("WellKownSID " + SecurityIdentifier.FromWellKnown(WellKnownSidType.WinLowLabelSid)); } catch (Exception ex) { Console.WriteLine(ex); } }
public void FromWellKnownTest() { _output.WriteLine("WellKownSID " + SecurityIdentifier.FromWellKnown(WellKnownSidType.WinLowLabelSid)); }