用户环境变量对于机器上的每个用户帐户都是独立的。
考虑以下情况,我使用userA
非管理员用户帐户登录,现在我想通过使用在的上下文中userB
运行的 C# 应用程序来获取/设置其他用户的(比如)环境变量。userA
这可能吗?如果是这样,我该怎么做?
用户环境变量对于机器上的每个用户帐户都是独立的。
考虑以下情况,我使用userA
非管理员用户帐户登录,现在我想通过使用在的上下文中userB
运行的 C# 应用程序来获取/设置其他用户的(比如)环境变量。userA
这可能吗?如果是这样,我该怎么做?
环境变量存储在注册表中,因此要为其他用户更改它们,您必须导入他们的注册表配置单元。
用户变量的关键是
HKEY_CURRENT_USER\Environment
系统变量的关键是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
因此,如果您导入当前用户配置单元,您可以为其他用户更改它,或者对于机器变量,HKLM
从任何管理员帐户更改密钥。
不过这很麻烦,我不建议您这样做。
或者您可以使用一些 P/Invoke 来使用Impersonation。