У меня есть эта функция:
function AlwaysRunAtLogon {
[CmdletBinding()]
param (
[Parameter(Mandatory=$true)]
[System.String]$NomTache,
[Parameter(Mandatory = $true)]
[System.String]$Script,
[switch]$retrait
)
...
}
Вариант использования # 1:
AlwaysRunAtLogon -NomTache AnyName C:\temp\script.ps1
, который будет запускать код для ДОБАВЛЕНИЯ чего-либо.Это работает нормально.Теперь я хочу добавить параметр SWITCH в свою функцию, чтобы он мог УДАЛИТЬ что-либо, основываясь на значении первого параметра (NomTache)
Так что вариант использования # 2 будет:
AlwaysRunAtLogon -NomTache AnyName -Retrait
Теперь вот проблема.В случае № 1 я хочу оставить обязательным $ Script, чтобы пользователь ДОЛЖЕН предоставить файл сценария.Однако в случае № 2 $ Script теперь является необязательным, поскольку для операций удаления требуется только первый параметр (NomTache)
Как мне адаптировать эту функцию, чтобы я мог использовать оба варианта 1 и 2?Возможно, где-то есть логическая проблема.Я новичок в функциях, так что спасибо за вашу помощь.Я открыт для любого редизайна.
Мне лучше сделать другую функцию, например «RemoveAlwaysRunAtLogon», и запустить ее так?:
RemoveAlwaysRunAtLogon -NomTache AnyName