O PowerShell tem semântica de retorno realmente maluca - pelo menos quando vista de uma perspectiva de programação mais tradicional. Há duas idéias principais para você entender:
- Toda a saída é capturada e retornada
- A palavra-chave return realmente indica apenas um ponto de saída lógico
Portanto, os dois blocos de script a seguir farão exatamente a mesma coisa:
$a = "Hello, World"
return $a
$a = "Hello, World"
$a
return
A variável $ a no segundo exemplo é deixada como saída no pipeline e, como mencionado, toda a saída é retornada. De fato, no segundo exemplo, você poderia omitir completamente o retorno e obteria o mesmo comportamento (o retorno seria implícito, pois a função naturalmente termina e sai).
Sem mais definições de função, não sei dizer por que você está recebendo um objeto PSMethod. Meu palpite é que você provavelmente tem algo que algumas linhas acima não estão sendo capturadas e estão sendo colocadas no pipeline de saída.
Também é importante notar que você provavelmente não precisa desses pontos e vírgulas - a menos que esteja aninhando várias expressões em uma única linha.
Você pode ler mais sobre a semântica de retorno na página about_Return no TechNet ou chamando o help return
comando do próprio PowerShell.