Поиск по сайту:

Get-Credential (Microsoft.PowerShell.Security)


Get-Credential

Модуль:
Microsoft.PowerShell.Security

Получает объект учетных данных на основе имени пользователя и пароля.

Синтаксис

Get-Credential
   [[-Credential] <PSCredential>]
   [<CommonParameters>]
Get-Credential
   [-Message <String>]
   [[-UserName] <String>]
   [-Title <String>]
   [<CommonParameters>]

Описание

Командлет Get-Credential создает объект учетных данных для указанного имени пользователя и пароля. Вы можете использовать объект учетных данных в операциях безопасности.

Командлет Get-Credential запрашивает у пользователя пароль или имя пользователя и пароль. Вы можете использовать параметр Message, чтобы указать индивидуальное сообщение для приглашения.

В Windows PowerShell 5.1 и более ранних версиях Windows представляет диалоговое окно с запросом имени пользователя и пароля. В PowerShell 6.0 и более поздних версиях приглашение отображается в консоли для всех платформ.

Примеры

Пример 1

$c = Get-Credential

Эта команда получает объект учетных данных и сохраняет его в переменной $c.

При вводе команды вам будет предложено ввести имя пользователя и пароль. Когда вы вводите запрошенную информацию, командлет создает объект PSCredential, представляющий учетные данные пользователя, и сохраняет его в переменной $c.

Вы можете использовать объект в качестве входных данных для командлетов, запрашивающих аутентификацию пользователя, например с параметром Credential. Однако некоторые поставщики, установленные вместе с PowerShell, не поддерживают параметр Credential.

Пример 2

$c = Get-Credential -credential User01
$c.Username
User01

В этом примере создаются учетные данные, включающие имя пользователя без имени домена.

Первая команда получает учетные данные с именем пользователя User01 и сохраняет их в переменной $c. Вторая команда отображает значение свойства Имя пользователя результирующего объекта учетных данных.

Пример 3

$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

Эта команда использует метод PromptForCredential, чтобы запросить у пользователя имя пользователя и пароль. Команда сохраняет полученные учетные данные в переменной $Credential.

Метод PromptForCredential является альтернативой использованию командлета Get-Credential. Используя PromptForCredential, вы можете указать заголовок, сообщения и имя пользователя, которые будут отображаться в приглашении.

Дополнительные сведения см. в документации PromptForCredential в SDK.

Пример 4

В этом примере показано, как создать объект учетных данных, идентичный тому, который возвращается командой Get-Credential.

$User = "Domain01\User01"
$PWord = Read-Host -Prompt 'Enter a Password' -AsSecureString
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

Первая команда присваивает имя пользователя переменной $User. Убедитесь, что значение соответствует формату «Домен\Пользователь» или «ИмяКомпьютера\Пользователь».

Вторая команда использует командлет Read-Host для создания защищенной строки на основе пользовательского ввода. Параметр Prompt запрашивает ввод пользователя, а параметр AsSecureString маскирует вводимые данные и преобразует их в защищенную строку.

Третья команда использует командлет New-Object для создания объекта PSCredential на основе значений, хранящихся в $User и $PWord переменные.

Пример 5

Get-Credential -Message "Credential are required for access to the \\Server1\Scripts file share." -User Server01\PowerUser

PowerShell Credential Request
Credential are required for access to the \\Server1\Scripts file share.
Password for user Server01\PowerUser:

Эта команда использует параметры Message и UserName командлета Get-Credential. Этот формат команды предназначен для общих сценариев и функций. В этом случае сообщение сообщает пользователю, почему необходимы учетные данные, и дает ему уверенность в том, что запрос является законным.

Пример 6

Invoke-Command -ComputerName Server01 {Get-Credential Domain01\User02}

PowerShell Credential Request : PowerShell Credential Request
Warning: This credential is being requested by a script or application on the SERVER01 remote computer.
Enter your credentials only if you trust the remote computer and the application or script requesting it.

Enter your credentials.
Password for user Domain01\User02: ***************

PSComputerName     : Server01
RunspaceId         : 422bdf52-9886-4ada-ab2f-130497c6777f
PSShowComputerName : True
UserName           : Domain01\User01
Password           : System.Security.SecureString

Эта команда получает учетные данные с удаленного компьютера Server01. Команда использует командлет Invoke-Command для запуска команды Get-Credential на удаленном компьютере. В выводе показано сообщение удаленной безопасности, которое Get-Credential включает в запрос аутентификации.

Параметры

-Credential

Указывает имя пользователя для учетных данных, например User01 или Domain01\User01. Имя параметра -Credential является необязательным.

Когда вы отправляете команду и указываете имя пользователя, вам будет предложено ввести пароль. Если вы опустите этот параметр, вам будет предложено ввести имя пользователя и пароль.

Начиная с PowerShell 3.0, если вы вводите имя пользователя без домена, Get-Credential больше не вставляет обратную косую черту перед именем.

Учетные данные хранятся в объекте PSCredential, а пароль хранится в виде SecureString.

Примечание

Дополнительную информацию о защите данных SecureString см. в разделе Насколько безопасен SecureString?

Тип :

PSCredential

Позиция:

1

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Message

Указывает сообщение, которое появляется в приглашении на аутентификацию. Этот параметр предназначен для использования в функции или скрипте. Вы можете использовать сообщение, чтобы объяснить пользователю, почему вы запрашиваете учетные данные и как они будут использоваться.

Этот параметр был введен в PowerShell 3.0.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-Title

Задает текст строки заголовка для запроса аутентификации в консоли.

Этот параметр был введен в PowerShell 6.0.

Тип :

String

Позиция:

Именованный

Значение по умолчанию:

None

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

-UserName

Указывает имя пользователя. Приглашение на аутентификацию запрашивает пароль для имени пользователя. По умолчанию имя пользователя пустое, а запрос аутентификации запрашивает имя пользователя и пароль.

Этот параметр был введен в PowerShell 3.0.

Тип :

String

Позиция:

1

Значение по умолчанию:

Нет (пусто)

Необходимый:

False

Примите ввод конвейера:

False

Принимайте подстановочные знаки:

False

Входы

Нет

Вы не можете передавать объекты в этот командлет.

Выходы

PSCredential

Этот командлет возвращает объект учетных данных.

Примечания

Вы можете использовать объект PSCredential, который Get-Credential создает в командлетах, запрашивающих аутентификацию пользователя, например с параметром Credential.

Параметр Credential поддерживается не всеми поставщиками, установленными вместе с PowerShell. Начиная с PowerShell 3.0, он поддерживается некоторыми командлетами, такими как командлеты Get-Content и New-PSDrive.