aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/elevate/membership.go
diff options
context:
space:
mode:
Diffstat (limited to 'elevate/membership.go')
-rw-r--r--elevate/membership.go18
1 files changed, 15 insertions, 3 deletions
diff --git a/elevate/membership.go b/elevate/membership.go
index 131c6d97..0c090271 100644
--- a/elevate/membership.go
+++ b/elevate/membership.go
@@ -15,7 +15,7 @@ func isAdmin(token windows.Token) bool {
return false
}
var checkableToken windows.Token
- err = windows.DuplicateTokenEx(token, windows.TOKEN_QUERY | windows.TOKEN_IMPERSONATE, nil, windows.SecurityIdentification, windows.TokenImpersonation, &checkableToken)
+ err = windows.DuplicateTokenEx(token, windows.TOKEN_QUERY|windows.TOKEN_IMPERSONATE, nil, windows.SecurityIdentification, windows.TokenImpersonation, &checkableToken)
if err != nil {
return false
}
@@ -52,10 +52,22 @@ func IsAdminDesktop() (bool, error) {
}
defer windows.CloseHandle(process)
var token windows.Token
- err = windows.OpenProcessToken(process, windows.TOKEN_QUERY | windows.TOKEN_IMPERSONATE, &token)
+ err = windows.OpenProcessToken(process, windows.TOKEN_QUERY|windows.TOKEN_IMPERSONATE, &token)
if err != nil {
return false, err
}
defer token.Close()
return TokenIsElevatedOrElevatable(token), nil
-} \ No newline at end of file
+}
+
+func AdminGroupName() string {
+ builtinAdminsGroup, err := windows.CreateWellKnownSid(windows.WinBuiltinAdministratorsSid)
+ if err != nil {
+ return "Administrators"
+ }
+ name, _, _, err := builtinAdminsGroup.LookupAccount("")
+ if err != nil {
+ return "Administrators"
+ }
+ return name
+}