-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Closed
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.OS-Windowshelp wanted
Milestone
Description
Go version
go version go1.20.12 windows/amd64
Output of go env
in your module/workspace:
set GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\nobody\AppData\Local\go-build
set GOENV=C:\Users\nobody\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=C:\Users\nobody\go\pkg\mod
set GONOPROXY=none
set GONOSUMDB=none
set GOOS=windows
set GOPATH=C:\Users\nobody\go
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=D:\sdk\go\go1.20.12
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=D:\sdk\go\go1.20.12\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.20.12
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=0
set GOMOD=D:\play-go\proc-demo\go.mod
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -fno-caret-diagnostics -Qunused-arguments -Wl,--no-gc-sections -fmessage-length=0 -fdebug-prefix-map=C:\Users\nobody\AppData\Local\Temp\go-build3786666021=/tmp/go-build -gno-record-gcc-switches
What did you do?
Set a non-ASCII JAVA_HOME
system environment variable
# cmd.exe
set
...
JAVA_HOME=D:\投资监督系统\apache-tomcat\jdk
LOCALAPPDATA=C:\Windows\system32\config\systemprofile\AppData\Local
...
Run a command prompt in the Local System context
PsExec.exe -s -i cmd.exe
https://learn.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite
Compile and run this
package main
import (
"log"
"golang.org/x/sys/windows"
)
func main() {
// run `query session` in cmd.exe to get actual sessionId
var sessionId uint32 = 2
var userToken windows.Token
if err := windows.WTSQueryUserToken(sessionId, &userToken); err != nil {
panic(err)
}
env, err := userToken.Environ(false)
if err != nil {
panic(err)
}
log.Printf("user env: %q", env)
}
What did you see happen?
with some env entry omitted:
2024/01/11 10:08:04 user env: [ ... "HOMEDRIVE=C:" "HOMEPATH=\\Users\\nobody" "JAVA_HOME=D:\\投资监督系统\\apache-tomcat\\jdk" "=C:\\Users\\nobody\\AppData\\Local" "LOGONSERVER=\\\\DESKTOP-******" ... ]
What did you expect to see?
2024/01/11 10:08:04 user env: [ ... "HOMEDRIVE=C:" "HOMEPATH=\\Users\\nobody" "JAVA_HOME=D:\\投资监督系统\\apache-tomcat\\jdk" "LOCALAPPDATA=C:\\Users\\nobody\\AppData\\Local" "LOGONSERVER=\\\\DESKTOP-******" ... ]
Metadata
Metadata
Assignees
Labels
FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.The path to resolution is known, but the work has not been done.OS-Windowshelp wanted