Get-Credential

사용자 이름 및 암호를 기반으로 자격 증명 개체를 가져옵니다.

Syntax

Get-Credential
   [[-Credential] <PSCredential>]
   [<CommonParameters>]
Get-Credential
   [-Message <String>]
   [[-UserName] <String>]
   [-Title <String>]
   [<CommonParameters>]

Description

cmdlet은 Get-Credential 지정된 사용자 이름 및 암호에 대한 자격 증명 개체를 만듭니다. 보안 작업에서 자격 증명 개체를 사용할 수 있습니다.

cmdlet은 Get-Credential 사용자에게 암호 또는 사용자 이름 및 암호를 묻는 메시지를 표시합니다. 메시지 매개 변수를 사용하여 프롬프트에 대해 사용자 지정된 메시지를 지정할 수 있습니다.

Windows PowerShell 5.1 이전 버전에서 Windows는 사용자 이름과 암호를 묻는 대화 상자를 표시합니다. PowerShell 6.0 이상에서는 모든 플랫폼에 대한 프롬프트가 콘솔에 표시됩니다.

예제

예 1

$c = Get-Credential

이 명령은 자격 증명 개체를 가져오고 변수에 $c 저장합니다.

명령을 입력하면 사용자 이름과 암호를 입력하라는 메시지가 표시됩니다. 요청된 정보를 입력하면 cmdlet은 사용자의 자격 증명을 나타내는 PSCredential 개체를 만들고 변수에 $c 저장합니다.

자격 증명 매개 변수를 사용하는 것과 같이 사용자 인증을 요청하는 cmdlet에 대한 입력으로 개체를 사용할 수 있습니다. 그러나 PowerShell과 함께 설치된 일부 공급자는 자격 증명 매개 변수를 지원하지 않습니다.

예제 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 메서드는 cmdlet을 사용하는 대신 사용할 Get-Credential 수 있습니다. PromptForCredential을 사용하는 경우 프롬프트에 표시되는 캡션, 메시지 및 사용자 이름을 지정할 수 있습니다.

자세한 내용은 SDK의 PromptForCredential 설명서를 참조하세요.

예시 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 저장합니다. 이 값은 "도메인\사용자" 또는 "컴퓨터이름\사용자" 형식이어야 합니다.

두 번째 명령은 cmdlet을 ConvertTo-SecureString 사용하여 일반 텍스트 암호에서 보안 문자열을 만듭니다. 이 명령은 AsPlainText 매개 변수를 사용하여 문자열이 일반 텍스트임을 나타내고 Force 매개 변수를 사용하여 일반 텍스트 사용의 위험을 이해하고 있는지 확인합니다.

세 번째 명령은 cmdlet을 New-Object 사용하여 변수 및 $PWord 값에서 PSCredential 개체를 $User 만듭니다.

예제 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:

이 명령은 cmdlet의 MessageUserName 매개 변수를 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 원격 컴퓨터에서 자격 증명을 가져옵니다. 이 명령은 cmdlet을 Invoke-Command 사용하여 원격 컴퓨터에서 Get-Credential 명령을 실행합니다. 출력에는 인증 프롬프트에 포함된 Get-Credential 원격 보안 메시지가 표시됩니다.

매개 변수

-Credential

자격 증명의 사용자 이름(예: User01 또는 Do기본01\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

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

PSCredential

이 cmdlet은 자격 증명 개체를 반환합니다.

참고

자격 증명 매개 변수가 있는 Get-Credential 개체와 같이 사용자 인증을 요청하는 cmdlet에서 만드는 PSCredential 개체를 사용할 수 있습니다.

Credential 매개 변수는 PowerShell과 함께 설치된 모든 공급자에서 지원되지 않습니다. PowerShell 3.0부터는 cmdlet과 New-PSDrive 같은 선택 cmdlet에서 Get-Content 지원됩니다.