Синхронизировать время без NTP-серверов без прав администратора

Я написал приложение, которое захватывает время с NTP-сервера и меняет системное время моей машины. Работает хорошо, но синхронизация времени только в том случае, если мои приложения запускаются с правами администратора. Так что вопрос в том, как запустить его без прав администратора, но чтобы сохранить его функциональность? Я устанавливаю системное время с помощью функции WinAPI SetSystemTime,

1 ответ

Вы можете сделать это несколькими способами (выбрать наиболее подходящий для вас).

  1. Идентификация личности => описана с примером по этому адресу

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

  2. глагол руны

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

пожалуйста, имейте в виду, что UAC будет предложено для второго метода

  1. PrincipalPermissin (если пользователь является членом группы Admin)

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

Другие вопросы по тегам