O que você quer dizer com uma função engole toda a sua saída?
Eu tentei isso e recebi as mesmas saídas:
function MySS {
[cmdletbinding()]
param (
[string] $SearchString
)
Process {
Get-Command | Out-String -Stream | Select-String -Pattern $SearchString
}
}
Executar Get-Member e GetType na saída retornam da mesma forma a função e o comando canalizado.
EDIT: Se você queria para nós outras funções de origem
function MySS2 {
[cmdletbinding()]
param (
[Parameter(
Mandatory = $True,
ValueFromPipeline = $true)]
$input,
[Parameter(
Mandatory = $True,
ValueFromPipeline = $false,
Position = 0)]
[string] $SearchString
)
Process {
$input | Out-String -Stream | Select-String -Pattern $SearchString
}
}
por exemplo,
Get-Command | MySS2 "Get"
get-help get-alias | MySS2 "Get"
EDIT: forma mais simples (string de seleção comentada):
function MyOSS {
param ($input)
$input | Out-String -Stream #| Select-String "Get"
}
EDIT: edição final eu acho! : -)
Eu vejo que você descobriu sozinho Jonathan - feliz por ter ajudado e eu não sabia que você poderia usar $ input sem declarar isso como um parâmetro. Isso é legal.