我以非管理员用户身份在 JEA PSSession 中运行脚本(管理员权限不是我们环境中的选项。)@Nipp 的回答直接指出了我的正确方向(当我有足够的声誉时,我会投票给你.) 这应该适用于任何想要允许非管理员更新环境变量(包括路径)的人:
#allow necessary registry permissions to allow updating environment variables
#e.g.:
#Allow-EnvironmentVariableUpdate -Principal 'Power Users'
function Allow-EnvironmentVariableUpdate()
{
Param(
[string]$Principal #name of user or group
)
$acl= get-acl -path "hklm:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
$inherit = [system.security.accesscontrol.InheritanceFlags]"None"
$propagation = [system.security.accesscontrol.PropagationFlags]"None"
$rights = "QueryValues,SetValue,CreateSubKey"
$rule=new-object system.security.accesscontrol.registryaccessrule $Principal,$rights,$inherit,$propagation,"Allow"
$acl.addaccessrule($rule)
$acl | set-acl
"'$Principal' can edit environment variables."
}