12345678910111213141516171819202122232425262728293031323334 |
- //go:build windows
- // +build windows
- package klog
- import (
- "os"
- "strings"
- )
- func getUserName() string {
- userNameOnce.Do(func() {
- // On Windows, the Go 'user' package requires netapi32.dll.
- // This affects Windows Nano Server:
- // https://github.com/golang/go/issues/21867
- // Fallback to using environment variables.
- u := os.Getenv("USERNAME")
- if len(u) == 0 {
- return
- }
- // Sanitize the USERNAME since it may contain filepath separators.
- u = strings.Replace(u, `\`, "_", -1)
- // user.Current().Username normally produces something like 'USERDOMAIN\USERNAME'
- d := os.Getenv("USERDOMAIN")
- if len(d) != 0 {
- userName = d + "_" + u
- } else {
- userName = u
- }
- })
- return userName
- }
|