通过Powershell为另一个用户设置环境变量

4
我正在尝试从管理员用户ABC的PowerShell中设置用户XYZ的环境变量。我使用Start-Process启动用户XYZ的PowerShell,但无法捕获输出。所有这些过程都需要在Java中完成。
有人能帮帮我吗?
谢谢 Ajax
2个回答

0

当您更改环境变量时,更改仅影响当前的PowerShell会话(例如,在Windows cmd中使用SET命令)。要使更改永久生效,您必须使用像SETX这样的实用程序进行更改。您还必须有权限更改这些值。


嗨,David, 谢谢你的回答。我尝试使用SETX,但SETX的缺点是我们需要提供用户名和密码(明文格式)。 - ajax
1
你好,David, 我想让你更了解我的意图,具体如下。 我已经作为用户ABC登录到系统中,我希望向同一系统上的用户XYZ添加环境变量。这个过程必须是安全的,并且必须通过Java代码完成。 在SetX或Runas中,您需要提供明文密码,因此安全性会受到影响。 - ajax
不知道Java的加入会增加什么限制,但也许你可以在这里找到适合你的东西:http://learningpcs.blogspot.com/2012/01/powershell-v2-permanently-add.html - David Brabant

-2

关于此问题,请查阅TechNet文章:https://technet.microsoft.com/zh-cn/library/ff730964.aspx

基本上,您需要使用.NET方法在机器范围内进行设置:

[Environment]::SetEnvironmentVariable("TestVariable","Test Value","Machine")

创建新的环境变量后,您需要重新启动PowerShell会话才能访问它。


这篇文章绝对是无用的,因为它没有涵盖关于如何为另一个用户设置环境变量的问题。 - Laser42

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接