2012-05-22 9 views
5

Esiste un plug-in o uno strumento che consente di visualizzare un elenco di oggetti per un utente (stile Format-Table) e consentire loro di utilizzare il cursore per selezionare una scelta dall'elenco, tra cui potenzialmente lo scorrimento di un lunga lista? Vorrei essere in grado di fare qualcosa del genere:Interactive Seleziona dall'elenco in PowerShell

Get-User -anr $search |Get-Choice| Set-User -EnableAccount true

Questo script dovrebbe visualizzare un elenco di account che corrispondono a un prompt della console, permetterà all'utente di scorrere su e giù l'elenco interattivo e seleziona una scelta premendo Invio (o passa null se l'utente colpisce la fuga). Solo un account verrebbe passato a Set-User, anziché un elenco di tutte le scelte corrispondenti.

Ovviamente i dettagli potrebbero essere diversi. Mentre preferirei una versione per console, sarebbe accettabile una versione grafica (che aprisse una finestra di dialogo di Windows). Le battute esatte potrebbero essere diverse. Ma l'obiettivo principale (accettare una lista, ottenere input da parte dell'utente, convogliare il risultato) dovrebbe essere raggiunto.

risposta

7

in v3:

Get-User -anr $search | Out-GridView -PassThru | Set-User -EnableAccount true 
+0

che funziona perfettamente, grazie @ walid2mi! Non mi dispiace installare la versione beta di PSv3 sul mio computer client, e questa è un'implementazione molto più pulita rispetto a quella suggerita dalla funzione Out-Form più compatibile. –

1

Date un'occhiata ad uso Out-Form

pseudo:

out-form -title "Enable Account" -data (Get-user -anr $search) -columnNames ("AccountName") ` 
    -columnProperties ("SamAccountName") -actions @{Enable It!" = { $_ | Set-User -EnableAccount true}}