Como solicitar a entrada do usuário no PowerShell
-
Use o
Read-Host
para Solicitar Entrada do Usuário no PowerShell -
Use os Parâmetros
Mandatory
para Solicitar Entrada do Usuário no PowerShell -
Use o
PromptForChoice
para Solicitar Entrada do Usuário no PowerShell - Conclusão

Na programação PowerShell, interagir com usuários para coletar entradas é um requisito comum. Seja para personalização, tomada de decisões ou navegação, solicitar entradas dos usuários é essencial.
Este artigo explora vários métodos de solicitação de entrada do usuário no PowerShell, incluindo o método Read-Host
, o método do parâmetro Mandatory
e o método PromptForChoice
. Cada método oferece capacidades únicas e é adequado para diferentes cenários, aprimorando a interatividade e a usabilidade dos scripts PowerShell.
Use o Read-Host
para Solicitar Entrada do Usuário no PowerShell
O cmdlet Read-Host
solicita a entrada do usuário e lê uma linha de entrada do console. O Read-Host
pode aceitar apenas 1022
caracteres como entrada de um usuário.
O parâmetro -Prompt
é usado para especificar um texto que fornece informações sobre o que deve ser inserido. Ele adiciona um dois-pontos :
ao texto que você insere.
Exemplo:
Read-Host -Prompt "Enter your name"
Neste exemplo, quando utilizamos o Read-Host
, ele solicita ao usuário a mensagem "Digite seu nome"
e, em seguida, pausa a execução do script, aguardando a entrada. Depois que o usuário insere seu nome e pressiona Enter, o script continua a execução.
No entanto, como não estamos capturando ou armazenando a entrada em uma variável nem realizando quaisquer ações subsequentes com base na entrada recebida, este exemplo demonstra principalmente a funcionalidade básica do Read-Host
sem processamento adicional da entrada do usuário.
Saída:
O Read-Host
pausa a execução e recebe a entrada. Quando um usuário insere o valor no prompt, ele retorna o mesmo valor.
Ele não aceita entrada do pipeline do PowerShell. Aqui está outro exemplo:
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
Neste exemplo, usamos o Read-Host
para solicitar ao usuário que insira seu nome. A string "Digite seu nome"
serve como a mensagem de prompt.
A entrada do usuário é armazenada na variável $name
. Em seguida, usamos Write-Output
para exibir uma mensagem de saudação personalizada, incorporando o valor inserido pelo usuário.
Com o cmdlet Read-Host
, podemos salvar a entrada como uma string segura, tornando-o uma ferramenta inestimável para coletar informações sensíveis, como senhas. Este cmdlet nos permite solicitar aos usuários dados seguros, garantindo a confidencialidade e a segurança.
Saída:
O parâmetro -AsSecureString
exibe asteriscos *
no lugar dos caracteres que o usuário insere como entrada. Com este parâmetro, a saída do Read-Host
é um objeto System.Security.SecureString
.
Read-Host "Enter password" -AsSecureString
Neste exemplo, usamos o Read-Host
com o parâmetro -AsSecureString
para solicitar ao usuário que insira uma senha de forma segura. A mensagem de prompt "Digite a senha"
é exibida ao usuário.
Quando o usuário insere a senha, ela é mascarada na tela, garantindo a confidencialidade. A senha é então armazenada como uma string segura na variável `$password$, pronta para processamento ou validação posterior.
Saída:
Use os Parâmetros Mandatory
para Solicitar Entrada do Usuário no PowerShell
No PowerShell, o método do parâmetro Mandatory
é uma maneira poderosa de solicitar entradas dos usuários, garantindo que certos parâmetros sejam necessários para a execução do script. Ao marcar parâmetros como Mandatory
, os autores de scripts podem impor a fornecimento de valores de entrada essenciais, melhorando a confiabilidade e a usabilidade do script.
Aqui está um exemplo da função Name
que solicita a entrada do usuário quando é executada.
Exemplo:
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
Neste exemplo, definimos uma função PowerShell chamada Name
com um único parâmetro chamado name
. Ao especificar [Parameter(Mandatory)]
, garantimos que o usuário deve fornecer um valor para o parâmetro name
ao invocar a função.
A função então exibe uma mensagem incorporando o nome fornecido usando Write-Output
.
Saída:
Use o PromptForChoice
para Solicitar Entrada do Usuário no PowerShell
No PowerShell, o método PromptForChoice
fornece uma maneira estruturada de solicitar aos usuários um conjunto de opções e receber sua escolha como entrada. Este método é particularmente útil ao apresentar aos usuários um menu ou lista de opções, permitindo uma experiência de execução de script mais interativa e amigável.
Exemplo:
$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)"
Neste exemplo, definimos uma mensagem de prompt e um array de opções e especificamos o índice da escolha padrão. Em seguida, usamos o método PromptForChoice
para exibir a caixa de diálogo de prompt com as opções fornecidas.
A seleção do usuário é armazenada na variável $result
, que usamos para recuperar o rótulo da opção escolhida e exibi-lo para o usuário.
Saída:
Conclusão
Solicitar entrada do usuário no PowerShell é crucial para criar scripts interativos e amigáveis. Ao utilizar métodos como Read-Host
, parâmetros Mandatory
e PromptForChoice
, os autores de scripts podem coletar eficientemente a entrada do usuário, garantindo confiabilidade e segurança.
Seja coletando entradas de texto simples, impondo parâmetros obrigatórios ou apresentando aos usuários um conjunto estruturado de escolhas, esses métodos capacitam os autores de scripts a criar soluções de automação robustas e versáteis. Ao entender e aproveitar essas técnicas, os autores de scripts PowerShell podem melhorar a usabilidade e a eficácia de seus scripts, atendendo às diversas necessidades de usuários e administradores.