Get-Credential
사용자 이름 및 암호를 기반으로 자격 증명 개체를 가져옵니다.
구문
Get-Credential
[-Credential] <PSCredential>
[<CommonParameters>]
Get-Credential
-Message <String>
[[-UserName] <String>]
[<CommonParameters>]
Description
Get-Credential cmdlet은 지정된 사용자 이름 및 암호에 대한 자격 증명 개체를 만듭니다. 보안 작업에서 자격 증명 개체를 사용할 수 있습니다.
Windows PowerShell 3.0부터 Message 매개 변수를 사용하여 대화 상자에서 사용자에게 이름과 암호를 묻는 사용자 지정 메시지를 지정할 수 있습니다.
Get-Credential cmdlet은 사용자에게 암호 또는 사용자 이름 및 암호를 묻는 메시지를 표시합니다. 기본적으로 인증 대화 상자가 표시되어 사용자에게 메시지를 표시합니다. 그러나 Windows PowerShell 콘솔과 같은 일부 호스트 프로그램에서는 레지스트리 항목을 변경하여 명령줄에서 사용자에게 메시지를 표시할 수 있습니다. 이 레지스트리 항목에 대한 자세한 내용은 참고 사항 및 예제를 참조하세요.
예제
예제 1
$c = Get-Credential
이 명령은 자격 증명 개체를 가져오고 $c 변수에 저장합니다.
명령을 입력하면 사용자 이름과 암호를 요청하는 대화 상자가 나타납니다. 요청된 정보를 입력하면 cmdlet은 사용자의 자격 증명을 나타내는 PSCredential 개체를 만들고 $c 변수에 저장합니다.
Credential 매개 변수가 있는 것과 같이 사용자 인증을 요청하는 cmdlet에 대한 입력으로 개체를 사용할 수 있습니다. 그러나 Windows PowerShell과 함께 설치된 일부 공급자는 자격 증명 매개 변수를 지원하지 않습니다.
예제 2
$c = Get-Credential
Get-WmiObject Win32_DiskDrive -ComputerName Server01 -Credential $c
이러한 명령은 WMI(Windows Management Instrumentation)를 사용하여 컴퓨터를 관리할 수 있도록 Get-Credential cmdlet이 반환하는 자격 증명 개체를 사용하여 원격 컴퓨터에서 사용자를 인증합니다.
첫 번째 명령은 자격 증명 개체를 가져오고 $c 변수에 저장합니다. 두 번째 명령은 Get-WmiObject 명령에서 자격 증명 개체를 사용합니다. 이 명령은 Server01 컴퓨터의 디스크 드라이브에 대한 정보를 가져옵니다.
예제 3
Get-WmiObject Win32_BIOS -ComputerName Server01 -Credential (Get-Credential -Credential Domain01\User01)
이 명령은 Get-WmiObject 명령에 Get-Credential 명령을 포함하는 방법을 보여줍니다.
이 명령은 Get-WmiObject cmdlet을 사용하여 Server01 컴퓨터의 BIOS에 대한 정보를 가져옵니다. 자격 증명 매개 변수를 사용하여 사용자, Domain01\User01 및 Get-Credential 명령을 자격 증명 매개 변수의 값으로 인증합니다.
예제 4
PS> $c = Get-Credential -credential User01
PS> $c.Username
User01
이 예제에서는 도메인 이름이 없는 사용자 이름을 포함하는 자격 증명을 만듭니다.
첫 번째 명령은 사용자 이름 User01이 있는 자격 증명을 가져오고 $c 변수에 저장합니다.
두 번째 명령은 결과 자격 증명 개체의 Username 속성 값을 표시합니다.
예제 5
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
이 명령은 PromptForCredential 메서드를 사용하여 사용자에게 사용자 이름 및 암호를 묻는 메시지를 표시합니다. 이 명령은 결과 자격 증명을 $Credential 변수에 저장합니다.
PromptForCredential 메서드는 Get-Credential cmdlet을 사용하는 대신 사용할 수 있습니다. PromptForCredential사용하는 경우 메시지 상자에 표시되는 캡션, 메시지 및 사용자 이름을 지정할 수 있습니다.
예제 6
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds" -Name ConsolePrompting -Value $true
이 예제에서는 대화 상자를 사용하는 대신 명령줄에서 사용자에게 메시지가 표시되도록 레지스트리를 수정하는 방법을 보여줍니다.
이 명령은 ConsolePrompting 레지스트리 항목을 만들고 해당 값을 True로 설정합니다. 이 명령을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.
대화 상자를 사용하여 메시지를 표시하려면 ConsolePrompting 값을 false($false)로 설정하거나 Remove-ItemProperty cmdlet을 사용하여 삭제합니다.
ConsolePrompting 레지스트리 항목은 Windows PowerShell 콘솔과 같은 일부 호스트 프로그램에서 작동합니다. 모든 호스트 프로그램에서 작동하지 않을 수 있습니다.
예제 7
이 예제에서는 사용자에게 메시지를 표시하지 않고 Get-Credential 반환하는
PS> $User = "Domain01\User01"
PS> $PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
PS> $Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
첫 번째 명령은 사용자 계정 이름을 $User 매개 변수에 저장합니다. 값은 "Domain\User" 또는 "ComputerName\User" 형식이어야 합니다.
두 번째 명령은 ConvertTo-SecureString cmdlet을 사용하여 일반 텍스트 암호에서 보안 문자열을 만듭니다. 이 명령은 AsPlainText 매개 변수를 사용하여 문자열이 일반 텍스트임을 나타내고 Force 매개 변수를 사용하여 일반 텍스트 사용의 위험을 이해하고 있는지 확인합니다.
세 번째 명령은 New-Object cmdlet을 사용하여 $User 및 $PWord 변수의 값에서 PSCredential 개체를 만듭니다.
예제 8
PS> Get-Credential -Message "Credential are required for access to the \\Server1\Scripts file share." -User Server01\PowerUsers
Windows PowerShell Credential Request
Credential are required for access to the \\Server1\Scripts file share.
Password for user ntdev\juneb:
이 명령은 Get-Credential cmdlet의 메시지 및 UserName 매개 변수를 사용합니다. 이 명령 형식은 공유 스크립트 및 함수용으로 설계되었습니다. 이 경우 메시지는 사용자에게 자격 증명이 필요한 이유를 알려주고 요청이 합법적이라는 확신을 줍니다.
예제 9
PS> Invoke-Command -ComputerName Server01 {Get-Credential Domain01\User02}
Windows PowerShell Credential Request : Windows 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 cmdlet을 사용하여 원격 컴퓨터에서 Get-Credential 명령을 실행합니다. 출력은 인증 프롬프트에 get-credential 포함하는
매개 변수
-Credential
자격 증명의 사용자 이름(예: "User01" 또는 "Domain01\User01")을 지정합니다. 매개 변수 이름("자격 증명")은 선택 사항입니다.
명령을 제출하면 암호를 입력하라는 메시지가 표시됩니다.
Windows PowerShell 3.0부터 도메인 없이 사용자 이름을 입력하는 경우 Get-Credential 더 이상 이름 앞에 백슬래시를 삽입하지 않습니다.
이 매개 변수를 생략하면 사용자 이름과 암호를 묻는 메시지가 표시됩니다.
형식: | PSCredential |
Position: | 1 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Message
인증 프롬프트에 표시되는 메시지를 지정합니다.
이 매개 변수는 함수 또는 스크립트에서 사용하도록 설계되었습니다. 메시지를 사용하여 자격 증명을 요청하는 이유와 자격 증명을 사용하는 방법을 사용자에게 설명할 수 있습니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-UserName
사용자 이름을 지정합니다. 인증 프롬프트가 사용자 이름에 대한 암호를 요청합니다. 기본적으로 사용자 이름은 비어 있으며 인증 프롬프트는 사용자 이름과 암호를 모두 요청합니다.
대화 상자에 인증 프롬프트가 나타나면 사용자가 지정된 사용자 이름을 편집할 수 있습니다. 그러나 명령줄에 프롬프트가 표시되면 사용자 이름을 변경할 수 없습니다. 공유 함수 또는 스크립트에서 이 매개 변수를 사용하는 경우 가능한 모든 프레젠테이션을 고려합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | String |
Position: | 1 |
Default value: | None (blank) |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
이 cmdlet에 입력을 파이프할 수 없습니다.
출력
Get-Credential 자격 증명 개체를 반환합니다.
참고
Get-Credential 사용자 인증을 요청하는 cmdlet에서 만드는
기본적으로 인증 프롬프트가 대화 상자에 나타납니다. 명령줄에 인증 프롬프트를 표시하려면 ConsolePrompting 레지스트리 항목(HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting)을 추가하고 해당 값을 True로 설정합니다. ConsolePrompting 레지스트리 항목이 없거나 해당 값이 False이면 인증 프롬프트가 대화 상자에 나타납니다. 지침은 예제를 참조하세요.
ConsolePrompting 레지스트리 항목은 Windows PowerShell 콘솔에서 작동하지만 모든 호스트 프로그램에서는 작동하지 않습니다.
예를 들어 Windows PowerShell ISE(통합 스크립팅 환경)에는 영향을 주지 않습니다. ConsolePrompting 레지스트리 항목의 효과에 대한 자세한 내용은 호스트 프로그램에 대한 도움말 항목을 참조하세요.
자격 증명 매개 변수는 Windows PowerShell과 함께 설치된 모든 공급자에서 지원되지 않습니다. Windows PowerShell 3.0부터는 선택한 cmdlet(예: Get-WmiObject 및 New-PSDrive cmdlet)에서 지원됩니다.