Продолжим рассмотрение методов переменной $host. В этой статье мы разберем метод PromptForCredential.
Другие статьи серии:
Методы переменной $Host. Часть 1.
Методы переменной $Host. Часть 2.
$Host.UI.PromptForChoice
Метод PromptForCredential имеет два набора параметров.
Первый, принимающий четыре параметра:
$Host.UI.PromptForCredential(string caption, string message, string userName, string targetName)
а также более расширенный вариант
$Host.UI.PromptForCredential(string caption, string message, string userName, string targetName,System.Management.Automation.PSCredentialTypes allowedCredentialTypes,System.Management.Automation.PSCredentialUIOptions options).
В качестве результата метод возвращает объект System.Management.Automation.PSCredential.
Начнем с рассмотрения первого набора параметров.
Caption — текст заголовка окна запроса пароля.
Message — текст сообщения, выводимого в этом же окне.
UserName — имя пользователя.
TargetName — имя компьютера или домена, где будут использованы полученные учетные данные.
В результате выполнения команды мы получим следующее:
Второй вариант использования метода отличается от первого наличием двух дополнительных параметров: allowedCredentialTypes и options.
Параметр allowedCredentialTypes представляет из себя энумератор System.Management.Automation.PSCredentialTypes, и может принимать одно из трех значений — Default, Domain и Generic.
Default — значение по умолчанию, которое соответствует второму значению — Domain.
При использовании Default или Domain мы получим учетные данные в виде Domain\UserName или ComputerName\UserName, то есть точно так, как и в предыдущем варианте с указанием четырех параметров.
Если же мы укажем значение параметра как Generic, учетные данные будут содержать только имя пользователя, без указания имени компьютера или домена.
Параметр Options — это энумератор System.Management.Automation.PSCredentialUIOptions, принимающий значения AlwaysPrompt, Default, None, ReadOnlyUserName и ValidateUserNameSyntax.
При вызове метода нам не обязательно указывать параметры именно в таком виде, мы можем их передать и без указания типа параметра.
А так как энумераторы — это фактически значения типа Int, то мы также можем указать их в этом виде. Для определения соответствия текстового значения цифровому, мы воспользуемся командой Format-List c параметром -Force.
Кроме того, мы можем напрямую запросить значение свойства value__.
В итоге команда будет выглядеть следующим образом:
Страницы в социальных сетях:
Twitter: https://twitter.com/vsseth
Facebook: https://fb.com/inpowershell
VKontakte: https://vk.com/inpowershell