Поделиться через


Get-Credential

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

Синтаксис

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
$credentialParams = @{
    TypeName = 'System.Management.Automation.PSCredential'
    ArgumentList = $User, $PWord
}
$Credential = New-Object @credentialParams

Первая команда назначает имя пользователя переменной $User. Убедитесь, что значение соответствует формату Domain\User или ComputerName\User.

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

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

Пример 5

$credentialParams = @{
    Message = "Credential are required for access to the \\Server1\Scripts file share."
    UserName = "Server01\PowerUser"
}
Get-Credential @credentialParams

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 -ScriptBlock {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
Position:1
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Message

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

Этот параметр появился в PowerShell 3.0.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Title

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

Этот параметр появился в PowerShell 6.0.

Тип:String
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-UserName

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

Этот параметр появился в PowerShell 3.0.

Тип:String
Position:1
Default value:None (blank)
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

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

Выходные данные

PSCredential

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

Примечания

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

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