using System.Security.Principal;
using Microsoft.Win32.TaskScheduler;
public static void RunRemoteTask(string server, WindowsIdentity user, string taskPath, string[] runParams)
var context = user.Impersonate();
using (var ts = new TaskService(server))
ts.GetTask(taskPath)?.Run(runParams);