Compartir a través de


Get-Credential

Obtiene un objeto de credencial basado en un nombre de usuario y una contraseña.

Sintaxis

CredentialSet (valor predeterminado)

Get-Credential
    [-Credential] <PSCredential>
    [<CommonParameters>]

MessageSet

Get-Credential
    [[-UserName] <String>]
    -Message <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.

A partir de Windows PowerShell 3.0, puede usar el parámetro Message para especificar un mensaje personalizado en el cuadro de diálogo que solicita al usuario su nombre y contraseña.

El cmdlet Get-Credential solicita al usuario una contraseña o un nombre de usuario y una contraseña. De forma predeterminada, aparece un cuadro de diálogo de autenticación para preguntar al usuario. Sin embargo, en algunos programas host, como la consola de Windows PowerShell, puede preguntar al usuario en la línea de comandos cambiando una entrada del Registro. Para obtener más información sobre esta entrada del Registro, consulte las notas y ejemplos.

Ejemplos

Ejemplo 1

$c = Get-Credential

Este comando obtiene un objeto de credencial y lo guarda en la variable $c.

Al escribir el comando, aparece un cuadro de diálogo que solicita 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 que están instalados con Windows PowerShell no admiten el parámetro credential .

Ejemplo 2

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

Estos comandos usan un objeto de credencial que el cmdlet get-credential devuelve para autenticar a un usuario en un equipo remoto para que pueda usar Instrumental de administración de Windows (WMI) para administrar el equipo.

El primer comando obtiene un objeto de credencial y lo guarda en la variable $c. El segundo comando usa el objeto credential en un comando Get-WmiObject. Este comando obtiene información sobre las unidades de disco en el equipo Server01.

Ejemplo 3

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

Este comando muestra cómo incluir un comando Get-Credential en un comando Get-WmiObject.

Este comando usa el cmdlet Get-WmiObject para obtener información sobre el BIOS en el equipo Server01. Usa el parámetro Credential de para autenticar al usuario, Domain01\User01 y un comando Get-Credential como valor del parámetro Credential.

Ejemplo 4

PS> $c = Get-Credential -credential User01
PS> $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 del objeto de credencial resultante.

Ejemplo 5

$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 de . Al usar PromptForCredential, puede especificar el título, los mensajes y el nombre de usuario que aparecen en el cuadro de mensaje.

Ejemplo 6

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

En este ejemplo se muestra cómo modificar el Registro para que se le solicite al usuario en la línea de comandos, en lugar de usar un cuadro de diálogo.

El comando crea el ConsolePrompting entrada del Registro y establece su valor en True. Para ejecutar este comando, inicie Windows PowerShell con la opción "Ejecutar como administrador".

Para usar un cuadro de diálogo para preguntar, establezca el valor de ConsolePrompting en false ($false) o use el cmdlet Remove-ItemProperty para eliminarlo.

La entrada del Registro ConsolePrompting funciona en algunos programas host, como la consola de Windows PowerShell. Es posible que no funcione en todos los programas host.

Ejemplo 7

En este ejemplo se muestra cómo crear un objeto de credencial idéntico al objeto que Get-Credential devuelve sin preguntar al usuario. Este método requiere una contraseña de texto sin formato, que podría infringir los estándares de seguridad de algunas empresas.

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

El primer comando guarda el nombre de la cuenta de usuario en el parámetro $User. El valor debe tener el formato "Dominio\Usuario" o "NombreDeEquipo\Usuario".

El segundo comando usa el cmdlet ConvertTo-SecureString para crear una cadena segura a partir de una contraseña de texto sin formato. El comando usa el parámetro AsPlainText para indicar que la cadena es texto sin formato y el parámetro Force para confirmar que comprende los riesgos de usar texto sin formato.

El tercer comando usa el cmdlet New-Object para crear un objeto psCredential a partir de los valores de las variables $User y $PWord.

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

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

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, se le pedirá una contraseña.

A partir de Windows PowerShell 3.0, si escribe un nombre de usuario sin un dominio, Get-Credential ya no inserta una barra diagonal inversa antes del nombre.

Si omite este parámetro, se le pedirá un nombre de usuario y una contraseña.

Propiedades de parámetro

Tipo:PSCredential
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

CredentialSet
Posición:1
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Message

Especifica un mensaje que aparece en la solicitud 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 presenta en Windows PowerShell 3.0.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

MessageSet
Posición:Named
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Cuando aparezca el mensaje de autenticación en un cuadro de diálogo, el usuario puede editar el nombre de usuario especificado. Sin embargo, el usuario no puede cambiar el nombre de usuario cuando aparece el símbolo del sistema en la línea de comandos. Al usar este parámetro en una función o script compartidos, tenga en cuenta todas las presentaciones posibles.

Este parámetro se presenta en Windows PowerShell 3.0.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None (blank)
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

MessageSet
Posición:1
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

PSCredential

Get-Credential devuelve un objeto de credencial.

Notas

Puede usar el objeto de PSCredential que Get-Credential crea en cmdlets que solicitan autenticación de usuario, como los que tienen un parámetro de credenciales de .

De forma predeterminada, el mensaje de autenticación aparece en un cuadro de diálogo. Para mostrar el símbolo del sistema de autenticación en la línea de comandos, agregue el ConsolePrompting entrada del Registro (HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ConsolePrompting) y establezca su valor en True. Si la ConsolePrompting entrada del Registro no existe o si su valor es False, el símbolo del sistema de autenticación aparece en un cuadro de diálogo. Para obtener instrucciones, consulte los ejemplos.

La ConsolePrompting entrada del Registro funciona en la consola de Windows PowerShell, pero no funciona en todos los programas host.

Por ejemplo, no tiene ningún efecto en el entorno de scripting integrado (ISE) de Windows PowerShell. Para obtener información sobre el efecto de la entrada del Registro de ConsolePrompting, consulte los temas de ayuda del programa host.

El parámetro credential no es compatible con todos los proveedores instalados con Windows PowerShell. A partir de Windows PowerShell 3.0, se admite en el cmdlet seleccionado, como los cmdlets Get-WmiObject y New-PSDrive.