Cómo solicitar la entrada del usuario en PowerShell

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

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:

pedir entrada del usuario en powershell - salida 1

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:

solicitar entrada del usuario en powershell - salida 2

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:

sugerir entrada de usuario en PowerShell - salida 3

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:

indicar entrada de usuario en powershell - salida 4

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:

solicitar entrada de usuario en powershell - salida 5

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.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website