Get-Credential
Obtiene un objeto de credencial basado en un nombre de usuario y una contraseña.
Sintaxis
Get-Credential
[[-Credential] <PSCredential>]
[<CommonParameters>]
Get-Credential
[-Message <String>]
[[-UserName] <String>]
[-Title <String>]
[<CommonParameters>]
Description
El cmdlet Get-Credential
crea un objeto de credencial para un nombre de usuario y una contraseña especificados. Puede usar el objeto de credencial en operaciones de seguridad.
El cmdlet Get-Credential
solicita al usuario una contraseña o un nombre de usuario y una contraseña. Puede usar el parámetro Message para especificar un mensaje personalizado para el mensaje.
En Windows PowerShell 5.1 y versiones anteriores, Windows presenta un cuadro de diálogo para solicitar un nombre de usuario y una contraseña. En PowerShell 6.0 y versiones posteriores, el símbolo del sistema se presenta en la consola de todas las plataformas.
Ejemplos
Ejemplo 1
$c = Get-Credential
Este comando obtiene un objeto de credencial y lo guarda en la variable $c
.
Al escribir el comando, se le pedirá un nombre de usuario y una contraseña. Al escribir la información solicitada, el cmdlet crea un objeto PSCredential que representa las credenciales del usuario y lo guarda en la variable $c
.
Puede usar el objeto como entrada para los cmdlets que solicitan autenticación de usuario, como los que tienen un parámetro Credential. Sin embargo, algunos proveedores instalados con PowerShell no admiten el parámetro Credential.
Ejemplo 2
$c = Get-Credential -Credential User01
$c.Username
User01
En este ejemplo se crea una credencial que incluye un nombre de usuario sin un nombre de dominio.
El primer comando obtiene una credencial con el nombre de usuario User01 y la almacena en la variable $c
.
El segundo comando muestra el valor de la propiedad nombre de usuario de del objeto de credencial resultante.
Ejemplo 3
$Credential = $host.ui.PromptForCredential(
"Need credentials", "Please enter your user name and password.", "", "NetBiosUserName")
Este comando usa el método PromptForCredential para solicitar al usuario su nombre de usuario y contraseña. El comando guarda las credenciales resultantes en la variable $Credential
.
El método promptForCredential de es una alternativa al uso del cmdlet Get-Credential
. Al usar PromptForCredential, puede especificar el título, los mensajes y el nombre de usuario que aparecen en el símbolo del sistema.
Para obtener más información, consulte la documentación del PromptForCredential en el SDK.
Ejemplo 4
En este ejemplo se muestra cómo crear un objeto de credencial idéntico al devuelto por Get-Credential
.
$User = "Domain01\User01"
$PWord = Read-Host -Prompt 'Enter a Password' -AsSecureString
$credentialParams = @{
TypeName = 'System.Management.Automation.PSCredential'
ArgumentList = $User, $PWord
}
$Credential = New-Object @credentialParams
El primer comando asigna el nombre de usuario a la variable $User
. Asegúrese de que el valor sigue el formato "Dominio\Usuario" o "NombreDeEquipo\Usuario".
El segundo comando usa el cmdlet Read-Host
para crear una cadena segura a partir de la entrada del usuario. El parámetro Prompt solicita la entrada del usuario y el parámetro AsSecureString enmascara la entrada y lo convierte en una cadena segura.
El tercer comando usa el cmdlet New-Object
para crear un objeto de PSCredential a partir de los valores almacenados en las variables $User
y $PWord
.
Ejemplo 5
$credentialParams = @{
Message = "Credential are required for access to the \\Server1\Scripts file share."
UserName = "Server01\PowerUser"
}
Get-Credential @credentialParams
PowerShell Credential Request
Credential are required for access to the \\Server1\Scripts file share.
Password for user Server01\PowerUser:
Este comando usa los parámetros Message y UserName del cmdlet Get-Credential
. Este formato de comando está diseñado para scripts y funciones compartidos. En este caso, el mensaje indica al usuario por qué se necesitan las credenciales y les da la confianza de que la solicitud es legítima.
Ejemplo 6
Invoke-Command -ComputerName Server01 -ScriptBlock {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
Este comando obtiene una credencial del equipo remoto Server01. El comando usa el cmdlet Invoke-Command
para ejecutar un comando Get-Credential
en el equipo remoto. La salida muestra el mensaje de seguridad remota que Get-Credential
incluye en el símbolo del sistema de autenticación.
Parámetros
-Credential
Especifica un nombre de usuario para la credencial, como User01 o Domain01\User01. El nombre del parámetro, -Credential
, es opcional.
Al enviar el comando y especificar un nombre de usuario, se le pedirá una contraseña. Si omite este parámetro, se le pedirá un nombre de usuario y una contraseña.
A partir de PowerShell 3.0, si escribe un nombre de usuario sin un dominio, Get-Credential
ya no inserta una barra diagonal inversa antes del nombre.
Las credenciales se almacenan en un objeto PSCredential y la contraseña se almacena como SecureString .
Nota
Para obtener más información sobre la protección de datos de SecureString, consulte ¿Qué tan segura es SecureString?.
Tipo: | PSCredential |
Posición: | 1 |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Message
Especifica un mensaje que aparece en el símbolo del sistema de autenticación. Este parámetro está diseñado para su uso en una función o script. Puede usar el mensaje para explicar al usuario por qué solicita credenciales y cómo se usarán.
Este parámetro se introdujo en PowerShell 3.0.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Title
Establece el texto de la línea de título de la solicitud de autenticación en la consola.
Este parámetro se introdujo en PowerShell 6.0.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-UserName
Especifica un nombre de usuario. El mensaje de autenticación solicita una contraseña para el nombre de usuario. De forma predeterminada, el nombre de usuario está en blanco y la solicitud de autenticación solicita tanto un nombre de usuario como una contraseña.
Este parámetro se introdujo en PowerShell 3.0.
Tipo: | String |
Posición: | 1 |
Valor predeterminado: | None (blank) |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
Este cmdlet devuelve un objeto de credencial.
Notas
Puede usar el objeto psCredential de que Get-Credential
crea en cmdlets que solicitan autenticación de usuario, como los que tienen un parámetro credential.
El parámetro credential no es compatible con todos los proveedores instalados con PowerShell.
A partir de PowerShell 3.0, se admite en cmdlets select, como los cmdlets Get-Content
y New-PSDrive
.