我需要将脚本文件夹永久添加到我的PowerShell路径中(而不仅仅是某个会话)。我正在运行以下代码:
[System.Environment]::SetEnvironmentVariable("PATH", $Env:Path + ";C:\scripts", "Machine")
错误如下所示:
使用“3”个参数调用“SetEnvironmentVariable”时发生异常:“不允许请求的注册表访问。”
如何获得注册表访问权限/修复此问题?
编辑:不确定是否有帮助,但我正在Windows Server 2012上使用PowerCLI(VMware PowerShell API)。
4条答案
按热度按时间nhaq1z211#
听起来你可能不是以高级管理员的身份运行。默认情况下,我相信在Server 2012的任务栏上有一个PowerShell快捷方式。右键单击它,选择“以管理员身份运行”(或类似的操作)。然后尝试运行你原始帖子中的命令。
vxbzzdmp2#
将
HKLM\System\CurrentControlSet\Control\Session Manager\Environment
的权限授予所需用户n3h0vuf23#
我正在JEA PSSession中以非管理员用户的身份运行一个脚本(在我们的环境中,管理员权限不是一个选项。)@Nipp的回答为我指出了正确的方向(当我有足够的声誉时,我会投票给你。)这应该适用于任何希望允许非管理员更新环境变量(包括Path)的人:
jm81lzqq4#
在PowerShell上尝试一次相同的命令,但不要直接打开它,而是右键单击PowerShell并以管理员身份打开;我在为minikube https://minikube.sigs.k8s.io/docs/start/设置环境变量时遇到了同样的问题,如下所示
在上面的命令中,我们使用
::Machine
,如果用作::User
,则无需运行,但这在minikube start
命令中不起作用;在某些情况下,使用作为::User
在某些情况下可以工作https://github.com/PowerShell/PowerShell-Docker/issues/88#issuecomment-443934635你的问题和我的差不多,所以这个可能有用