【问题标题】:Setting machine wide environment variable in Nano server在 Nano 服务器中设置机器范围的环境变量
【发布时间】:2016-05-25 22:29:07
【问题描述】:
我启动了从 VM 主机(桌面)到具有 Nano 服务器(预览版 5)的来宾 VM 的远程会话。我想更新 PATH 变量并使其在机器范围内生效(例如:将 dotnet.exe 放入 PATH 以启用运行便携式应用程序)。我注意到的是SetEnvironmentVariable 重载没有接收目标的重载(如“用户”、“机器”等)。
如果您注意到我主机的 Powershell 过载(版本比 Nano 服务器的版本稍旧),但 Nano 服务器的却没有。
在我的 Nano 服务器中:
在我的虚拟机主机(桌面)中
我错过了什么?
【问题讨论】:
标签:
powershell
powershell-remoting
nano-server
【解决方案1】:
这是因为 Nano 服务器使用了 .NET 的精简版本,称为 .NET Core。 (更多信息请访问MSDN。)
SetEnvironmentVariable 的核心实现文档可在here 获得。
2017 年 9 月 26 日编辑:
此答案适用于 .NET Core 1.x。在 .NET Core 2.0 中,添加了 OP 正在寻找的重载。 2.0 的文档是here。
【解决方案2】:
【讨论】:
-
使用 setx 设置变量可以正常工作,但 setx 不允许删除变量。至少微软推荐的方式(support.microsoft.com/en-us/kb/195050)对我不起作用,我收到“无效语法”错误。我不得不使用 PowerShell:Remove-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment' -Name CATALINA_HOME