Ваша проблема в том, что вы записываете два значения в выходной поток, который используется для передачи значений между функциями (по конвейеру).
Откуда берутся значения:
# Below return "True" to the output-stream
$Process.Start()
...
# Below appends the content of "result" and return from the function
return $result
Прочтите ссылку о потоках.Вкратце: каждое возвращаемое значение команды записывается в выходной поток, если только вы не сохраняете результат в переменной.
Я думаю, вам нужно изменить
$Process.Start()
до
$Process.Start() | Out-Null
Над строкой отбрасывается возвращаемое значение True
.В качестве альтернативы вы можете сохранить результат в переменной и оставить его неиспользованным, например:
$rv = $Process.Start()
Также следует учитывать, что оператор PowerShells return
имеет другое поведение по сравнению с, например,C # один.
Ваша линия:
return $result
эквивалентна:
# Append content to output stream
$result
# return from the function
return
Прочитайте эту ссылку для получения дополнительной информации овернуться.
Надеюсь, это поможет.