Get-Credential

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

구문

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

Description

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

PowerShell 3.0부터 Message 매개 변수를 사용하여 대화 상자에서 사용자 지정 메시지를 지정하여 사용자에게 이름과 암호를 묻는 메시지를 표시할 수 있습니다.

cmdlet은 Get-Credential 사용자에게 암호 또는 사용자 이름 및 암호를 묻는 메시지를 표시합니다. 기본적으로 인증 대화 상자가 표시되어 사용자에게 메시지를 표시합니다. 그러나 PowerShell 콘솔과 같은 일부 호스트 프로그램에서는 레지스트리 항목을 변경하여 명령줄에서 사용자에게 메시지를 표시할 수 있습니다. 이 레지스트리 항목에 대한 자세한 내용은 참고 사항 및 예제를 참조하세요.

예제

예 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

Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds" -Name ConsolePrompting -Value $true

이 예제에서는 대화 상자를 사용하는 대신 명령줄에서 사용자에게 메시지가 표시되도록 레지스트리를 수정하는 방법을 보여줍니다.

이 명령은 ConsolePrompting 레지스트리 항목을 만들고 해당 값을 True로 설정합니다. 이 명령을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 PowerShell을 시작합니다.

대화 상자를 사용하여 메시지를 표시하려면 ConsolePrompting 값을 false($false)로 설정하거나 cmdlet을 Remove-ItemProperty 사용하여 삭제합니다.

ConsolePrompting 레지스트리 항목은 PowerShell 콘솔과 같은 일부 호스트 프로그램에서 작동합니다. 모든 호스트 프로그램에서 작동하지 않을 수 있습니다.

예시 5

이 예제에서는 반환 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" 형식을 따르는지 확인합니다.

두 번째 명령은 cmdlet을 Read-Host 사용하여 사용자 입력에서 보안 문자열을 만듭니다. 프롬프트 매개 변수는 사용자 입력을 요청하고, AsSecureString 매개 변수는 입력을 마스크하고 보안 문자열로 변환합니다.

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

예제 6

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 사용합니다. 이 명령 형식은 공유 스크립트 및 함수용으로 설계되었습니다. 이런 경우, 메시지를 통해 자격 증명이 필요한 이유를 알려 주며 요청이 적합하다는 확신을 줍니다.

예제 7

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 또는 Domain01\User01)을 지정합니다. 매개 변수 이름( -Credential선택 사항)입니다.

명령을 제출하고 사용자 이름을 지정하면 암호를 입력하라는 메시지가 표시됩니다. 이 매개 변수를 생략하면 사용자 이름과 암호를 묻는 메시지가 표시됩니다.

PowerShell 3.0부터 도메인 Get-Credential 없이 사용자 이름을 입력하는 경우 더 이상 이름 앞에 백슬래시를 삽입하지 않습니다.

자격 증명은 PSCredential 개체에 저장되고 암호는 SecureString으로 저장됩니다.

참고 항목

SecureString 데이터 보호에 대한 자세한 내용은 SecureString이 얼마나 안전한가요?를 참조하세요.

형식:PSCredential
Position:1
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-Message

인증 프롬프트에 표시되는 메시지를 지정합니다. 이 매개 변수는 함수 또는 스크립트에서 사용하도록 설계되었습니다. 메시지를 사용하여 자격 증명을 요청하는 이유와 자격 증명을 사용하는 방법을 사용자에게 설명할 수 있습니다.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다.

형식:String
Position:Named
Default value:None
필수:True
파이프라인 입력 허용:False
와일드카드 문자 허용:False

-UserName

사용자 이름을 지정합니다. 인증 프롬프트에서 사용자 이름에 대한 암호를 요청합니다. 기본적으로 사용자 이름은 비어 있으며 인증 프롬프트는 사용자 이름과 암호를 모두 요청합니다.

인증 프롬프트가 대화 상자에 나타나면 사용자가 지정된 사용자 이름을 편집할 수 있습니다. 그러나 명령줄에 프롬프트가 표시되면 사용자 이름을 변경할 수 없습니다. 공유 함수 또는 스크립트에서 이 매개 변수를 사용하는 경우 가능한 모든 프레젠테이션을 고려합니다.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다.

형식:String
Position:1
Default value:None (blank)
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

None

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

출력

PSCredential

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

참고

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

기본적으로 인증 프롬프트가 대화 상자에 나타납니다. 명령줄에 인증 프롬프트를 표시하려면 ConsolePrompting 레지스트리 항목(HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting)을 추가하고 해당 값을 True설정합니다. ConsolePrompting 레지스트리 항목이 없거나 해당 값이 False이면 인증 프롬프트가 대화 상자에 나타납니다. 지침은 예제를 참조하세요.

ConsolePrompting 레지스트리 항목은 PowerShell 콘솔에서 작동하지만 모든 호스트 프로그램에서 작동하지는 않습니다.

예를 들어 POWERShell ISE(통합 스크립팅 환경)에는 영향을 주지 않습니다. ConsolePrompting 레지스트리 항목의 효과에 대한 자세한 내용은 호스트 프로그램에 대한 도움말 항목을 참조하세요.

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