//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 }