2014-09-09 7 views
0

Как я могу использовать псевдоним только тогда, когда вызываю функцию cmdlet?Использовать псевдоним только для параметров в функции

Это мой код

Function Deploy-Citrix { 
[cmdletBinding(SupportsShouldProcess=$True)] 
Param(

[Parameter(Mandatory=$true)] 
[Alias("component")] 
[ValidateNotNullOrEmpty()] 
     [string]$componentparam, 

[Parameter(Mandatory=$true)] 
[Alias("ip")] 
[ValidateNotNullOrEmpty()] 
     [string]$ipaddressparam, 
     ) 

В этом случае для второго параметра, например, я могу использовать псевдоним -ip, но я также использовать -ipaddressparam.

Deploy-citrix -componentparam "toto" -ipaddressparam "172.22.0.100" 
Deploy-citrix -component "toto" -ip "172.22.0.100" 

Я могу использовать оба варианта, но я хочу отключить первый, я хочу иметь только псевдоним.

Я знаю, что могу переименовать свою переменную, но я не хочу касаться их во всем скрипте.

Как я могу это достичь?

Я использую Powershell v4.0

Благодарности

+1

Почему вы хотите создать функцию с именем параметра, которое вы не хотите использовать? – mjolinor

ответ

3

Если ваша цель запретить длинную форму, у вас нет выбора, кроме как переименовать параметр и удалить псевдоним.

Чтобы свести к минимуму изменения в вашем скрипте, вы можете создать переменную внутри функции, например.

Function Deploy-Citrix { 
    [cmdletBinding(SupportsShouldProcess=$True)] 
    Param(
     [Parameter(Mandatory=$true)] 
     [ValidateNotNullOrEmpty()] 
     [string]$ip) 

    $ipaddressparam = $ip 
    ...