保留管理员权限
本文关键字:权限 管理员 保留 | 更新日期: 2023-09-27 18:36:10
我编写了一个 WinForms C# 应用程序,该应用程序需要管理员权限才能工作,并且还需要在计算机启动时启动(使用注册表)。
RegistryKey reg = Registry.CurrentUser.OpenSubKey("SOFTWARE''Microsoft''Windows''CurrentVersion''Run", true);
reg.SetValue("My app", Application.ExecutablePath.ToString());
所以我尝试将清单更改为requiredAdministrator
,并收到有关 clickOnce 的错误,我完全不明白。所以我尝试发布应用程序并以管理员身份安装,但是当应用程序在启动时启动时,它不再具有管理员权限。
有人知道如何永久获得管理员权限吗?
您可以
转到快捷方式=>属性=>高级... =>选中以管理员身份运行。
现在,您已配置快捷方式以管理员权限启动应用程序。
您可以
尝试使用自提升,不确定自动启动应用程序的外观(与@peer答案相同)
// at application start
var identity = WindowsIdentity.GetCurrent();
var principal = new WindowsPrincipal(identity);
bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
// if not admin - elevate
if(!isAdmin)
{
var info = new ProcessStartInfo(Application.ExecutablePath) { Verb = "runas" };
Process.Start(info);
return; // exit
}
// if we are here - application runs as admin
...
您需要的是
权限提升请求。通常通过清单完成,或者如果您只有一个进程,则可以使用提升的权限启动它。这给出了一个解释,并解释了如何嵌入清单。