2

我想從自定義操作創建計劃任務。我需要提升權限才能創建它。我正在使用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用戶一起調用?

+0

您能否確認自定義操作未配置爲延遲? –

回答