Hi
Iam having a setup created using visual studio installer in VS 2010.
This setup iam installing to many systems on network at a time, after installing a process should be registered in task scheduler under the currently logged on user id but the process is not getting registered for some systems on network, not getting why is it happening
iam using System.Security.Principal.WindowsIdentity.GetCurrent().Name to get the currently logged on user name
when i debugged in the failed machines its getting the empty username, since iam using this username of currently logged in user to register the process in task scheduler i am not able to register the process successfully in task scheduler
The following is the code i have written in windowsforms for registering "Processforms.exe" in the task scheduler
using (TaskService ts = new TaskService())
{
try
{
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Monitor system activities";
td.Settings.StartWhenAvailable = true;
string user = "";
user=System.Security.Principal.WindowsIdentity.GetCurrent().Name;
td.Principal.UserId = user;
td.Principal.RunLevel = TaskRunLevel.Highest;
DailyTrigger dt = new DailyTrigger();
dt.Repetition.Interval = TimeSpan.FromMinutes(2);
td.Triggers.Add(dt);
td.Triggers.Add(new BootTrigger());
td.Actions.Add(new ExecAction(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ProcessForms.exe"), "", null));
ts.RootFolder.RegisterTaskDefinition(@"ProcessFormsTask", td);
Task tsk = ts.FindTask("ProcessFormsTask");
if (tsk != null)
{
tsk.Run();
}
}
catch (Exception ex)
{
try
{
string fileloc = Path.Combine(@"C:\", "ORCAActivityError");
if (!Directory.Exists(fileloc))
{
Directory.CreateDirectory(fileloc);
}
string filepath = Path.Combine(fileloc, "logfile.txt");
using (StreamWriter sw = new StreamWriter(filepath, true))
{
sw.Write(ex.Message + " " + DateTime.Now.ToString());
}
}
catch { }
}
}
please help me with the problem
Thanks in advance