Декораторы и параметры должны быть размещены в верхней части скрипта.
Итак, объявление вашего параметра ([CmdletBinding]
до конца блока param()
) должно быть вверху скрипта. Затем вы можете полностью включить эту другую функцию. Например, это будет выглядеть так ...
[Parameter(ValueFromPipeline)]
[Alias("s")]
[IPAddress]$DNSServer = $null,
[Parameter(ValueFromPipeline)]
[Alias("f")]
[String]$Filename = "Traceroute_$Target"
)#end of your original param block
Function Get-TraceRoute{
param(
[Parameter(Mandatory=$True,ValueFromPipeline=$True)]
[String]$Target,
#. omitting 230 lines.#
$PerTraceArr | Format-Table -Autosize
}#end of Get-TraceRoute
Затем вы должны завершить сценарий следующим образом:
}#end of Get-TraceRoute
Get-TraceRoute -Target $ip #or whichever params you want to pass in to your `.ps1` file.