//go:build windows // +build windows package utils import ( "golang.org/x/sys/windows" ) // isRunningAsAdmin 检查当前进程是否以管理员权限运行 (Windows) func isRunningAsAdmin() bool { var sid *windows.SID // 获取内置管理员组的SID err := windows.AllocateAndInitializeSid( &windows.SECURITY_NT_AUTHORITY, 2, windows.SECURITY_BUILTIN_DOMAIN_RID, windows.DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &sid) if err != nil { return false } defer windows.FreeSid(sid) // 获取当前进程的访问令牌 token := windows.Token(0) member, err := token.IsMember(sid) if err != nil { return false } return member }