我想從自定義操作創建計劃任務。我需要提升權限才能創建它。我正在使用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?我必須使用
impersonate='no'
這工作,但我想有一個叫做MSI爲計劃任務的用戶的用戶。但是,上述解決方案讓MSI將自定義操作稱爲LocalSystem,然後使用LocalSystem用戶創建計劃任務。
計劃任務調用從UNC路徑讀取的exe文件。所以LocalSystem不會在那裏工作。
自定義操作如何與具有提升特權的MSI用戶一起調用?
您能否確認自定義操作未配置爲延遲? –