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 = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

Первая команда сохраняет имя учетной записи пользователя в параметре $User . Значение должно иметь формат Domain\User или ComputerName\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\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 командлеты.