Не работает tasklist на удаленной машине

Подскажите пожалуйста, что за дела, где я неправильно делаю? Мне нужно получить процессы на удаленной машине. Если не использовать фильтр /FI, то я получаю, но стоит задать фильтр, как ничего не выводит.

using (Process dotnetProc = new Process())
            {
                dotnetProc.StartInfo.FileName = "powershell.exe";
                dotnetProc.StartInfo.Arguments = "tasklist /s 192.168.0.0 /u login /p pass /FI \"IMAGENAME eq 1cv7s.exe\"";
                dotnetProc.StartInfo.CreateNoWindow = true;
                dotnetProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                dotnetProc.StartInfo.UseShellExecute = false;
                dotnetProc.StartInfo.RedirectStandardOutput = true;
                dotnetProc.Start();
                Console.WriteLine(dotnetProc.StartInfo.Arguments);
                strings = "";
                do
                {
                    strings= dotnetProc.StandardOutput.ReadLine();
                }
                while (!dotnetProc.StandardOutput.EndOfStream);
                dotnetProc.WaitForExit();
            }

Если в powershell задать эту команду, то она будет выполнена введите сюда описание изображения

А вот через код ничего не выходит. В строку strings попросту ничего не записывается. Я и while и do while пробовал.И powershell на cmd менял. Через cmd кстати есть вывод, но я там получаю какие то огромные данные странных строк.

Потом... Я обрезал аргумент до

tasklist /s 192.168.0.0 /u login /p password

и успешно получал вывод всех процессов. А с фильтром, почему-то не работает. Я не так пишу аргумент, получается?


Ответы (1 шт):

Автор решения: Espoit

Был неверно передан аргумент. Нужно было

$@"tasklist /s 192.168.0.1 /u login /p password /FI " + '\'' + "IMAGENAME eq 1cv7s.exe" + '\''
→ Ссылка