A PowerShell 4.0-ben jelent meg egy új lehetőség, mellyel bizonyos paramétereket el tudunk rejteni az Intellisense és a TAB kiegészítés elől. Ezt a DontShow paraméter attribútummal érhetjük el, mint ahogy az alábbi példában a $másik paraméternél láthatjuk:
function RejtettParaméter {
param(
[Parameter(Mandatory = $true)] $egyik,
[Parameter(DontShow = $true)] $másik = 1,
[Parameter()] $harmadik
)
$egyik + $másik + $harmadik
}
Ha ezután ezt a függvényt meg szeretnénk hívni, és az ISE-ben a függvény nevének beírása után megnyomjuk a kötőjel karaktert, akkor a lehetséges paraméternevek között csak az egyik és a harmadik jelenik meg, a második rejtve marad:
105 . ábra Paraméter elrejtése a DontShow attribútummal
Ugyanez történik TAB kiegészítésnél is. De természetesen ennek ellenére használhatjuk ezt a paramétert is:
PS C:\> RejtettParaméter -egyik 10 -másik 100 -harmadik 1
111
Az elrejtés tényleg csak az Intellisense-t és a TAB kiegészítést érinti, ha lekérdezzük a függvény paramétereit a Get-Command-al, akkor azért láthatóvá válnak a rejtett paraméterek is:
PS C:\> (Get-Command RejtettParaméter).Parameters
Key Value
--- -----
egyik System.Management.Automation.ParameterMetadata
másik System.Management.Automation.ParameterMetadata
harmadik System.Management.Automation.ParameterMetadata
ErrorAction System.Management.Automation.ParameterMetadata
WarningAction System.Management.Automation.ParameterMetadata
InformationAction System.Management.Automation.ParameterMetadata
Verbose System.Management.Automation.ParameterMetadata
Debug System.Management.Automation.ParameterMetadata
ErrorVariable System.Management.Automation.ParameterMetadata
WarningVariable System.Management.Automation.ParameterMetadata
InformationVariable System.Management.Automation.ParameterMetadata
OutVariable System.Management.Automation.ParameterMetadata
OutBuffer System.Management.Automation.ParameterMetadata
PipelineVariable System.Management.Automation.ParameterMetadata