我試圖在C#中編寫一個代碼,該代碼從兩個變量名稱及其假定的內容列表中設置環境變量。 這我過得怎麼樣:設置一個新的環境變量:不允許請求的註冊表訪問
var VariableName = new[] {"ROOT"};
var VariableContent = new[] { "C:\\" };
var Variables = VariableName.Zip(VariableContent, (n, c) => new { Name = n, Content = c });
foreach (var Variable in Variables)
{
if (Environment.GetEnvironmentVariable(Variable.Name) == null)
{
Environment.SetEnvironmentVariable(Variable.Name, Variable.Content, EnvironmentVariableTarget.Machine);
}
問題是SetEnvironmentVariable
方法rturning以下異常:
System.Security.SecurityException:請求的註冊表訪問是不允許的。
這怎麼解決?
如果您沒有'EnvironmentVariableTarget.Machine'權限,請嘗試較小的目標。 –
顯然,當前用戶沒有訪問權限。在有權訪問的用戶的上下文中運行應用程序,或者在需要時請求提升。 – Equalsk
有沒有針對此問題的任何程序化解決方案?我試過'新的EnvironmentPermission(EnvironmentPermissionAccess.Write,Variable.Name).Demand();'但是同樣的問題 –