没有管理员权限的时间同步NTP服务器

时间:2018-12-13 12:37:45

标签: c# ntp systemtime

我编写了一个应用程序,该应用程序从NTP服务器获取时间并更改计算机的系统时间。它运作良好,但只有在我的应用程序以管理员权限开头时,时间才可以同步。因此,一个问题是如何在没有管理员特权的情况下启动它,但要保存它的功能? 我使用WinAPI函数SetSystemTime设置了系统时间。

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式来执行此操作(为您准备最合适的一种方式)。

  1. 身份模拟=>用示例at this address

    描述

    WindowsIdentity identity = new WindowsIdentity(accessToken); WindowsImpersonationContext context = identity.Impersonate() ;

  2. runas动词

    ProcessStartInfo startInfo = new ProcessStartInfo (m_strInstallUtil, strExePath); startInfo.Verb = "runas"; System.Diagnostics.Process.Start (startInfo);

请记住,将提示UAC输入第二种方法

  1. PrincipalPermissin(如果用户是管理员组的成员)

    [PrincipalPermission(SecurityAction.Demand, Role = @"BUILTIN\Administrators")]