我编写了一个应用程序,该应用程序从NTP服务器获取时间并更改计算机的系统时间。它运作良好,但只有在我的应用程序以管理员权限开头时,时间才可以同步。因此,一个问题是如何在没有管理员特权的情况下启动它,但要保存它的功能?
我使用WinAPI函数SetSystemTime
设置了系统时间。
答案 0 :(得分:0)
您可以通过多种方式来执行此操作(为您准备最合适的一种方式)。
身份模拟=>用示例at this address
描述 WindowsIdentity identity = new WindowsIdentity(accessToken);
WindowsImpersonationContext context = identity.Impersonate() ;
runas动词
ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath);
startInfo.Verb = "runas";
System.Diagnostics.Process.Start (startInfo);
请记住,将提示UAC输入第二种方法
PrincipalPermissin(如果用户是管理员组的成员)
[PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]