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 можно указать подпись, сообщения и имя пользователя, которые отображаются в запросе.
Дополнительные сведения см. в документации по PromptForCredential в пакете SDK.
Пример 4
В этом примере показано, как создать объект учетных данных, идентичный объекту , возвращаемого Get-Credential
без запроса пользователю. Для этого метода требуется незашифрованный пароль, который может нарушать стандарты безопасности в некоторых организациях.
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Первая команда сохраняет имя учетной записи пользователя в параметре $User
. Значение должно иметь формат "домен\пользователь" или "имя компьютера\пользователь".
Вторая команда использует ConvertTo-SecureString
командлет для создания безопасной строки из пароля в виде обычного текста. Параметр AsPlainText команды указывает, что строка является обычным текстом, а параметр Force подтверждает, что вы понимаете риски использования обычного текста.
Третья команда использует 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?.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
Указывает сообщение, которое отображается в запросе проверки подлинности. Этот параметр предназначен для использования в функции или скрипте. В сообщении можно объяснить пользователю причину запроса учетных данных и способ их использования.
Этот параметр появился в PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
Задает текст строки заголовка для запроса проверки подлинности в консоли.
Этот параметр появился в PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Указывает имя пользователя. В запросе проверки подлинности необходимо указать пароль для имени пользователя. По умолчанию имя пользователя является пустым, а в запросе проверки подлинности требуется указать как имя пользователя, так и пароль.
Этот параметр появился в PowerShell 3.0.
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
None
Вы не можете передавать объекты в этот командлет.
Выходные данные
Этот командлет возвращает объект учетных данных.
Примечания
Можно использовать объект PSCredential , который Get-Credential
создается в командлетах, запрашивающих проверку подлинности пользователя, например с параметром Credential .
Параметр Credential поддерживается не всеми поставщиками, устанавливаемыми с помощью PowerShell.
Начиная с PowerShell 3.0, он поддерживается в некоторых командлетах, таких как Get-Content
командлеты и New-PSDrive
.