Process.Start с другими учетными данными с включенным UAC

Я пытаюсь запустить другой процесс с Process.Start, работающим под другими учетными данными с включенным UAC. Я получаю следующую ошибку:

System.ComponentModel.Win32Exception: ошибка входа: ограничение учетной записи пользователя. Возможные причины: пустые пароли не допускаются, ограничения на время входа в систему или ограничение политики введено в System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) в System.Diagnostics.Process.Start ().
в System.Diagnostics.Process.Start (ProcessStartInfo startInfo)

Если я выключаю UAC, он работает нормально. Если я запускаю процесс без указания имени пользователя и пароля, он работает нормально. Ниже приведена копия кода:

            ProcessStartInfo processInfo = new ProcessStartInfo();
            processInfo.Verb = "runas";
            processInfo.FileName = command;
            processInfo.Arguments = parameters;
            processInfo.UserName = txtUserName.Text;
            processInfo.Password = password;
            processInfo.Domain = "myDomain";
            processInfo.UseShellExecute = false;
            processInfo.LoadUserProfile = true;

            Process.Start(processInfo);

Я считаю, что это как-то связано с сеансом рабочего стола, но я не уверен, почему он работает, когда UAC выключен.

Будем весьма благодарны за любые идеи о том, как заставить это работать без отключения UAC, изменения реестра или изменения локальных / групповых политик.

Спасибо

РЕДАКТИРОВАТЬ

Процесс с кодом выше запускается от имени администратора:

      static void Main(string[] args)
      {
         //make sure we are running with admin privileges
         if (VerifyIsAdmin())
         {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MyApp(args));
         }
      }

      private static bool VerifyIsAdmin()
      {
         WindowsPrincipal principal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
         bool isAdmin = principal.IsInRole(WindowsBuiltInRole.Administrator);
         if (!isAdmin)
         {
            ProcessStartInfo processInfo = new ProcessStartInfo();
            processInfo.Verb = "runas";
            processInfo.FileName = Application.ExecutablePath;
            Process.Start(processInfo);
         }
         return isAdmin;
      }

РЕДАКТИРОВАТЬ

ПыталсяCreateProcessWithLogonW ... была такая же проблема.

Похоже, что после дальнейшего поиска проблема с групповой политикой требует входа со смарт-картой (scforceoption). При этом я до сих пор не понимаю, почему это работает, когда UAC выключен. При входе в систему по-прежнему требуется смарт-карта.

Не похоже, что я смогу обойти это. Любые идеи / советы будут оценены.

Ответы на вопрос(4)

Ваш ответ на вопрос