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 Get-Credential
Cmdlet erstellt ein Anmeldeinformationsobjekt für einen angegebenen Benutzernamen und ein angegebenes Kennwort. Sie können das Anmeldeinformationsobjekt für Sicherheitsvorgänge verwenden.
Das Get-Credential
Cmdlet fordert den Benutzer zur Eingabe eines Kennworts oder eines Benutzernamens und Kennworts auf. Sie können den Message-Parameter verwenden, um eine benutzerdefinierte Nachricht in der Befehlszeileneingabeaufforderung anzugeben.
Beispiele
Beispiel 1
$c = Get-Credential
Dieser Befehl ruft ein Anmeldeinformationsobjekt ab und speichert es in der $c
Variablen.
Wenn Sie den Befehl eingeben, werden Sie zur Eingabe eines Benutzernamens und kennworts aufgefordert. Wenn Sie die angeforderten Informationen eingeben, erstellt das Cmdlet ein PSCredential-Objekt , das die Anmeldeinformationen des Benutzers darstellt, und speichert es in der $c
Variablen.
Sie können das -Objekt als Eingabe für Cmdlets verwenden, die die Benutzerauthentifizierung anfordern, z. B. solche mit einem Credential-Parameter . Einige Anbieter, die mit PowerShell installiert sind, unterstützen den Credential-Parameter jedoch nicht.
Beispiel 2
$c = Get-Credential
Get-CimInstance Win32_DiskDrive -ComputerName Server01 -Credential $c
Diese Befehle verwenden ein Anmeldeinformationsobjekt, das das Get-Credential
Cmdlet zurückgibt, um einen Benutzer auf einem Remotecomputer zu authentifizieren, damit er die Windows-Verwaltungsinstrumentation (WMI) zum Verwalten des Computers verwenden kann.
Der erste Befehl ruft ein Anmeldeinformationsobjekt ab und speichert es in der $c
Variablen. Der zweite Befehl verwendet das Anmeldeinformationsobjekt in einem Get-CimInstance
Befehl. Dieser Befehl ruft Informationen zu den Festplattenlaufwerken auf dem Computer „Server01“ ab.
Beispiel 3
Get-CimInstance Win32_BIOS -ComputerName Server01 -Credential (Get-Credential -Credential Domain01\User01)
Dieser Befehl zeigt, wie Sie einen Get-Credential
Befehl in einen Get-CimInstance
Befehl einschließen.
Dieser Befehl verwendet das Get-CimInstance
Cmdlet, um Informationen zum BIOS auf dem Server01-Computer abzurufen. Es verwendet den Credential-Parameter , um den Benutzer zu authentifizieren, Domain01\User01 und einen Get-Credential
Befehl als Wert des Credential-Parameters .
Beispiel 4
$c = Get-Credential -credential User01
$c.Username
User01
In diesem Beispiel werden die Anmeldeinformationen erstellt, die einen Benutzernamen ohne Domänennamen enthalten.
Der erste Befehl ruft Anmeldeinformationen mit dem Benutzernamen User01 ab und speichert sie in der $c
Variablen.
Der zweite Befehl zeigt den Wert der Username-Eigenschaft des resultierenden Credential-Objekts an.
Beispiel 5
$Credential = $host.ui.PromptForCredential("Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Dieser Befehl verwendet die PromptForCredential-Methode, um den Benutzer zu Eingabe des Benutzernamens und Kennworts aufzufordern. Der Befehl speichert die resultierenden Anmeldeinformationen in der $Credential
Variablen.
Die PromptForCredential-Methode ist eine Alternative zur Verwendung des Get-Credential
Cmdlets. Wenn Sie PromptForCredential verwenden, können Sie die Untertitel, nachrichten und den Benutzernamen angeben, die in der Eingabeaufforderung angezeigt werden.
Weitere Informationen finden Sie in der PromptForCredential-Dokumentation im SDK.
Beispiel 6
In diesem Beispiel wird gezeigt, wie Sie ein Anmeldeinformationsobjekt erstellen, das mit dem objekt identisch ist, das zurückgegeben wird, Get-Credential
ohne den Benutzer dazu aufzufordern. Für diese Methode ist nur ein Nur-Text-Kennwort erforderlich, was in manchen Unternehmen gegen die Sicherheitsstandards verstoßen könnte.
$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 $User
Parameter. Der Wert muss das Format „Domäne\Benutzer“ oder „Computername\Benutzer“ haben.
Der zweite Befehl verwendet das ConvertTo-SecureString
Cmdlet, um eine sichere Zeichenfolge aus einem Nur-Text-Kennwort zu erstellen. Der Befehl verwendet den AsPlainText-Parameter, um anzugeben, dass die Zeichenfolge Nur-Text ist, und den Force-Parameter, um zu bestätigen, dass Sie die Risiken beim Einsatz von Nur-Text verstanden haben.
Der dritte Befehl verwendet das New-Object
Cmdlet, um ein PSCredential-Objekt aus den Werten in den $User
Variablen und $PWord
zu erstellen.
Beispiel 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:
Dieser Befehl verwendet die Parameter Message und UserName des Get-Credential
Cmdlets. Dieses Befehlsformat wurde für gemeinsam genutzte Skripts und Funktionen entwickelt. In diesem Fall erfährt der Benutzer in der Meldung, warum Anmeldeinformationen erforderlich sind, und bietet ihm die Sicherheit, dass die Anforderung legitim ist.
Beispiel 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
Dieser Befehl ruft die Anmeldeinformationen vom Remotecomputer „Server01“ ab. Der Befehl verwendet das Invoke-Command
Cmdlet, um einen Get-Credential
Befehl auf dem Remotecomputer auszuführen. Die Ausgabe zeigt die Remotesicherheitsmeldung an, die Get-Credential
in der Authentifizierungsaufforderung enthalten ist.
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 zur Eingabe eines Benutzernamens und eines Kennworts aufgefordert.
Wenn Sie ab PowerShell 3.0 einen Benutzernamen ohne Domäne eingeben, Get-Credential
wird vor dem Namen kein umgekehrter Schrägstrich mehr eingefügt.
Anmeldeinformationen werden in einem PSCredential-Objekt gespeichert, und das Kennwort wird als SecureString gespeichert.
Hinweis
Weitere Informationen zum Schutz von SecureString-Daten finden Sie unter Wie sicher ist SecureString?.
Type: | PSCredential |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Message
Gibt eine Meldung an, die in der Authentifizierungsaufforderung angezeigt wird. Dieser Parameter dient zur Verwendung in einer Funktion oder in einem Skript. Sie können die Meldung verwenden, um dem Benutzer zu erklären, warum Sie Anmeldeinformationen anfordern und wie sie verwendet werden.
Dieser Parameter wurde in PowerShell 3.0 eingeführt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Title
Legt den Text der Titelzeile für die Authentifizierungsaufforderung in der Konsole fest.
Dieser Parameter wurde in PowerShell 6.0 eingeführt.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UserName
Gibt einen Benutzernamen an. Die Authentifizierungsaufforderung fordert die Eingabe eines Kennworts 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.
Type: | String |
Position: | 1 |
Default value: | None (blank) |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht werden.
Ausgaben
Get-Credential
gibt ein Anmeldeinformationsobjekt zurück.
Hinweise
Sie können das PSCredential-Objekt verwenden, das Get-Credential
in Cmdlets erstellt wird, die die Benutzerauthentifizierung anfordern, z. B. mit einem Credential-Parameter .
Der Credential-Parameter wird nicht von allen Anbietern unterstützt, die mit PowerShell installiert sind.
Ab PowerShell 3.0 wird dies für ausgewählte Cmdlets wie die Get-Content
Cmdlets und New-PSDrive
unterstützt.