Mehrere obligatorische Parametersätze

Ich arbeite an einer Funktion, die mehrere Parametersätze enthält, von denen einige obligatorisch und einige optional sind.

Dies ist nur ein Beispiel, stellen Sie sich jedoch die folgende Situation vor:

Eine Funktion zum Hinzufügen oder Entfernen eines Benutzers oder eines Computers zu einer AD-Gruppe (wobei aus irgendeinem Grund zwischen Benutzern und Computern unterschieden werden muss).

Bitte denk daran Dies ist nur ein Beispiel. In diesem Fall wäre es viel einfacher, eine einzelne hinzuzufügen / zu entfernen[string] Parameter mit einemValidateSet(), aber das ist nebensächlich.

Sie haben also 4 Parametersätze:

Param
(
    [Parameter(ParameterSetName = 'Add', Mandatory = $true)][switch] $Add,
    [Parameter(ParameterSetName = 'Remove', Mandatory = $true)][switch] $Remove,

    [Parameter(ParameterSetName = 'User', Mandatory = $true)][switch] $User,
    [Parameter(ParameterSetName = 'Computer', Mandatory = $true)][switch] $Computer
)

Das Problem ist jetzt, dass Sie nur einen der vier Parameter anstelle von (Hinzufügen oder Entfernen) und (Benutzer oder Computer) verwenden können.

Ich weiß, dass es möglich ist, mehrere Parametersätze pro Parameter zu verwenden, aber ich sehe keine Möglichkeit, zwei Parametersätze zu erzwingen, die immer obligatorisch sind. Tatsächlich müssen Sie immer entweder Hinzufügen oder Entfernen sowie Benutzer oder Computer angeben.

Wie geht das?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage