Ошибка Logparser при использовании с PowerShell

Я пытаюсь использовать Log Parser в PowerShell для экспорта файла журнала Windows Evtx в CSV:

$logparser = "c:\program files (x86)\Log Parser 2.2\logparser.exe"
$allArgs = ("SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx", "-i:evt", "-o:csv")
$ps = Start-Process -FilePath $logparser -ArguementList $allArgs -Wait -Passthru -NoNewWindow;
$ps.WaitForExit()
$ps.ExitCode;

Но когда я запускаю это, я получаю ошибку:

Ошибка: обнаружен дополнительный аргумент "*" после запроса

Код ошибки - 13. Я попытался поместить пути в одинарные кавычки и запустить их из того же каталога, что и журналы, но он продолжает возвращать ту же ошибку.

 smwk14 июн. 2016 г., 12:16
К сожалению нет, я пробовал несколько способов, но он всегда возвращается с той же ошибкой,
 whatever14 июн. 2016 г., 12:11
делает$allArgs = @('SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx -i:evt -o:csv')  Работа?

Ответы на вопрос(1)

Решение Вопроса

иначе она не будет распознана порожденным процессом как один аргумент.

Поместите строку запроса (с двойными кавычками) в одинарные кавычки:

$allArgs = '"SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx"',
           "-i:evt",
           "-o:csv"

Тем не менее, гораздо более простым решением проблемы было бы избежатьStart-Process целиком и использовать оператор вызова (&) вместо:

$logparser = "c:\program files (x86)\Log Parser 2.2\logparser.exe"
$query = "SELECT * INTO c:\logs\logs.csv FROM c:\logs\logs.evtx"

& $logparser -i:evt -o:csv $query
 smwk14 июн. 2016 г., 12:24
Спасибо, я пошел со вторым вариантом, и он работал отлично.

Ваш ответ на вопрос