用新的环境变量分叉Windows Shell

I'm able to do this on linux (bash) using:

os.Setenv("TESTKEY", "TestVal")
syscall.Exec(os.Getenv("SHELL"), []string{os.Getenv("SHELL")}, syscall.Environ())

Is it possible to do something similar in powershell? I've tried various alternatives but they all fail silently, e.g.:

syscall.Exec("PowerShell", []string{"-Command", "Set-Item", "-path", "env:TESTKEY", "-value", "TestVal"}, env) 

thanks @Adrian - the following works:

cmd := exec.Command("PowerShell")
cmd.Env = append(os.Environ(),"TESTKEY=TestVal")
cmd.Run()