Я думаю, что вы запутались в наборе параметров. Вы создали пять отдельных наборов параметров, и только один из этих пяти может быть активным в любой момент. Если я правильно прочитал ваше намерение, вам нужна способность выполнить любое из следующих действий:
\Disable-ADAccounts.ps1 -days 7 -all -live
\Disable-ADAccounts.ps1 -days 7 -UsersOnly -live
\Disable-ADAccounts.ps1 -days 7 -ComputersOnly -live
\Disable-ADAccounts.ps1 -days 7 -all -test
\Disable-ADAccounts.ps1 -days 7 -UsersOnly -test
\Disable-ADAccounts.ps1 -days 7 -ComputersOnly -test
Если это так, вам нужно шесть разных групп параметров, а не пять. Каждый из ваших параметров должен входить в группы, в которых он необходим, поэтому что-то вроде этого:
[Parameter(Mandatory = $true, ParameterSetName = 'UsersOnlyLive')]
[Parameter(Mandatory = $true, ParameterSetName = 'UsersOnlyTest')]
[Switch]
$usersOnly,
[Parameter(Mandatory = $true, ParameterSetName = 'ComputersOnlyLive')]
[Parameter(Mandatory = $true, ParameterSetName = 'ComputersOnlyTest')]
[Switch]
$computersOnly,
[Parameter(Mandatory = $true, ParameterSetName = 'AllLive')]
[Parameter(Mandatory = $true, ParameterSetName = 'AllTest')]
[Switch]
$all,
[Parameter(Mandatory=$true)]
[string]
$days,
[switch]
$console,
[Parameter(Mandatory = $true, ParameterSetName = 'AllTest')]
[Parameter(Mandatory = $true, ParameterSetName = 'UsersOnlyTest')]
[Parameter(Mandatory = $true, ParameterSetName = 'ComputersOnlyTest')]
[switch]
$test,
[Parameter(Mandatory = $true, ParameterSetName = 'AllLive')]
[Parameter(Mandatory = $true, ParameterSetName = 'UsersOnlyLive')]
[Parameter(Mandatory = $true, ParameterSetName = 'ComputersOnlyLive')]
[switch]
$live
См. эту статью Microsoft для получения дополнительной информации о наборах параметров.
Надеюсь, это поможет.