Get-Credential
Hiermee haalt u een referentieobject op op basis van een gebruikersnaam en wachtwoord.
Syntax
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
Description
De Get-Credential
cmdlet maakt een referentieobject voor een opgegeven gebruikersnaam en wachtwoord. U kunt het referentieobject gebruiken in beveiligingsbewerkingen.
De Get-Credential
cmdlet vraagt de gebruiker om een wachtwoord of een gebruikersnaam en wachtwoord. U kunt de parameter Bericht gebruiken om een aangepast bericht voor de prompt op te geven.
In Windows PowerShell 5.1 en eerder wordt in Windows een dialoogvenster weergegeven waarin wordt gevraagd om een gebruikersnaam en wachtwoord. In PowerShell 6.0 en hoger wordt de prompt weergegeven in de console voor alle platforms.
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 u gevraagd om een gebruikersnaam en wachtwoord. Wanneer u de aangevraagde gegevens invoert, maakt de cmdlet een PSCredential-object dat de referenties van de gebruiker vertegenwoordigt en slaat deze op in de $c
variabele.
U kunt het object gebruiken als invoer voor cmdlets die gebruikersverificatie aanvragen, zoals die met een referentieparameter . Sommige providers die met PowerShell zijn geïnstalleerd, bieden echter geen ondersteuning voor de parameter Credential .
Voorbeeld 2
$c = Get-Credential -credential User01
$c.Username
User01
In dit voorbeeld wordt een referentie gemaakt die een gebruikersnaam zonder domeinnaam bevat.
Met de eerste opdracht wordt een referentie met de gebruikersnaam User01 opgeslagen in de $c
variabele.
Met de tweede opdracht wordt de waarde van de eigenschap Username van het resulterende referentieobject weergegeven.
Voorbeeld 3
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Deze opdracht maakt gebruik van de promptforCredential-methode om de gebruiker om de gebruikersnaam en het wachtwoord te vragen. Met de opdracht worden de resulterende referenties opgeslagen in de $Credential
variabele.
De methode PromptForCredential is een alternatief voor het gebruik van de Get-Credential
cmdlet. Wanneer u PromptForCredential gebruikt, kunt u de onderschrift, berichten en gebruikersnaam opgeven die in de prompt worden weergegeven.
Zie de PromptForCredential-documentatie in de SDK voor meer informatie.
Voorbeeld 4
In dit voorbeeld ziet u hoe u een referentieobject maakt dat identiek is aan het object dat Get-Credential
wordt geretourneerd zonder dat de gebruiker hierom wordt gevraagd. Voor deze methode is een wachtwoord zonder opmaak vereist, wat in sommige ondernemingen in strijd kan zijn met de beveiligingsstandaarden.
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Met de eerste opdracht wordt de naam van het gebruikersaccount opgeslagen in de $User
parameter . De waarde moet de indeling Domein\Gebruiker of ComputerNaam\Gebruiker hebben.
De tweede opdracht gebruikt 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 Force om te bevestigen dat u de risico's van het gebruik van tekst zonder opmaak begrijpt.
De derde opdracht gebruikt de New-Object
cmdlet om een PSCredential-object te maken op basis van de waarden in de $User
variabelen en $PWord
.
Voorbeeld 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:
Met deze opdracht worden de parameters Bericht en Gebruikersnaam van de Get-Credential
cmdlet gebruikt. Deze opdrachtindeling is ontworpen voor gedeelde scripts en functies. In dit geval vertelt het bericht de gebruiker waarom referenties nodig zijn en kan de gebruiker erop vertrouwen dat de aanvraag legitiem is.
Voorbeeld 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
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
is opgenomen in de verificatieprompt.
Parameters
-Credential
Hiermee geeft u een gebruikersnaam voor de referentie, zoals Gebruiker01 of Domein01\Gebruiker01. De parameternaam, -Credential
, is optioneel.
Wanneer u de opdracht verzendt en een gebruikersnaam opgeeft, wordt u gevraagd om een wachtwoord. Als u deze parameter weglaat, wordt u gevraagd om een gebruikersnaam en een wachtwoord.
Als u vanaf PowerShell 3.0 een gebruikersnaam zonder domein invoert, Get-Credential
wordt er geen backslash meer ingevoegd voor de naam.
Referenties worden opgeslagen in een PSCredential-object en het wachtwoord wordt opgeslagen als een SecureString.
Notitie
Zie Hoe veilig is SecureString? voor meer informatie over SecureString-gegevensbeveiliging.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 is geïntroduceerd in PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
Hiermee stelt u de tekst van de titelregel voor de verificatieprompt in de console.
Deze parameter is geïntroduceerd in PowerShell 6.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Hiermee geeft u een gebruikersnaam. De verificatieprompt vraagt om een wachtwoord voor de gebruikersnaam. De gebruikersnaam is standaard leeg en de verificatieprompt vraagt om zowel een gebruikersnaam als een wachtwoord.
Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
None
U kunt geen objecten doorsnijden naar deze cmdlet.
Uitvoerwaarden
Deze cmdlet retourneert een referentieobject.
Notities
U kunt het PSCredential-object gebruiken dat Get-Credential
wordt gemaakt in cmdlets die gebruikersverificatie aanvragen, zoals die met een referentieparameter .
De parameter Credential wordt niet ondersteund door alle providers die zijn geïnstalleerd met PowerShell.
Vanaf PowerShell 3.0 wordt het ondersteund op bepaalde cmdlets, zoals de Get-Content
cmdlets en New-PSDrive
.