Cómo solicitar la entrada del usuario en PowerShell
-
Usa
Read-Host
para solicitar la entrada del usuario en PowerShell -
Usa los parámetros
Mandatory
para solicitar la entrada del usuario en PowerShell -
Usa
PromptForChoice
para solicitar la entrada del usuario en PowerShell - Conclusión

En la programación de PowerShell, interactuar con los usuarios para recopilar información es un requisito común. Ya sea para personalización, toma de decisiones o navegación, solicitar información a los usuarios es esencial.
Este artículo explora varios métodos para solicitar la entrada del usuario en PowerShell, incluyendo el método Read-Host
, el método de parámetro Mandatory
y el método PromptForChoice
. Cada método ofrece capacidades únicas y es adecuado para diferentes escenarios, mejorando la interactividad y usabilidad de los scripts de PowerShell.
Usa Read-Host
para solicitar la entrada del usuario en PowerShell
El cmdlet Read-Host
solicita la entrada del usuario y lee una línea de entrada desde la consola. El Read-Host
solo puede aceptar 1022
caracteres como entrada de un usuario.
El parámetro -Prompt
se utiliza para especificar un texto que proporciona la información sobre qué ingresar. Agrega dos puntos :
al texto que ingresas.
Ejemplo:
Read-Host -Prompt "Enter your name"
En este ejemplo, cuando utilizamos Read-Host
, le pide al usuario que ingrese el mensaje "Ingresa tu nombre"
y luego pausa la ejecución del script, esperando una entrada. Después de que el usuario ingresa su nombre y presiona Enter, el script continúa con la ejecución.
Sin embargo, dado que no estamos capturando ni almacenando la entrada en una variable ni realizando acciones posteriores basadas en la entrada recibida, este ejemplo demuestra principalmente la funcionalidad básica de Read-Host
sin un procesamiento adicional de la entrada del usuario.
Salida:
El Read-Host
pausa la ejecución y recibe la entrada. Cuando un usuario ingresa el valor en el aviso, devuelve ese mismo valor.
No acepta entrada del pipeline de PowerShell. Aquí hay otro ejemplo:
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
En este ejemplo, usamos Read-Host
para solicitar al usuario que ingrese su nombre. La cadena "Ingresa tu nombre"
sirve como mensaje de aviso.
La entrada del usuario se almacena en la variable $name
. Luego usamos Write-Output
para mostrar un mensaje de saludo personalizado, incorporando el valor ingresado por el usuario.
Con el cmdlet Read-Host
, podemos guardar la entrada como una cadena segura, lo que lo convierte en una herramienta invaluable para recopilar información sensible como contraseñas. Este cmdlet nos permite solicitar a los usuarios datos seguros, asegurando la confidencialidad y la seguridad.
Salida:
El parámetro -AsSecureString
muestra asteriscos *
en lugar de los caracteres que el usuario ingresa como entrada. Con este parámetro, la salida de Read-Host
es un objeto System.Security.SecureString
.
Read-Host "Enter password" -AsSecureString
En este ejemplo, usamos Read-Host
con el parámetro -AsSecureString
para solicitar al usuario que ingrese una contraseña de manera segura. El mensaje de aviso "Ingresa la contraseña"
se muestra al usuario.
Cuando el usuario ingresa la contraseña, esta se oculta en la pantalla, asegurando la confidencialidad. La contraseña se almacena como una cadena segura en la variable $password
, lista para un procesamiento o validación posterior.
Salida:
Usa los parámetros Mandatory
para solicitar la entrada del usuario en PowerShell
En PowerShell, el método de parámetro Mandatory
es una forma poderosa de solicitar a los usuarios que ingresen datos, asegurando que ciertos parámetros sean obligatorios para la ejecución del script. Al marcar parámetros como Mandatory
, los autores de scripts pueden imponer la provisión de valores de entrada esenciales, mejorando así la fiabilidad y usabilidad del script.
Aquí hay un ejemplo de la función Name
que solicita la entrada del usuario cuando se ejecuta.
Ejemplo:
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
En este ejemplo, definimos una función de PowerShell llamada Name
con un único parámetro llamado name
. Al especificar [Parameter(Mandatory)]
, aseguramos que el usuario debe proporcionar un valor para el parámetro name
al invocar la función.
La función luego genera un mensaje incorporando el nombre proporcionado usando Write-Output
.
Salida:
Usa PromptForChoice
para solicitar la entrada del usuario en PowerShell
En PowerShell, el método PromptForChoice
proporciona una forma estructurada de solicitar a los usuarios un conjunto de opciones y recibir su elección como entrada. Este método es particularmente útil al presentar a los usuarios un menú o lista de opciones, permitiendo una experiencia de ejecución de script más interactiva y fácil de usar.
Ejemplo:
$choicePrompt = "Choose an option:"
$choices = [System.Management.Automation.Host.ChoiceDescription[]]@(
"&Option 1",
"&Option 2",
"&Option 3"
)
$defaultChoice = 0
$result = $host.UI.PromptForChoice("Title", $choicePrompt, $choices, $defaultChoice)
Write-Output "You selected $($choices[$result].Label)"
En este ejemplo, definimos un mensaje de aviso y un array de opciones y especificamos el índice de opción predeterminado. Luego usamos el método PromptForChoice
para mostrar el cuadro de diálogo de aviso con las opciones proporcionadas.
La selección del usuario se almacena en la variable $result
, que usamos para recuperar la etiqueta de la opción elegida y mostrarla al usuario.
Salida:
Conclusión
Solicitar la entrada del usuario en PowerShell es crucial para crear scripts interactivos y fáciles de usar. Al utilizar métodos como Read-Host
, parámetros Mandatory
y PromptForChoice
, los autores de scripts pueden recopilar eficazmente la entrada del usuario mientras aseguran fiabilidad y seguridad.
Ya sea recopilando entradas de texto simples, imponiendo parámetros obligatorios o presentando a los usuarios un conjunto estructurado de opciones, estos métodos empoderan a los autores de scripts para crear soluciones de automatización robustas y versátiles. Al comprender y aprovechar estas técnicas, los autores de scripts de PowerShell pueden mejorar la usabilidad y efectividad de sus scripts, atendiendo a las diversas necesidades de usuarios y administradores por igual.