При получении командлета TimeoutException
из Wait-Process
я получаю значение, отличное от ожидаемого TargetObject
.
При выполнении следующего кода:
try {
$a = Start-Process -FilePath notepad -ArgumentList ".\test.txt" -Passthru
Wait-Process -Name $a.name -Timeout 1 -ErrorAction Stop
} catch {
#
# Would expect $error[0].TargetObject to be equal to $a
#
Write-Output $($error[0].TargetObject.StartInfo.Arguments)
}
Я ожидал бы получить ".\test.txt"
в качестве вывода, но вместо этого я получил бы пустую строку.
Фактически, $error[0].TargetObject
является объектомтипа System.Diagnostics.Process
, но отсутствуют некоторые атрибуты из исходного $a
, как, например, атрибут StartInfo.Arguments
.
Кто-нибудь знает, почему $error[0].TargetObject
пропускает эти атрибуты из оригинала $a
?
Или мое предположение неверно?