Partager via


Get-Credential

Obtient un objet d’informations d’identification basé sur un nom d’utilisateur et un mot de passe.

Syntaxe

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

Description

L’applet de commande Get-Credential crée un objet d’informations d’identification pour un nom d’utilisateur et un mot de passe spécifiés. Vous pouvez utiliser l’objet d’informations d’identification dans les opérations de sécurité.

À compter de Windows PowerShell 3.0, vous pouvez utiliser le paramètre message pour spécifier un message personnalisé dans la boîte de dialogue qui invite l’utilisateur à entrer son nom et son mot de passe.

L'applet de commande Get-Credential invite l’utilisateur à entrer un mot de passe ou un nom d’utilisateur et un mot de passe. Par défaut, une boîte de dialogue d’authentification s’affiche pour inviter l’utilisateur. Toutefois, dans certains programmes hôtes, tels que la console Windows PowerShell, vous pouvez inviter l’utilisateur à se trouver sur la ligne de commande en modifiant une entrée de Registre. Pour plus d’informations sur cette entrée de Registre, consultez les notes et les exemples.

Exemples

Exemple 1

$c = Get-Credential

Cette commande obtient un objet d’informations d’identification et l’enregistre dans la variable $c.

Lorsque vous entrez la commande, une boîte de dialogue s’affiche en demandant un nom d’utilisateur et un mot de passe. Lorsque vous entrez les informations demandées, l’applet de commande crée un objet PSCredential représentant les informations d’identification de l’utilisateur et l’enregistre dans la variable $c.

Vous pouvez utiliser l’objet comme entrée pour les applets de commande qui demandent l’authentification de l’utilisateur, telles que celles avec un paramètre d’informations d’identification Credential. Toutefois, certains fournisseurs installés avec Windows PowerShell ne prennent pas en charge le paramètre Credential.

Exemple 2

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

Ces commandes utilisent un objet d’informations d’identification que l’applet de commande Get-Credential retourne pour authentifier un utilisateur sur un ordinateur distant afin qu’il puisse utiliser WMI (Windows Management Instrumentation) pour gérer l’ordinateur.

La première commande obtient un objet d’informations d’identification et l’enregistre dans la variable $c. La deuxième commande utilise l’objet d’informations d’identification dans une commande Get-WmiObject. Cette commande obtient des informations sur les lecteurs de disque sur l’ordinateur Server01.

Exemple 3

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

Cette commande montre comment inclure une commande Get-Credential dans une commande Get-WmiObject .

Cette commande utilise l’applet de commande Get-WmiObject pour obtenir des informations sur le BIOS sur l’ordinateur Server01. Il utilise le paramètre Credential pour authentifier l’utilisateur, Domain01\User01 et une commande Get-Credential comme valeur du paramètre Credential Credential.

Exemple 4

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

Cet exemple crée des informations d’identification qui incluent un nom d’utilisateur sans nom de domaine.

La première commande obtient des informations d’identification avec le nom d’utilisateur User01 et la stocke dans la variable $c.

La deuxième commande affiche la valeur de la propriété Username de l’objet d’informations d’identification résultant.

Exemple 5

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

Cette commande utilise la méthode PromptForCredential pour inviter l’utilisateur à entrer son nom d’utilisateur et son mot de passe. La commande enregistre les informations d’identification obtenues dans la variable $Credential.

La méthode PromptForCredential est une alternative à l’utilisation de l’applet de commande Get-Credential . Lorsque vous utilisez promptForCredential, vous pouvez spécifier la légende, les messages et le nom d’utilisateur qui s’affichent dans la zone de message.

Exemple 6

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

Cet exemple montre comment modifier le Registre afin que l’utilisateur soit invité à la ligne de commande, au lieu d’utiliser une boîte de dialogue.

La commande crée l’entrée de Registre ConsolePrompting et définit sa valeur sur True. Pour exécuter cette commande, démarrez Windows PowerShell avec l’option « Exécuter en tant qu’administrateur ».

Pour utiliser une boîte de dialogue pour l’invite, définissez la valeur de consolePrompting sur false ($false) ou utilisez l’applet de commande Remove-ItemProperty pour la supprimer.

L’entrée de Registre ConsolePrompting fonctionne dans certains programmes hôtes, tels que la console Windows PowerShell. Cela peut ne pas fonctionner dans tous les programmes hôtes.

Exemple 7

Cet exemple montre comment créer un objet d’informations d’identification identique à l’objet qui obtenir des informations d’identification retourne sans inviter l’utilisateur. Cette méthode nécessite un mot de passe en texte brut, qui peut violer les normes de sécurité dans certaines entreprises.

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

La première commande enregistre le nom du compte d’utilisateur dans le paramètre $User. La valeur doit avoir le format « Domain\User » ou « ComputerName\User ».

La deuxième commande utilise l’applet de commande ConvertTo-SecureString pour créer une chaîne sécurisée à partir d’un mot de passe de texte brut. La commande utilise le paramètre AsPlainText pour indiquer que la chaîne est du texte brut et que le paramètre Force pour confirmer que vous comprenez les risques liés à l’utilisation de texte brut.

La troisième commande utilise l’applet de commande New-Object pour créer un objet PSCredential à partir des valeurs des variables $User et $PWord.

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

Cette commande utilise les paramètres Message et UserName de l’applet de commande Get-Credential . Ce format de commande est conçu pour les scripts et fonctions partagés. Dans ce cas, le message indique à l’utilisateur pourquoi les informations d’identification sont nécessaires et leur donne confiance que la demande est légitime.

Exemple 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

Cette commande obtient des informations d’identification de l’ordinateur distant Server01. La commande utilise l’applet de commande Invoke-Command pour exécuter une commande Get-Credential sur l’ordinateur distant. La sortie affiche le message de sécurité à distance qui obtenir les informations d’identification inclus dans l’invite d’authentification.

Paramètres

-Credential

Spécifie un nom d’utilisateur pour les informations d’identification, telles que « User01 » ou « Domain01\User01 ». Le nom du paramètre (« Credential ») est facultatif.

Lorsque vous envoyez la commande, vous serez invité à entrer un mot de passe.

À compter de Windows PowerShell 3.0, si vous entrez un nom d’utilisateur sans domaine, Get-Credential n’insère plus de barre oblique inverse avant le nom.

Si vous omettez ce paramètre, vous êtes invité à entrer un nom d’utilisateur et un mot de passe.

Type:PSCredential
Position:1
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Message

Spécifie un message qui apparaît dans l’invite d’authentification.

Ce paramètre est conçu pour une utilisation dans une fonction ou un script. Vous pouvez utiliser le message pour expliquer à l’utilisateur pourquoi vous demandez des informations d’identification et comment elles seront utilisées.

Ce paramètre est introduit dans Windows PowerShell 3.0.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UserName

Spécifie un nom d’utilisateur. L’invite d’authentification demande un mot de passe pour le nom d’utilisateur. Par défaut, le nom d’utilisateur est vide et l’invite d’authentification demande à la fois un nom d’utilisateur et un mot de passe.

Lorsque l’invite d’authentification s’affiche dans une boîte de dialogue, l’utilisateur peut modifier le nom d’utilisateur spécifié. Toutefois, l’utilisateur ne peut pas modifier le nom d’utilisateur lorsque l’invite s’affiche sur la ligne de commande. Lorsque vous utilisez ce paramètre dans une fonction ou un script partagé, tenez compte de toutes les présentations possibles.

Ce paramètre est introduit dans Windows PowerShell 3.0.

Type:String
Position:1
Valeur par défaut:None (blank)
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Vous ne pouvez pas diriger l’entrée vers cette applet de commande.

Sorties

PSCredential

Get-Credential retourne un objet d’informations d’identification.

Notes

Vous pouvez utiliser l’objet PSCredential que obtenir des informations d’identification crée dans des applets de commande qui demandent l’authentification de l’utilisateur, comme celles avec un paramètre d'Credential.

Par défaut, l’invite d’authentification s’affiche dans une boîte de dialogue. Pour afficher l’invite d’authentification sur la ligne de commande, ajoutez la ConsolePrompting entrée de Registre (HKLM :\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting) et définissez sa valeur sur True. Si l’entrée de Registre consolePrompting n’existe pas ou si sa valeur est False, l’invite d’authentification apparaît dans une boîte de dialogue. Pour obtenir des instructions, consultez les exemples.

La ConsolePrompting entrée de Registre fonctionne dans la console Windows PowerShell, mais elle ne fonctionne pas dans tous les programmes hôtes.

Par exemple, il n’a aucun effet dans l’environnement de script intégré Windows PowerShell (ISE). Pour plus d’informations sur l’effet de l’entrée de registre ConsolePrompting, consultez les rubriques d’aide du programme hôte.

Le paramètre Credential n’est pas pris en charge par tous les fournisseurs installés avec Windows PowerShell. À compter de Windows PowerShell 3.0, il est pris en charge sur l’applet de commande sélectionnée, telle que les applets de commande Get-WmiObject et New-PSDrive.