【发布时间】:2013-11-11 09:25:53
【问题描述】:
我试图在我的应用程序中设置一个系统环境变量,但得到一个SecurityException。我测试了我在谷歌中找到的所有东西 - 没有成功。
这是我的代码(注意,我是我的电脑的管理员并以管理员身份运行 VS2012):
尝试 1
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
Environment.SetEnvironmentVariable("TEST1", "MyTest", EnvironmentVariableTarget.Machine);
尝试 2
new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
using (var envKey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", true))
{
Contract.Assert(envKey != null, @"HKLM\System\CurrentControlSet\Control\Session Manager\Environment is missing!");
envKey.SetValue("TEST1", "TestValue");
}
尝试 3 我也尝试过调整我的app with administrator priviliges。
您还有其他建议吗?
【问题讨论】:
-
你不能只是去获得许可。你需要被提升。这需要在进程启动时完成。
标签: c# .net environment-variables