Dela via


Get-Credential

Hämtar ett autentiseringsobjekt baserat på ett användarnamn och lösenord.

Syntax

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

Description

Cmdleten Get-Credential skapar ett autentiseringsobjekt för ett angivet användarnamn och lösenord. Du kan använda autentiseringsobjektet i säkerhetsåtgärder.

Cmdleten Get-Credential frågar användaren om ett lösenord eller ett användarnamn och lösenord. Du kan använda parametern Meddelande för att ange ett anpassat meddelande för prompten.

I Windows PowerShell 5.1 och tidigare visar Windows en dialogruta för att fråga efter ett användarnamn och lösenord. I PowerShell 6.0 och senare visas uppmaningen i konsolen för alla plattformar.

Exempel

Exempel 1

$c = Get-Credential

Det här kommandot hämtar ett autentiseringsobjekt och sparar det i variabeln $c .

När du anger kommandot uppmanas du att ange ett användarnamn och lösenord. När du anger den begärda informationen skapar cmdleten ett PSCredential-objekt som representerar användarens autentiseringsuppgifter och sparar den i variabeln $c .

Du kan använda objektet som indata till cmdletar som begär användarautentisering, till exempel de med en autentiseringsparameter . Vissa leverantörer som är installerade med PowerShell stöder dock inte parametern Credential .

Exempel 2

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

I det här exemplet skapas en autentiseringsuppgift som innehåller ett användarnamn utan domännamn.

Det första kommandot hämtar en autentiseringsuppgift med användarnamnet User01 och lagrar den i variabeln $c . Det andra kommandot visar värdet för egenskapen Username för det resulterande autentiseringsobjektet.

Exempel 3

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

Det här kommandot använder metoden PromptForCredential för att fråga användaren om deras användarnamn och lösenord. Kommandot sparar de resulterande autentiseringsuppgifterna i variabeln $Credential .

Metoden PromptForCredential är ett alternativ till att använda cmdleten Get-Credential . När du använder PromptForCredential kan du ange undertexten, meddelandena och användarnamnet som visas i prompten.

Mer information finns i Dokumentationen om PromptForCredential i SDK.

Exempel 4

Det här exemplet visar hur du skapar ett autentiseringsobjekt som är identiskt med det som returneras av Get-Credential.

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

Det första kommandot tilldelar variabeln användarnamnet $User . Kontrollera att värdet följer formatet "Domain\User" eller "ComputerName\User".

Det andra kommandot använder cmdleten Read-Host för att skapa en säker sträng från användarindata. Parametern Prompt begär användarindata och parametern AsSecureString maskerar indata och konverterar den till en säker sträng.

Det tredje kommandot använder cmdleten New-Object för att skapa ett PSCredential-objekt från värdena som lagras i variablerna $User och $PWord .

Exempel 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:

Det här kommandot använder parametrarna Meddelande och Användarnamn för cmdleten Get-Credential . Det här kommandoformatet är utformat för delade skript och funktioner. I det här fallet meddelar meddelandet användaren varför autentiseringsuppgifter behövs och ger dem förtroende för att begäran är legitim.

Exempel 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

Det här kommandot hämtar en autentiseringsuppgift från server01-fjärrdatorn. Kommandot använder cmdleten Invoke-Command för att köra ett Get-Credential kommando på fjärrdatorn. Utdata visar fjärrsäkerhetsmeddelandet som Get-Credential ingår i autentiseringsprompten.

Parametrar

-Credential

Anger ett användarnamn för autentiseringsuppgifterna, till exempel User01 eller Domain01\User01. Parameternamnet , -Credentialär valfritt.

När du skickar kommandot och anger ett användarnamn uppmanas du att ange ett lösenord. Om du utelämnar den här parametern uppmanas du att ange ett användarnamn och ett lösenord.

Från och med PowerShell 3.0, om du anger ett användarnamn utan domän, Get-Credential infogar du inte längre ett omvänt snedstreck före namnet.

Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.

Kommentar

Mer information om SecureString-dataskydd finns i Hur säker är SecureString?.

Typ:PSCredential
Position:1
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Message

Anger ett meddelande som visas i autentiseringsprompten. Den här parametern är utformad för användning i en funktion eller ett skript. Du kan använda meddelandet för att förklara för användaren varför du begär autentiseringsuppgifter och hur de ska användas.

Den här parametern introducerades i PowerShell 3.0.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Title

Anger texten på rubrikraden för autentiseringsprompten i konsolen.

Den här parametern introducerades i PowerShell 6.0.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-UserName

Anger ett användarnamn. Autentiseringsprompten begär ett lösenord för användarnamnet. Som standard är användarnamnet tomt och autentiseringsprompten begär både användarnamn och lösenord.

Den här parametern introducerades i PowerShell 3.0.

Typ:String
Position:1
Standardvärde:None (blank)
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

None

Du kan inte skicka objekt till den här cmdleten.

Utdata

PSCredential

Den här cmdleten returnerar ett autentiseringsobjekt.

Kommentarer

Du kan använda PSCredential-objektet som Get-Credential skapas i cmdletar som begär användarautentisering, till exempel de med en autentiseringsparameter.

Parametern Credential stöds inte av alla leverantörer som är installerade med PowerShell. Från och med PowerShell 3.0 stöds det på utvalda cmdletar, till exempel Get-Content cmdletarna och New-PSDrive .