Я пытаюсь запустить командный файл, используя мой C # скрипт, который находится на другом сервере. Мой сценарий C # находится на одном рабочем сервере X , а пакетный файл находится на другом рабочем сервере Y.
Мой сценарий C # размещен в планировщике задач с использованием служебной учетной записи, которую я добавил на сервер Y, а также администратора и дал права доступа к пакетному файлу.
Есть ли что-то, что я мог бы упустить в моем коде ниже:
private static void runE(string file)//function to run the E as admin
{
Process proc = null;
try
{
string batDir = string.Format(@"\\ServerY_IP\d$\E\D\");
proc = new Process();
proc.StartInfo.WorkingDirectory = batDir;
proc.StartInfo.FileName = file;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.Verb = @"runas";
proc.StartInfo.Domain = "ServerY_IP";
proc.StartInfo.LoadUserProfile = true;
proc.Start();
Console.WriteLine(file + " is being executed");
WriteLog(file + " is being executed");
proc.WaitForExit(); //wait forever
Thread.Sleep(TimeSpan.FromMinutes(30));
Console.WriteLine(file + " file completed.");
WriteLog(file + " file completed.");
}
catch (Exception ex)
{
WriteLog("Process finished with Errors" + ex.Message);
}
}
Я передаю файл "kick.bat" в качестве значения аргумента этому. Этот файл нужен мне как администратор.
Чтобы устранить эту проблему, я также создал другой пакетный файл в той же папке, и он работает, но этот «kick.bat» не запускается.
Я обнаружил вероятную проблему с ним, запустив его в тесте. После запуска задачи в тесте я получил всплывающее окно с предложением сказать «да» или «нет» для запуска файла с правами администратора. Как я могу вставить да для приглашения в моем C # сценарии?