Это происходит, так как классы работают не так, как обычный Powershell.
В методах классов никакие объекты не отправляются в конвейер, кроме тех, которые упомянуты в операторе return.
Таким образом, нужна переменная-член, которая хранит результат функции. Затем к выходу можно получить доступ через член или, скажем, распечатать с помощью write-host
.
class Test
{
$p =@()
TestFunction()
{
$this.p=Get-Process # or get-process|write-host
}
}
[Test]$object = [Test]::new()
$object.TestFunction()
$object.p
# Prints process list