Sdílet prostřednictvím


Get-Credential

Získá objekt přihlašovacích údajů na základě uživatelského jména a hesla.

Syntaxe

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

Description

Rutina Get-Credential vytvoří objekt přihlašovacích údajů pro zadané uživatelské jméno a heslo. Objekt přihlašovacích údajů můžete použít v operacích zabezpečení.

Počínaje PowerShellem 3.0 můžete pomocí parametru Zpráva zadat v dialogovém okně přizpůsobenou zprávu, která uživatele vyzve k zadání jména a hesla.

Rutina Get-Credential vyzve uživatele k zadání hesla nebo uživatelského jména a hesla. Ve výchozím nastavení se zobrazí dialogové okno pro ověření, které uživatele vyzve. V některých hostitelských programech, jako je například konzola PowerShellu, ale můžete uživatele na příkazovém řádku vyzvat změnou položky registru. Další informace o této položce registru najdete v poznámkách a příkladech.

Příklady

Příklad 1

$c = Get-Credential

Tento příkaz získá objekt přihlašovacích údajů a uloží ho $c do proměnné.

Po zadání příkazu se zobrazí dialogové okno s žádostí o uživatelské jméno a heslo. Když zadáte požadované informace, rutina vytvoří objekt PSCredential představující přihlašovací údaje uživatele a uloží ho do $c proměnné.

Objekt můžete použít jako vstup pro rutiny, které požadují ověření uživatele, jako jsou například rutiny s parametrem Credential . Někteří poskytovatelé, kteří jsou nainstalováni pomocí PowerShellu , ale parametr Credential nepodporují.

Příklad 2

$c = Get-Credential -credential User01
$c.Username
User01

Tento příklad vytvoří přihlašovací údaje, které obsahují uživatelské jméno bez názvu domény.

První příkaz získá přihlašovací údaje s uživatelským jménem User01 a uloží ho $c do proměnné. Druhý příkaz zobrazí hodnotu vlastnosti Username výsledného objektu pověření.

Příklad 3

$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")

Tento příkaz používá metodu PromptForCredential k zobrazení výzvy uživateli k zadání uživatelského jména a hesla. Příkaz uloží výsledné přihlašovací údaje do $Credential proměnné.

Metoda PromptForCredential je alternativou k použití rutiny Get-Credential . Při použití PromptForCredential můžete zadat titulek, zprávy a uživatelské jméno, které se zobrazí v poli zprávy.

Další informace najdete v dokumentaci PromptForCredential v sadě SDK.

Příklad 4

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

Tento příklad ukazuje, jak upravit registr tak, aby uživatel byl vyzván na příkazovém řádku místo pomocí dialogového okna.

Příkaz vytvoří položku registru ConsolePrompting a nastaví její hodnotu na True. Pokud chcete tento příkaz spustit, spusťte PowerShell s možností Spustit jako správce.

Pokud chcete k zobrazení výzvy použít dialogové okno, nastavte hodnotu ConsolePrompting na false ($false) nebo ji pomocí rutiny Remove-ItemProperty odstraňte.

Položka registru ConsolePrompting funguje v některých hostitelských programech, jako je například konzola PowerShellu. Nemusí fungovat ve všech hostitelských programech.

Příklad 5

Tento příklad ukazuje, jak vytvořit objekt pověření identický s objektem vráceným Get-Credential.

$User = "Domain01\User01"
$PWord = Read-Host -Prompt 'Enter a Password' -AsSecureString
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord

První příkaz přiřadí uživatelské jméno proměnné $User . Ujistěte se, že hodnota odpovídá formátu Domain\User nebo ComputerName\User.

Druhý příkaz pomocí rutiny Read-Host vytvoří zabezpečený řetězec ze vstupu uživatele. Parametr Prompt požaduje uživatelský vstup a parametr AsSecureString maskuje vstup a převede ho na zabezpečený řetězec.

Třetí příkaz pomocí rutiny New-Object vytvoří objekt PSCredential z hodnot uložených v $User proměnných a $PWord proměnných.

Příklad 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:

Tento příkaz používá parametry Message a UserName rutiny Get-Credential . Tento formát příkazu je určený pro sdílené skripty a funkce. V tomto případě zpráva uživateli řekne, proč jsou potřeba přihlašovací údaje, a dává mu jistotu, že požadavek je legitimní.

Příklad 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

Tento příkaz získá přihlašovací údaje ze vzdáleného počítače Serveru01. Příkaz používá rutinu Invoke-Command Get-Credential ke spuštění příkazu ve vzdáleném počítači. Výstup zobrazuje zprávu o vzdáleném zabezpečení, která Get-Credential obsahuje výzvu k ověření.

Parametry

-Credential

Určuje uživatelské jméno pro přihlašovací údaje, například User01 nebo Domain01\User01. Název -Credentialparametru je nepovinný.

Když příkaz odešlete a zadáte uživatelské jméno, zobrazí se výzva k zadání hesla. Pokud tento parametr vynecháte, zobrazí se výzva k zadání uživatelského jména a hesla.

Počínaje PowerShellem 3.0, pokud zadáte uživatelské jméno bez domény, Get-Credential už před název nevloží zpětné lomítko.

Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.

Poznámka:

Další informace o ochraně dat SecureString naleznete v tématu Jak zabezpečený je SecureString?.

Typ:PSCredential
Position:1
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-Message

Určuje zprávu, která se zobrazí v výzvě k ověření. Tento parametr je určený pro použití ve funkci nebo skriptu. Pomocí zprávy můžete uživateli vysvětlit, proč požadujete přihlašovací údaje a jak se budou používat.

Tento parametr byl představen v PowerShellu 3.0.

Typ:String
Position:Named
Default value:None
Vyžadováno:True
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

-UserName

Určuje uživatelské jméno. Výzva k ověření požádá o heslo pro uživatelské jméno. Ve výchozím nastavení je uživatelské jméno prázdné a výzva k ověření vyžaduje uživatelské jméno i heslo.

Po zobrazení výzvy k ověření v dialogovém okně může uživatel upravit zadané uživatelské jméno. Uživatel však nemůže změnit uživatelské jméno, když se na příkazovém řádku zobrazí výzva. Při použití tohoto parametru ve sdílené funkci nebo skriptu zvažte všechny možné prezentace.

Tento parametr byl představen v PowerShellu 3.0.

Typ:String
Position:1
Default value:None (blank)
Vyžadováno:False
Přijmout vstup kanálu:False
Přijmout zástupné znaky:False

Vstupy

None

Do této rutiny nemůžete roušit objekty.

Výstupy

PSCredential

Tato rutina vrátí objekt přihlašovacích údajů.

Poznámky

Můžete použít objekt PSCredential , který Get-Credential se vytvoří v rutinách, které požadují ověření uživatele, například ty s parametrem Credential .

Ve výchozím nastavení se v dialogovém okně zobrazí výzva k ověření. Pokud chcete zobrazit výzvu k ověření na příkazovém řádku, přidejte položku registru ConsolePrompting (HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting) a nastavte její hodnotu na True. Pokud položka registru ConsolePrompting neexistuje nebo pokud je její hodnota False, zobrazí se výzva k ověření v dialogovém okně. Pokyny najdete v příkladech.

Položka registru ConsolePrompting funguje v konzole PowerShellu, ale nefunguje ve všech hostitelských programech.

Například nemá žádný vliv na integrované skriptovací prostředí (ISE) PowerShellu. Informace o účinku položky registru ConsolePrompting naleznete v tématech nápovědy pro hostitelský program.

Parametr Credential není podporován všemi poskytovateli nainstalovanými pomocí PowerShellu. Počínaje PowerShellem 3.0 se podporuje u vybraných rutin, jako jsou rutiny Get-Content a New-PSDrive rutiny.