К сожалению, вы не можете напрямую использовать командлет Invoke-Item
. Эта команда let имеет тип возврата void и не имеет опций, позволяющих ждать.
Наилучший доступный вариант - определить собственную функцию, которая обернет Process
API следующим образом:
function Invoke-Command() {
param ( [string]$program = $(throw "Please specify a program" ),
[string]$argumentString = "",
[switch]$waitForExit )
$psi = new-object "Diagnostics.ProcessStartInfo"
$psi.FileName = $program
$psi.Arguments = $argumentString
$proc = [Diagnostics.Process]::Start($psi)
if ( $waitForExit ) {
$proc.WaitForExit();
}
}