Синхронизировать время без NTP-серверов без прав администратора - PullRequest
0 голосов
/ 13 декабря 2018

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

1 Ответ

0 голосов
/ 13 декабря 2018

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

  1. Олицетворение личности => описано с примером по этому адресу

    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 будет предложено ввести второй метод

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

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

...