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


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

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

Примечания

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

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