Создание задачи и запуск с наивысшими привилегиями из другой задачи, - PullRequest
0 голосов
/ 25 марта 2020

Я создал программу C#, которая создает удаленные задания, а затем каждые 5 минут запускает последующие процессы для проверки состояния удаленного задания. Это достигается с помощью материнской задачи в планировщике задач, которая создает дочерние задачи.

Все это работает как я на моей локальной машине; Тем не менее, в производственном процессе у меня есть 2 проблемы:

  • Я не могу вызвать порожденную задачу «Запускать, вошел ли пользователь в систему или нет» - требуется, чтобы пользователь вошел в систему.
  • Он не создается с установленным флажком «Запускать с наивысшими привилегиями».

Вот код, который я использую для создания задачи из основной задачи:

        {
            TaskService ts = new TaskService();
            TaskDefinition td = ts.NewTask();
            //td.Settings.RunOnlyIfLoggedOn = false;
            td.Principal.LogonType = TaskLogonType.S4U;
            td.Settings.AllowDemandStart = true;
            td.Settings.MultipleInstances = TaskInstancesPolicy.IgnoreNew;
            td.Principal.RunLevel = TaskRunLevel.Highest;
            td.RegistrationInfo.Description = taskDescription;
            td.Triggers.Add(new TimeTrigger(DateTime.Now.AddMinutes(5)));
            td.Actions.Add(action, arguments);
            Microsoft.Win32.TaskScheduler.Task th = ts.RootFolder.RegisterTaskDefinition(taskName, td);
        }

Несколько дополнительных замечаний: - Задача-мать настроена на выполнение независимо от того, вошел ли пользователь в систему и выполняется ли с наивысшими привилегиями. - Дочерняя задача всегда выглядит так: task manager

Я видел несколько похожих постов, но все они пропускают аспект создания задачи из задачи.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...