Usando o cmdlet Read-Host do PowerShell, você pode solicitar interativamente entradas do usuário do script. Vamos ver algumas aplicações do mundo real sobre como podemos usar o cmdlet Read-Host
do PowerShell.
Solicitando Entrada com o Read-Host
O cmdlet Read-Host
realiza duas funções em um script do PowerShell; ele pausa a execução e recebe entrada. Isso é tudo. Read-Host
é um cmdlet simples, mas útil quando é necessário obter informações do usuário do script.
No seu nível mais básico, o cmdlet Read-Host
simplesmente requer o uso do parâmetro Prompt
. Esse parâmetro Prompt
permite que você dê ao usuário do script alguma indicação sobre o que inserir. Por exemplo, se o seu script requer um nome de servidor, você pode optar por usar o Read-Host
para solicitar ao usuário que insira isso quando o script for executado.
Você pode ver abaixo que ao executar o Read-Host
dentro do console do PowerShell usando o parâmetro Prompt
, o PowerShell está interrompendo toda a execução e exibindo minha mensagem de prompt, dando ao usuário uma mensagem explicativa sobre o que estamos buscando.

Vamos incorporar isso a um script. Sempre que um usuário insere informações no prompt, o Read-Host
retorna essas informações de volta para o seu código. Você pode capturar facilmente essas informações atribuindo a saída a uma variável. Talvez eu queira pedir um nome de servidor e depois fazer algo com esse nome de servidor. Caso contrário, gostaria de enviar um aviso ao usuário informando que realmente, realmente preciso desse nome de servidor.
Usando uma construção simples de if/then, posso garantir que o usuário insira um nome de servidor. Uma vez feito isso, posso capturá-lo e fazer algo com ele; caso contrário, enviar uma mensagem de aviso.

Pedindo Senhas
Você deve saber que não é uma boa ideia armazenar senhas em texto simples em seus scripts. Da mesma forma, nunca é uma boa ideia ter senhas armazenadas em texto simples na memória também. Para contornar isso, o PowerShell tem um conceito chamado de string segura, que é uma string simples que está criptografada.
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!
Vamos dizer que eu tenho um segredo profundo e sombrio que não quero que ninguém saiba, mas preciso passar essa senha para algum tipo de software. Você pode ver abaixo que quando eu não uso AsSecureString
, você está no meu encalço! No entanto, se eu usar AsSecureString
, meu segredo está seguro, pois cada caractere que digito é substituído por um asterisco e a saída é salva como uma string segura em vez de uma string de texto simples.

Para consultar a documentação do Read-Host
, confira a Microsoft Docs.