Get-Credential
Ruft ein Anmeldeinformationsobjekt basierend auf einem Benutzernamen und Kennwort ab.
Syntax
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
Beschreibung
Das Cmdlet Get-Credential
erstellt ein Anmeldeinformationsobjekt für einen angegebenen Benutzernamen und ein angegebenes Kennwort. Sie können das Anmeldeinformationsobjekt in Sicherheitsvorgängen verwenden.
Das cmdlet Get-Credential
fordert den Benutzer zur Eingabe eines Kennworts oder eines Benutzernamens und Kennworts auf. Sie können den Parameter Message verwenden, um eine angepasste Nachricht für die Eingabeaufforderung anzugeben.
In Windows PowerShell 5.1 und früheren Versionen stellt Windows ein Dialogfeld zur Eingabe eines Benutzernamens und Kennworts dar. In PowerShell 6.0 und höher wird die Eingabeaufforderung in der Konsole für alle Plattformen angezeigt.
Beispiele
Beispiel 1
$c = Get-Credential
Dieser Befehl ruft ein Anmeldeinformationsobjekt ab und speichert es in der variablen $c
.
Wenn Sie den Befehl eingeben, werden Sie aufgefordert, einen Benutzernamen und ein Kennwort einzugeben. Wenn Sie die angeforderten Informationen eingeben, erstellt das Cmdlet ein PSCredential--Objekt, das die Anmeldeinformationen des Benutzers darstellt, und speichert sie in der $c
Variablen.
Sie können das Objekt als Eingabe für Cmdlets verwenden, die die Benutzerauthentifizierung anfordern, z. B. solche mit einem Anmeldeinformationsparameter. Einige Anbieter, die mit PowerShell installiert sind, unterstützen jedoch nicht den parameter Credential.
Beispiel 2
$c = Get-Credential -credential User01
$c.Username
User01
In diesem Beispiel wird eine Anmeldeinformation erstellt, die einen Benutzernamen ohne Domänennamen enthält.
Der erste Befehl ruft eine Anmeldeinformation mit dem Benutzernamen User01 ab und speichert sie in der variablen $c
.
Der zweite Befehl zeigt den Wert der Username-Eigenschaft des resultierenden Anmeldeinformationsobjekts an.
Beispiel 3
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Dieser Befehl verwendet die PromptForCredential Methode, um den Benutzer zur Eingabe seines Benutzernamens und Kennworts aufzufordern. Der Befehl speichert die resultierenden Anmeldeinformationen in der variablen $Credential
.
Die PromptForCredential--Methode ist eine Alternative zur Verwendung des cmdlets Get-Credential
. Wenn Sie PromptForCredential-verwenden, können Sie die Beschriftung, Nachrichten und den Benutzernamen angeben, die in der Eingabeaufforderung angezeigt werden.
Weitere Informationen finden Sie in der Dokumentation PromptForCredential- im SDK.
Beispiel 4
In diesem Beispiel wird gezeigt, wie Sie ein Anmeldeinformationsobjekt erstellen, das mit dem Objekt identisch ist, das Get-Credential
ohne Aufforderung des Benutzers zurückgibt. Diese Methode erfordert ein Nur-Text-Kennwort, das möglicherweise gegen die Sicherheitsstandards in einigen Unternehmen verstößt.
$User = "Domain01\User01"
$PWord = ConvertTo-SecureString -String "P@sSwOrd" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PWord
Der erste Befehl speichert den Benutzernamen im parameter $User
. Der Wert muss das Format "Domäne\Benutzer" oder "ComputerName\Benutzer" aufweisen.
Der zweite Befehl verwendet das Cmdlet ConvertTo-SecureString
, um eine sichere Zeichenfolge aus einem Nur-Text-Kennwort zu erstellen. Der Befehl verwendet den parameter AsPlainText, um anzugeben, dass die Zeichenfolge nur Text ist, und der parameter Force, um sicherzustellen, dass Sie die Risiken der Verwendung von Nur-Text verstehen.
Der dritte Befehl verwendet das Cmdlet New-Object
, um ein PSCredential-Objekt aus den Werten in den Variablen $User
und $PWord
zu erstellen.
Beispiel 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:
Dieser Befehl verwendet die Parameter Message und UserName des Cmdlets Get-Credential
. Dieses Befehlsformat wurde für freigegebene Skripts und Funktionen entwickelt. In diesem Fall teilt die Nachricht dem Benutzer mit, warum Anmeldeinformationen benötigt werden, und gibt ihm vertrauen, dass die Anforderung legitim ist.
Beispiel 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
Dieser Befehl ruft eine Anmeldeinformation vom Remotecomputer Server01 ab. Der Befehl verwendet das cmdlet Invoke-Command
zum Ausführen eines Get-Credential
Befehls auf dem Remotecomputer. Die Ausgabe zeigt die Remotesicherheitsmeldung an, die Get-Credential
in die Authentifizierungsaufforderung einschließt.
Parameter
-Credential
Gibt einen Benutzernamen für die Anmeldeinformationen an, z. B. User01 oder Domain01\User01. Der Parametername -Credential
ist optional.
Wenn Sie den Befehl übermitteln und einen Benutzernamen angeben, werden Sie zur Eingabe eines Kennworts aufgefordert. Wenn Sie diesen Parameter weglassen, werden Sie aufgefordert, einen Benutzernamen und ein Kennwort einzugeben.
Wenn Sie in PowerShell 3.0 einen Benutzernamen ohne Domäne eingeben, wird Get-Credential
vor dem Namen keinen umgekehrten Schrägstrich mehr einfügen.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString-gespeichert.
Anmerkung
Weitere Informationen zu SecureString Datenschutz finden Sie unter Wie sicher ist SecureString?.
Typ: | PSCredential |
Position: | 1 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Message
Gibt eine Meldung an, die in der Authentifizierungsaufforderung angezeigt wird. Dieser Parameter ist für die Verwendung in einer Funktion oder einem Skript vorgesehen. Mithilfe der Nachricht können Sie dem Benutzer erklären, warum Sie Anmeldeinformationen anfordern und wie diese verwendet werden.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Title
Legt den Text der Titelzeile für die Authentifizierungsaufforderung in der Konsole fest.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-UserName
Gibt einen Benutzernamen an. Die Authentifizierungsaufforderung fordert ein Kennwort für den Benutzernamen an. Standardmäßig ist der Benutzername leer, und die Authentifizierungsaufforderung fordert sowohl einen Benutzernamen als auch ein Kennwort an.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Typ: | String |
Position: | 1 |
Standardwert: | None (blank) |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
Dieses Cmdlet gibt ein Anmeldeinformationsobjekt zurück.
Hinweise
Sie können das PSCredential-Objekt verwenden, das in Cmdlets erstellt Get-Credential
, die die Benutzerauthentifizierung anfordern, z. B. solche mit einem Credential-Parameter.
Der parameter Credential wird von allen Anbietern, die mit PowerShell installiert sind, nicht unterstützt.
Ab PowerShell 3.0 wird sie für ausgewählte Cmdlets unterstützt, z. B. die Get-Content
und New-PSDrive
Cmdlets.