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
.
Вторая команда отображает значение свойства Username полученного объекта учетных данных.
Пример 3
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Эта команда использует метод PromptForCredential, чтобы запросить у пользователя его имя пользователя и пароль. Команда сохраняет полученные учетные данные в переменной $Credential
.
Метод PromptForCredential является альтернативой использованию командлетаGet-Credential
. При использовании PromptForCredential можно указать подпись, сообщения и имя пользователя, отображаемое в запросе.
Дополнительные сведения см. в документации по ЗапросуForCredential в пакете 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
. Убедитесь, что значение соответствует формату Domain\User или ComputerName\User.
Вторая команда использует Read-Host
командлет для создания безопасной строки из входных данных пользователя. Параметр Запроса запрашивает входные данные пользователя, а параметр 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\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 , который создает в командлетах, Get-Credential
запрашивающих проверку подлинности пользователя, например с параметром Credential .
Параметр Credential не поддерживается всеми поставщиками, установленными с помощью PowerShell.
Начиная с PowerShell 3.0, он поддерживается для выбора командлетов, таких как Get-Content
командлеты и New-PSDrive
командлеты.
Связанные ссылки
PowerShell