работает pskill.exe "доступ запрещен" - PullRequest
1 голос
/ 19 июля 2010

Я пытаюсь завершить процесс удаленно, используя pskill.

Из командной строки pskill отлично работает, но при попытке выполнить ту же команду в C # я получаю сообщение об ошибке отказа в доступе.

    var startInfo = new ProcessStartInfo {
                                            FileName = "pskill.exe",
                                            Arguments = "-t \\" + _currentMachine + 
                                                        " -u BobSmith -p Pass123 " + _currentService + 
                                                        " /acceptEULA"
                                         };

    try {
        using (Process exeProcess = Process.Start(startInfo)) {
            exeProcess.WaitForExit();
        }
    } catch {
        Console.WriteLine("Cannot forcibly kill process.");
    }

Я даже пытался создать файл .bat, который работает нормально вручную, но я получаю ту же ошибку при попытке вызвать .bat из C #.

Я на машине с XP пытаюсь получить доступ к серверу win 2003.

Ответы [ 3 ]

1 голос
/ 19 июля 2010

Для следующего парня ...

pskill.exe необходимо запустить в режиме совместимости с Win2000.

0 голосов
/ 19 июля 2010

В C # символы в строках по умолчанию экранированы.Строка, которую вы назначаете Аргументам, содержит два управляющих символа.Я подозреваю, что они превращены в единую обратную косую черту.Чтобы решить эту проблему, добавьте @ перед определением строки.

  Arguments = @"-t \\" + _currentMachine + 

В любом случае я бы предложил добавить код, чтобы записать всю командную строку в текстовый файл и проверить, что это так, как вынужно это.Если текстовый файл имеет расширение bat, можете ли вы его успешно запустить?

0 голосов
/ 19 июля 2010

Я бы дважды проверил ваши полномочия. Это либо так, либо ваш процесс «заблокирован».

...