Delen via


Get-Credential

Hiermee haalt u een referentieobject op op basis van een gebruikersnaam en wachtwoord.

Syntaxis

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

Description

De cmdlet Get-Credential maakt een referentieobject voor een opgegeven gebruikersnaam en wachtwoord. U kunt het referentieobject gebruiken in beveiligingsbewerkingen.

Vanaf Windows PowerShell 3.0 kunt u de parameter Message gebruiken om een aangepast bericht op te geven in het dialoogvenster waarin de gebruiker wordt gevraagd om zijn of haar naam en wachtwoord.

De Get-Credential cmdlet vraagt de gebruiker om een wachtwoord of een gebruikersnaam en wachtwoord. Standaard wordt er een verificatiedialoogvenster weergegeven om de gebruiker te vragen. In sommige hostprogramma's, zoals de Windows PowerShell-console, kunt u de gebruiker echter op de opdrachtregel vragen door een registervermelding te wijzigen. Zie de notities en voorbeelden voor meer informatie over deze registervermelding.

Voorbeelden

Voorbeeld 1

$c = Get-Credential

Met deze opdracht wordt een referentieobject opgehaald en opgeslagen in de $c variabele.

Wanneer u de opdracht invoert, wordt er een dialoogvenster weergegeven waarin een gebruikersnaam en wachtwoord worden gevraagd. Wanneer u de gevraagde gegevens invoert, maakt de cmdlet een PSCredential--object dat de referenties van de gebruiker vertegenwoordigt en slaat deze op in de variabele $c.

U kunt het object gebruiken als invoer voor cmdlets die gebruikersverificatie aanvragen, zoals cmdlets met een referentie- parameter. Sommige providers die zijn geïnstalleerd met Windows PowerShell bieden echter geen ondersteuning voor de parameter Credential.

Voorbeeld 2

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

Deze opdrachten gebruiken een referentieobject dat de Get-Credential cmdlet retourneert om een gebruiker op een externe computer te verifiëren, zodat ze Windows Management Instrumentation (WMI) kunnen gebruiken om de computer te beheren.

Met de eerste opdracht wordt een referentieobject opgehaald en opgeslagen in de $c variabele. De tweede opdracht maakt gebruik van het referentieobject in een Get-WmiObject opdracht. Met deze opdracht krijgt u informatie over de schijfstations op de Server01-computer.

Voorbeeld 3

Get-WmiObject Win32_BIOS -ComputerName Server01 -Credential (Get-Credential -Credential Domain01\User01)

Deze opdracht laat zien hoe u een opdracht Get-Credential opneemt in een opdracht Get-WmiObject.

Met deze opdracht wordt de Get-WmiObject-cmdlet gebruikt om informatie over het BIOS op de Server01-computer op te halen. Hierbij wordt de parameter Credential gebruikt om de gebruiker, Domain01\User01 en een opdracht Get-Credential te verifiëren als de waarde van de parameter Credential.

Voorbeeld 4

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

In dit voorbeeld wordt een referentie gemaakt die een gebruikersnaam zonder domeinnaam bevat.

De eerste opdracht haalt een referentie op met de gebruikersnaam User01 en slaat deze op in de $c variabele.

Met de tweede opdracht wordt de waarde van de eigenschap Gebruikersnaam van het resulterende referentieobject weergegeven.

Voorbeeld 5

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

Met deze opdracht wordt de methode PromptForCredential gebruikt om de gebruiker om zijn gebruikersnaam en wachtwoord te vragen. Met de opdracht worden de resulterende referenties opgeslagen in de variabele $Credential.

De methode PromptForCredential is een alternatief voor het gebruik van de cmdlet Get-Credential. Wanneer u PromptForCredential-gebruikt, kunt u het bijschrift, de berichten en de gebruikersnaam opgeven die in het berichtvak worden weergegeven.

Voorbeeld 6

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

In dit voorbeeld ziet u hoe u het register wijzigt, zodat de gebruiker op de opdrachtregel wordt gevraagd in plaats van een dialoogvenster te gebruiken.

Met de opdracht maakt u de registervermelding ConsolePrompting en stelt u de waarde in op True. Als u deze opdracht wilt uitvoeren, start u Windows PowerShell met de optie Uitvoeren als administrator.

Als u een dialoogvenster wilt gebruiken om te vragen, stelt u de waarde van consoleprompting in op false ($false) of gebruikt u de Remove-ItemProperty-cmdlet om deze te verwijderen.

De registervermelding ConsolePrompting werkt in sommige hostprogramma's, zoals de Windows PowerShell-console. Het werkt mogelijk niet in alle hostprogramma's.

Voorbeeld 7

In dit voorbeeld ziet u hoe u een referentieobject maakt dat identiek is aan het object dat Get-Credential retourneert zonder de gebruiker te vragen. Voor deze methode is een wachtwoord voor tekst zonder opmaak vereist, dat mogelijk in strijd is met de beveiligingsstandaarden in sommige ondernemingen.

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

Met de eerste opdracht wordt de naam van het gebruikersaccount opgeslagen in de parameter $User. De waarde moet de notatie Domain\User of ComputerName\User hebben.

De tweede opdracht maakt gebruik van de ConvertTo-SecureString cmdlet om een beveiligde tekenreeks te maken op basis van een wachtwoord voor tekst zonder opmaak. De opdracht gebruikt de parameter AsPlainText om aan te geven dat de tekenreeks tekst zonder opmaak is en de parameter Forceren om te bevestigen dat u de risico's van het gebruik van tekst zonder opmaak begrijpt.

De derde opdracht gebruikt de cmdlet New-Object om een PSCredential--object te maken op basis van de waarden in de $User en $PWord variabelen.

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

Deze opdracht maakt gebruik van de parameters Message en UserName van de cmdlet Get-Credential. Deze opdrachtindeling is ontworpen voor gedeelde scripts en functies. In dit geval vertelt het bericht de gebruiker waarom referenties nodig zijn en geeft ze er vertrouwen in dat de aanvraag legitiem is.

Voorbeeld 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

Met deze opdracht wordt een referentie opgehaald van de externe Server01-computer. De opdracht gebruikt de Invoke-Command cmdlet om een Get-Credential opdracht uit te voeren op de externe computer. De uitvoer toont het externe beveiligingsbericht dat Get-Credential bevat in de verificatieprompt.

Parameters

-Credential

Hiermee geeft u een gebruikersnaam voor de referentie, zoals 'User01' of 'Domain01\User01'. De parameternaam ('Credential') is optioneel.

Wanneer u de opdracht verzendt, wordt u gevraagd om een wachtwoord.

Als u vanaf Windows PowerShell 3.0 een gebruikersnaam zonder domein invoert, Get-Credential geen backslash meer voor de naam invoegt.

Als u deze parameter weglaat, wordt u gevraagd om een gebruikersnaam en een wachtwoord.

Type:PSCredential
Position:1
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Message

Hiermee geeft u een bericht op dat wordt weergegeven in de verificatieprompt.

Deze parameter is ontworpen voor gebruik in een functie of script. U kunt het bericht gebruiken om de gebruiker uit te leggen waarom u referenties aanvraagt en hoe deze worden gebruikt.

Deze parameter wordt geïntroduceerd in Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-UserName

Hiermee geeft u een gebruikersnaam. De verificatieprompt vraagt een wachtwoord aan voor de gebruikersnaam. De gebruikersnaam is standaard leeg en de verificatieprompt vraagt zowel een gebruikersnaam als een wachtwoord aan.

Wanneer de verificatieprompt wordt weergegeven in een dialoogvenster, kan de gebruiker de opgegeven gebruikersnaam bewerken. De gebruiker kan de gebruikersnaam echter niet wijzigen wanneer de prompt wordt weergegeven op de opdrachtregel. Wanneer u deze parameter gebruikt in een gedeelde functie of script, kunt u alle mogelijke presentaties overwegen.

Deze parameter wordt geïntroduceerd in Windows PowerShell 3.0.

Type:String
Position:1
Default value:None (blank)
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt invoer voor deze cmdlet niet doorsluisen.

Uitvoerwaarden

PSCredential

Get-Credential retourneert een referentieobject.

Notities

U kunt het PSCredential--object gebruiken dat Get-Credential maakt in cmdlets die gebruikersverificatie aanvragen, zoals die met een parameter Credential.

De verificatieprompt wordt standaard weergegeven in een dialoogvenster. Als u de verificatieprompt wilt weergeven op de opdrachtregel, voegt u de ConsolePrompting- registervermelding (HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting) toe en stelt u de waarde in op True. Als de ConsolePrompting- registervermelding niet bestaat of als de waarde onwaar is, wordt de verificatieprompt weergegeven in een dialoogvenster. Zie de voorbeelden voor instructies.

De ConsolePrompting- registervermelding werkt in de Windows PowerShell-console, maar werkt niet in alle hostprogramma's.

Dit heeft bijvoorbeeld geen effect in de Windows PowerShell Integrated Scripting Environment (ISE). Zie de Help-onderwerpen voor het hostprogramma voor informatie over het effect van de ConsolePrompting registervermelding.

De parameter Credential wordt niet ondersteund door alle providers die zijn geïnstalleerd met Windows PowerShell. Vanaf Windows PowerShell 3.0 wordt deze ondersteund voor geselecteerde cmdlets, zoals de Get-WmiObject en New-PSDrive cmdlets.