【发布时间】:2016-09-11 15:46:20
【问题描述】:
假设我想使用以下脚本更改注册表项。
RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Company\\SomeFolder", true);
if(myKey != null)
{
myKey.SetValue("NameXYZ", "1", RegistryValueKind.String);
myKey.Close();
}
值没有改变,因为我没有权限。 如何更改注册表项值的一种方法是例如以管理员权限运行 VS,然后运行脚本。 但是有没有办法为任何 C# 脚本(.csx)设置提升的特权,然后从例如执行这个脚本。 VS 普通权限?
【问题讨论】:
-
不,不是。取决于你如何执行脚本。如果您从 C# 交互窗口执行此操作,则必须运行 VS 提升。如果您使用 csi.exe 执行此操作,那么您必须运行一个程序,该程序通过其清单或 runas 请求提升并让它启动 csi.exe。