我们如何在c#中设置/获取其他用户环境变量?

时间:2012-06-12 09:22:19

标签: c# .net environment-variables

用户环境变量对于计算机上的每个用户帐户是独立的。

请考虑以下情况,我使用userA登录非管理员用户帐户,现在我想通过使用C#应用程序来获取/设置其他用户(比如说userB)环境变量userA的背景。

这可能吗?如果是这样,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

环境变量存储在注册表中,因此要为其他用户更改它们,您必须导入其注册表配置单元。

用户变量的关键是

HKEY_CURRENT_USER\Environment

和系统变量的关键是

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

因此,如果您导入当前用户配置单元,则可以为其他用户更改它,或者对于计算机变量,可以从任何管理员帐户更改HKLM密钥。

虽然这很麻烦但我不建议你这样做。

或者你可以使用一些P / Invoke来使用Impersonation.