У меня есть сценарий PowerShell, который извлекает данные хоста, указанного в csv, и, если задан переключатель reboot
, также пытается перезагрузить хост. Следовательно, и только в случае перезагрузки требуются учетные данные.
Мой блок параметров выглядит так:
[CmdletBinding(DefaultParametersetName = 'None')]
Param(
[Parameter(Mandatory = $false)]
[ValidateNotNullOrEmpty()]
[ValidateScript( {
if ( -Not ($_ | Test-Path) ) {
throw "Source $_ does not exist"
}
return $true
})]
$path= $(Join-Path $PWD.Path "sources.csv"),
[Parameter(ParameterSetName = 'Extra', Mandatory = $false)]
[switch]$reboot,
[Parameter(ParameterSetName = 'Extra', Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[System.Management.Automation.PSCredential] $credential = $(Get-Credential -UserName myUser)
)
Мое ожидание: только если задано reboot
, Пользователю предлагается ввести учетные данные. Но всплывающее окно с учетными данными отображается независимо от того, какой параметр задан.
Я полагаю, это как-то связано со значением по умолчанию.