사용자 지정 작업에서 예약 된 작업을 만들고 싶습니다. 그것을 만들기 위해서는 높은 권한이 필요합니다. 나는 Task Scheduler Managed Wrapper을 사용하고 있습니다.LocalSystem이 아닌 상승 된 권한으로 사용자 지정 작업에 호출
using (TaskDefinition taskDefinition = TaskService.Instance.NewTask())
{
taskDefinition.RegistrationInfo.Date = DateTime.Now;
taskDefinition.RegistrationInfo.Description = "...";
taskDefinition.Principal.RunLevel = TaskRunLevel.Highest; // Scheduled Task with elevated privileges
DailyTrigger trigger = new DailyTrigger();
try
{
trigger.StartBoundary = new DateTime(DateTime.Today.Ticks)
.AddHours(20);
trigger.ExecutionTimeLimit = TimeSpan.FromSeconds(30);
trigger.DaysInterval = 2;
}
catch
{
trigger.Dispose();
throw;
}
taskDefinition.Triggers.Add(trigger);
taskDefinition.Actions.Add(Path.Combine(session.CustomActionData.Keys.Single(), "Updater.exe"));
TaskService.Instance.RootFolder.RegisterTaskDefinition(TaskName, taskDefinition);
}
How to run custom executable with elevated privileges?에 따르면 난 내가 예약 된 작업의 사용자로 MSI라는 사용자가 원하는
impersonate='no'
이 작동
하지만 사용해야합니다. 그러나 위의 솔루션을 사용하면 MSI는 사용자 지정 작업을 LocalSystem으로 호출하여 LocalSystem 사용자와 함께 예약 된 작업을 만듭니다.
예약 된 작업은 UNC 경로에서 읽는 exe를 호출합니다. 따라서 LocalSystem은 거기서 작동하지 않습니다.
상승 된 권한으로 MSI 사용자와 함께 사용자 지정 동작을 호출하려면 어떻게해야합니까?
사용자 지정 작업이 지연으로 구성되어 있는지 확인할 수 있습니까? –