Не уверен, что это ваша проблема, но вы вызываете Start-Process для переменной $ exeFiles, а не
for ($file in $exeFiles)
{
start-process $file (...etc)
}
Вы также передаете аргументы как строку, так что я подозреваю, что они не доходят до exe. если вы передаете аргументы в start-process, они должны быть в форме массива, по одной строке на элемент в массиве. Кроме того, powershell использует $ args и кажется неизменным, поэтому вам нужно другое имя переменной:
Итак, ваш код должен выглядеть примерно так:
$directory = "C:\test"
$exeFiles = Get-ChildItem -path $directory -recurse -include *.exe
foreach($file in $exefiles)
{
$myArgs = '/quiet', ('/extract:"' + $directory + '"')
Start-Process $file $myArgs -PassThru | Wait-Process
}