Win32Exception при попытке запустить файл .bat от имени конкретного пользователя - PullRequest
1 голос
/ 06 мая 2011

Я пытаюсь запустить командный файл на сервере со страницы ASP.NET. Пакетный файл должен быть запущен под определенной учетной записью пользователя, чтобы быть успешным.

Мой код для запуска пакетного файла без , он работает под определенной учетной записью, работает нормально (когда он работает под SYSTEM), но пакетный файл не выполняется успешно.

Что мне нужно сделать, это запустить его под определенной учетной записью (Администратор) на сервере, но когда я добавляю код для запуска под этой учетной записью, я получаю исключение:

System.ComponentModel.Win32Exception (0x80004005): доступ запрещен в System.Diagnostics.Process.StartWithCreateProcess (ProcessStartInfo startInfo) в System.Diagnostics.Process.Start ()

Аккаунт определенно существует (он единственный на этом компьютере) и обладает правами администратора. Кроме того, если я войду на физический компьютер и запусту файл .bat вручную под учетной записью, он будет работать нормально.

Вот мой код:

Process m_oProc = new Process();
ProcessStartInfo oInfo = new ProcessStartInfo(batchFileLocation);

oInfo.WorkingDirectory = Path.GetDirectoryName(batchFileLocation);
oInfo.UseShellExecute = false;
oInfo.RedirectStandardOutput = true;
oInfo.RedirectStandardError = true;

// ------ This code seems to cause the exception ------ //

string prePassword = "myadminpassword";
SecureString passwordSecure = new SecureString();
char[] passwordChars = prePassword.ToCharArray();
foreach (char c in passwordChars)
{
     passwordSecure.AppendChar(c);
}

oInfo.UserName = "admin";
oInfo.Password = passwordSecure;

// ---------------------------------------------------- //

m_oProc.StartInfo = oInfo;
if (m_oProc.Start())
{
      log.Info("Debug: Process has started successfully");
}
else
{
      log.Error("Some error occured starting the process.");
}

Может кто-нибудь сказать мне, что я делаю не так?

1 Ответ

0 голосов
/ 09 мая 2011

Поскольку это внутреннее приложение, я просто установил Идентичность пула приложений для учетной записи, под которой я хочу работать - это решило мои проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...