Usando el cmdlet de PowerShell Read-Host, puedes solicitar interactivamente la entrada del usuario del script. Veamos algunas aplicaciones del mundo real sobre cómo podemos usar el cmdlet de PowerShell Read-Host
.
Solicitando entrada con Read-Host
El cmdlet Read-Host
realiza dos funciones en un script de PowerShell; pausa la ejecución y recibe la entrada. Eso es todo. Read-Host
es un cmdlet simple pero útil cuando se necesita obtener información del usuario del script.
En su forma más básica, el cmdlet Read-Host
simplemente requiere el uso del parámetro Prompt
. Este parámetro Prompt
te permite darle al usuario del script alguna indicación sobre qué ingresar. Por ejemplo, si tu script requiere un nombre de servidor, puedes optar por utilizar Read-Host
para solicitar al usuario que ingrese eso cuando se ejecute el script.
A continuación, puedes ver que al ejecutar Read-Host
dentro de la consola de PowerShell utilizando el parámetro Prompt
, PowerShell detiene toda la ejecución y muestra mi mensaje de solicitud, dándole al usuario un mensaje explicativo sobre lo que estamos buscando.

Vamos a incorporar esto en un script. Cuando un usuario ingresa información en el indicador, Read-Host
devuelve esa información a tu código. Puedes capturar fácilmente esta información asignando la salida a una variable. Tal vez me gustaría pedir un nombre de servidor y luego hacer algo con ese nombre de servidor. De lo contrario, me gustaría enviar una advertencia al usuario para informarle que realmente, realmente necesito ese nombre de servidor.
Usando una estructura simple de si/entonces, puedo asegurarme de que mi usuario introduzca un nombre de servidor. Una vez que lo hagan, puedo capturarlo y hacer algo con él; de lo contrario, enviar un mensaje de advertencia.

Pidiendo Contraseñas
Deberías saber que no es una buena idea almacenar contraseñas en texto plano en tus scripts. Del mismo modo, nunca es buena idea tener contraseñas almacenadas en texto plano en la memoria. Para superar esto, PowerShell tiene un concepto llamado cadena segura, que es una cadena simple pero encriptada.
A secure string can any kind of sensitive information; a password is a great example. What does this have to do with Read-Host
? The Read-Host
cmdlet has an AsSecureString
parameter which allows the user to not only store the output as a secure string but also to show asterisk while typing to hide your secret from prying eyes!
Supongamos que tengo un secreto profundo y oscuro que no quiero que nadie sepa, pero necesito pasar esta contraseña a algún tipo de software. Puedes ver a continuación que cuando no uso AsSecureString
, ¡me descubres! Sin embargo, si uso AsSecureString
, mi secreto está a salvo, ya que cada carácter que escribo se reemplaza con un asterisco y la salida se guarda como una cadena segura en lugar de una cadena de texto plano.

Para consultar la documentación de Read-Host
, echa un vistazo a Microsoft Docs.