Come richiedere l'input dell'utente in PowerShell
-
Usa il
Read-Host
per richiedere input dell’utente in PowerShell -
Usa i parametri
Mandatory
per richiedere input dell’utente in PowerShell -
Usa il
PromptForChoice
per richiedere input dell’utente in PowerShell - Conclusione

Nella scrittura di PowerShell, interagire con gli utenti per raccogliere input è un requisito comune. Che si tratti di personalizzazione, decisioni o navigazione, richiedere input agli utenti è essenziale.
Questo articolo esplora vari metodi per richiedere input dell’utente in PowerShell, incluso il metodo Read-Host
, il metodo del parametro Mandatory
e il metodo PromptForChoice
. Ciascun metodo offre capacità uniche ed è adatto per diversi scenari, migliorando l’interattività e l’usabilità degli script PowerShell.
Usa il Read-Host
per richiedere input dell’utente in PowerShell
Il cmdlet Read-Host
richiede input dall’utente e legge una riga di input dalla console. Il Read-Host
può accettare solo 1022
caratteri come input da un utente.
Il parametro -Prompt
viene utilizzato per specificare un testo che fornisca informazioni su cosa inserire. Aggiunge un due punti :
al testo che inserisci.
Esempio:
Read-Host -Prompt "Enter your name"
In questo esempio, quando utilizziamo Read-Host
, richiede all’utente il messaggio "Inserisci il tuo nome"
e poi interrompe l’esecuzione dello script, aspettando l’input. Dopo che l’utente inserisce il proprio nome e preme Enter, lo script continua con l’esecuzione.
Tuttavia, poiché non stiamo catturando o memorizzando l’input in una variabile né eseguendo ulteriori azioni in base all’input ricevuto, questo esempio dimostra principalmente la funzionalità base di Read-Host
senza un’ulteriore elaborazione dell’input dell’utente.
Uscita:
Il Read-Host
interrompe l’esecuzione e riceve input. Quando un utente inserisce il valore al prompt, restituisce lo stesso valore.
Non accetta input dalla pipeline di PowerShell. Ecco un altro esempio:
$name = Read-Host "Enter your name"
Write-Output "Hello, $name!"
In questo esempio, utilizziamo Read-Host
per chiedere all’utente di inserire il proprio nome. La stringa "Inserisci il tuo nome"
funge da messaggio di prompt.
L’input dell’utente è memorizzato nella variabile $name
. Utilizziamo poi Write-Output
per visualizzare un messaggio di saluto personalizzato, incorporando il valore inserito dall’utente.
Con il cmdlet Read-Host
, possiamo salvare l’input come una stringa sicura, rendendolo uno strumento prezioso per raccogliere informazioni sensibili come le password. Questo cmdlet ci consente di richiedere agli utenti dati riservati garantendo confidenzialità e sicurezza.
Uscita:
Il parametro -AsSecureString
mostra asterischi *
al posto dei caratteri che l’utente inserisce come input. Con questo parametro, l’output di Read-Host
è un oggetto System.Security.SecureString
.
Read-Host "Enter password" -AsSecureString
In questo esempio, utilizziamo Read-Host
con il parametro -AsSecureString
per chiedere all’utente di inserire una password in modo sicuro. Il messaggio di prompt "Inserisci la password"
viene visualizzato all’utente.
Quando l’utente inserisce la password, questa è mascherata sullo schermo, garantendo confidenzialità. La password è quindi memorizzata come una stringa sicura nella variabile $password
, pronta per ulteriori elaborazioni o convalide.
Uscita:
Usa i parametri Mandatory
per richiedere input dell’utente in PowerShell
In PowerShell, il metodo del parametro Mandatory
è un modo potente per richiedere input agli utenti garantendo che determinati parametri siano necessari per l’esecuzione dello script. Contrassegnando i parametri come Mandatory
, gli autori degli script possono imporre la fornitura di valori di input essenziali, migliorando così l’affidabilità e l’usabilità dello script.
Ecco un esempio della funzione Name
che chiede l’input dell’utente quando viene eseguita.
Esempio:
function Name {
param(
[Parameter(Mandatory)]
[string]$name
)
Write-Output "Your name is $name."
}
Name
In questo esempio, definiamo una funzione PowerShell chiamata Name
con un parametro singolo chiamato name
. Specificando [Parameter(Mandatory)]
, garantiamo che l’utente debba fornire un valore per il parametro name
quando invoca la funzione.
La funzione quindi restituisce un messaggio incorporando il nome fornito utilizzando Write-Output
.
Uscita:
Usa il PromptForChoice
per richiedere input dell’utente in PowerShell
In PowerShell, il metodo PromptForChoice
fornisce un modo strutturato per richiedere agli utenti un insieme di opzioni e ricevere la loro scelta come input. Questo metodo è particolarmente utile quando si presentano agli utenti un menu o un elenco di scelte, consentendo un’esperienza di esecuzione dello script più interattiva e user-friendly.
Esempio:
$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)"
In questo esempio, definiamo un messaggio di prompt e un array di scelte e specifichiamo l’indice della scelta predefinita. Utilizziamo quindi il metodo PromptForChoice
per visualizzare la finestra di dialogo del prompt con le scelte fornite.
La selezione dell’utente è memorizzata nella variabile $result
, che utilizziamo per recuperare l’etichetta dell’opzione scelta e visualizzarla all’utente.
Uscita:
Conclusione
Richiedere input dell’utente in PowerShell è cruciale per creare script interattivi e user-friendly. Utilizzando metodi come Read-Host
, parametri Mandatory
e PromptForChoice
, gli autori di script possono raccogliere in modo efficiente l’input dell’utente, garantendo al contempo affidabilità e sicurezza.
Che si tratti di raccogliere semplici input testuali, imporre parametri obbligatori o presentare agli utenti un insieme strutturato di scelte, questi metodi permettono agli autori di script di creare soluzioni di automazione robuste e versatili. Comprendendo e sfruttando queste tecniche, gli autori di script PowerShell possono migliorare l’usabilità e l’efficacia dei loro script, soddisfacendo le esigenze diverse di utenti e amministratori.