Merge pull request #392 from derekwbrown/add_username
[windows] add implementation for process.Username()
This commit is contained in:
commit
ae1481820a
|
@ -181,8 +181,26 @@ func (p *Process) Status() (string, error) {
|
|||
return "", common.ErrNotImplementedError
|
||||
}
|
||||
func (p *Process) Username() (string, error) {
|
||||
return "", common.ErrNotImplementedError
|
||||
pid := p.Pid
|
||||
// 0x1000 is PROCESS_QUERY_LIMITED_INFORMATION
|
||||
c, err := syscall.OpenProcess(0x1000, false, uint32(pid))
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer syscall.CloseHandle(c)
|
||||
|
||||
var token syscall.Token
|
||||
err = syscall.OpenProcessToken(c, syscall.TOKEN_QUERY, &token)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
defer token.Close()
|
||||
tokenUser, err := token.GetTokenUser()
|
||||
|
||||
user, domain, _, err := tokenUser.User.Sid.LookupAccount("")
|
||||
return domain + "\\" + user, err
|
||||
}
|
||||
|
||||
func (p *Process) Uids() ([]int32, error) {
|
||||
var uids []int32
|
||||
|
||||
|
@ -412,7 +430,8 @@ func getRusage(pid int32) (*windows.Rusage, error) {
|
|||
|
||||
func getMemoryInfo(pid int32) (PROCESS_MEMORY_COUNTERS, error) {
|
||||
var mem PROCESS_MEMORY_COUNTERS
|
||||
c, err := windows.OpenProcess(windows.PROCESS_QUERY_INFORMATION, false, uint32(pid))
|
||||
// PROCESS_QUERY_LIMITED_INFORMATION is 0x1000
|
||||
c, err := windows.OpenProcess(0x1000, false, uint32(pid))
|
||||
if err != nil {
|
||||
return mem, err
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue