aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/services
diff options
context:
space:
mode:
Diffstat (limited to 'services')
-rw-r--r--services/tokens.go6
1 files changed, 1 insertions, 5 deletions
diff --git a/services/tokens.go b/services/tokens.go
index aa6f2c4a..d3854f2d 100644
--- a/services/tokens.go
+++ b/services/tokens.go
@@ -14,10 +14,6 @@ import (
)
func TokenIsMemberOfBuiltInAdministrator(token windows.Token) bool {
- adminSid, err := windows.CreateWellKnownSid(windows.WinBuiltinAdministratorsSid)
- if err != nil {
- return false
- }
gs, err := token.GetTokenGroups()
if err != nil {
return false
@@ -25,7 +21,7 @@ func TokenIsMemberOfBuiltInAdministrator(token windows.Token) bool {
groups := (*[(1 << 28) - 1]windows.SIDAndAttributes)(unsafe.Pointer(&gs.Groups[0]))[:gs.GroupCount]
isAdmin := false
for _, g := range groups {
- if (g.Attributes&windows.SE_GROUP_USE_FOR_DENY_ONLY != 0 || g.Attributes&windows.SE_GROUP_ENABLED != 0) && windows.EqualSid(g.Sid, adminSid) {
+ if (g.Attributes&windows.SE_GROUP_USE_FOR_DENY_ONLY != 0 || g.Attributes&windows.SE_GROUP_ENABLED != 0) && g.Sid.IsWellKnown(windows.WinBuiltinAdministratorsSid) {
isAdmin = true
break
}