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>]
   [<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.

Från och med Windows PowerShell 3.0 kan du använda parametern Message för att ange ett anpassat meddelande i dialogrutan som frågar användaren om deras namn och lösenord.

Cmdleten Get-Credential uppmanar användaren att ange ett lösenord eller ett användarnamn och lösenord. Som standard visas en dialogruta för autentisering för att fråga användaren. I vissa värdprogram, till exempel Windows PowerShell-konsolen, kan du dock fråga användaren på kommandoraden genom att ändra en registerpost. Mer information om den här registerposten finns i anteckningarna och exemplen.

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 visas en dialogruta som begär 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 för cmdletar som begär användarautentisering, till exempel de med en autentiseringsuppgifter parameter. Vissa leverantörer som är installerade med Windows PowerShell stöder dock inte parametern Credential.

Exempel 2

$c = Get-Credential
Get-WmiObject Win32_DiskDrive -ComputerName Server01 -Credential $c

Dessa kommandon använder ett autentiseringsobjekt som cmdleten Get-Credential returnerar för att autentisera 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 autentiseringsobjektet i ett Get-WmiObject kommando. Det här kommandot hämtar information om diskenheterna på Server01-datorn.

Exempel 3

Get-WmiObject 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-WmiObject- kommando.

Det här kommandot använder cmdleten Get-WmiObject 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ärdet för parametern Credential.

Exempel 4

PS> $c = Get-Credential -credential User01
PS> $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 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 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 PromptForCredentialkan du ange undertext, meddelanden och användarnamn som visas i meddelanderutan.

Exempel 6

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

Det här exemplet visar hur du ändrar registret så att användaren uppmanas på kommandoraden i stället för med hjälp av en dialogruta.

Kommandot skapar ConsolePrompting registerpost och anger värdet true. Om du vill köra det här kommandot startar du Windows PowerShell med alternativet "Kör som administratör".

Om du vill använda en dialogruta för att fråga anger du värdet för ConsolePrompting till false ($false) eller använder cmdleten Remove-ItemProperty för att ta bort den.

Registerposten ConsolePrompting fungerar i vissa värdprogram, till exempel Windows PowerShell-konsolen. Det kanske inte fungerar i alla värdprogram.

Exempel 7

Det här exemplet visar hur du skapar ett autentiseringsobjekt som är identiskt med objektet som Get-Credential- returnerar utan att fråga användaren. Den här metoden kräver ett lösenord för oformaterad text som kan strida mot säkerhetsstandarderna i vissa företag.

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

Det första kommandot sparar användarnamnet 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 indikera att strängen är oformaterad text och parametern Force 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 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:

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

Det här kommandot hämtar en autentiseringsuppgift från server01-fjärrdatorn. Kommandot använder cmdleten Invoke-Command för att köra kommandot Get-Credential på fjärrdatorn. Utdata visar fjärrsäkerhetsmeddelandet som Get-Credential innehåller 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 uppmanas du att ange ett lösenord.

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

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

Typ:PSCredential
Position:1
Standardvärde:None
Obligatorisk:True
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 introduceras i Windows PowerShell 3.0.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:True
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.

När autentiseringsprompten visas i en dialogruta kan användaren redigera det angivna användarnamnet. Användaren kan dock inte ändra användarnamnet när kommandotolken visas på kommandoraden. När du använder den här parametern i en delad funktion eller ett skript bör du överväga alla möjliga presentationer.

Den här parametern introduceras i Windows 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 indata till den här cmdleten.

Utdata

PSCredential

Get-Credential returnerar ett autentiseringsobjekt.

Kommentarer

Du kan använda PSCredential- objekt som Get-Credential skapar i cmdletar som begär användarautentisering, till exempel de med en autentiseringsuppgift parameter.

Som standard visas autentiseringsprompten i en dialogruta. Om du vill visa autentiseringsprompten på kommandoraden lägger du till ConsolePrompting registerpost (HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting) och anger värdet till Sant. Om ConsolePrompting registerpost inte finns eller om värdet är False visas autentiseringsprompten i en dialogruta. Anvisningar finns i exemplen.

Registerposten ConsolePrompting fungerar i Windows PowerShell-konsolen, men den fungerar inte i alla värdprogram.

Det har till exempel ingen effekt i Windows PowerShell Integrated Scripting Environment (ISE). Information om effekten av ConsolePrompting registerpost finns i hjälpavsnitten för värdprogrammet.

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