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
uppmanar användaren att ange ett lösenord eller ett användarnamn och lösenord. Du kan använda parametern Meddelande för att ange ett anpassat meddelande i kommandotolken.
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 det 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 installeras med PowerShell stöder dock inte parametern Credential .
Exempel 2
$c = Get-Credential
Get-CimInstance Win32_DiskDrive -ComputerName Server01 -Credential $c
Dessa kommandon använder ett autentiseringsobjekt som cmdleten returnerar för att autentisera Get-Credential
en användare på en fjärrdator så att de kan använda Windows Management Instrumentation (WMI) för att hantera datorn.
Det första kommandot hämtar ett autentiseringsobjekt och sparar det i variabeln $c
. Det andra kommandot använder autentiseringsuppgiftsobjektet i ett Get-CimInstance
kommando. Det här kommandot hämtar information om diskenheterna på Server01-datorn.
Exempel 3
Get-CimInstance Win32_BIOS -ComputerName Server01 -Credential (Get-Credential -Credential Domain01\User01)
Det här kommandot visar hur du inkluderar ett Get-Credential
kommando i ett Get-CimInstance
kommando.
Det här kommandot använder cmdleten Get-CimInstance
för att hämta information om BIOS på Server01-datorn. Den använder parametern Credential för att autentisera användaren, Domain01\User01 och ett Get-Credential
kommando som värde för parametern Credential .
Exempel 4
$c = Get-Credential -credential User01
$c.Username
User01
Det här exemplet skapar 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 Användarnamn för det resulterande autentiseringsuppgiftsobjektet.
Exempel 5
$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 be 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 bildtext, meddelanden och användarnamn som visas i prompten.
Mer information finns i dokumentationen om PromptForCredential i SDK.
Exempel 6
Det här exemplet visar hur du skapar ett autentiseringsobjekt som är identiskt med objektet som Get-Credential
returneras utan att fråga användaren. Den här metoden kräver ett lösenord för oformaterad text som kan bryta mot säkerhetsstandarderna i vissa företag.
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Det första kommandot sparar användarkontonamnet i parametern $User
. Värdet måste ha formatet "Domain\User" eller "ComputerName\User".
Det andra kommandot använder cmdleten ConvertTo-SecureString
för att skapa en säker sträng från ett lösenord för oformaterad text. Kommandot använder parametern AsPlainText för att ange att strängen är oformaterad text och force-parametern för att bekräfta att du förstår riskerna med att använda oformaterad text.
Det tredje kommandot använder cmdleten New-Object
för att skapa ett PSCredential-objekt från värdena i variablerna $User
och $PWord
.
Exempel 7
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 Message och UserName 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 8
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 en domän, Get-Credential
infogar inte längre ett omvänt snedstreck före namnet.
Autentiseringsuppgifter lagras i ett PSCredential-objekt och lösenordet lagras som en SecureString.
Anteckning
Mer information om SecureString-dataskydd finns i Hur säkert är SecureString?.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
Anger texten på rubrikraden för autentiseringsprompten i konsolen.
Den här parametern introducerades i PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
None
Du kan inte skicka indata till denna cmdlet.
Utdata
Get-Credential
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
.