Comment définir la variable d'environnement système en C#?

Je suis en train de définir une variable d'environnement système dans mon application, mais un SecurityException. J'ai testé tout ce que j'ai trouvé dans google, sans succès.
Voici mon code (notez que je suis administrateur de mon pc et exécuter VS2012 en tant qu'administrateur):

Tentative 1

new EnvironmentPermission(EnvironmentPermissionAccess.Write, "TEST1").Demand();
Environment.SetEnvironmentVariable("TEST1", "MyTest", EnvironmentVariableTarget.Machine);

Tentative 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");
}

Tentative 3
Aussi j'ai essayé d'adapter mon application avec des privilèges d'administrateur.

Avez-vous d'autres suggestions?

Vous ne pouvez pas simplement aller et obtenir la permission. Vous avez besoin d'être élevée. Et ce qui doit être fait lors du processus de démarrage.

OriginalL'auteur alex555 | 2013-10-31