2012-05-22 21 views
5

Czy istnieje wtyczka lub narzędzie, które pozwoli mi wyświetlić listę obiektów do użytkownika (styl Format-Table) i pozwolić im używać kursora, aby wybrać opcję z listy, w tym potencjalnie przewijając długa lista? Chciałbym być w stanie zrobić coś takiego:Interaktywny wybierz z listy w Powershell

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

Ten skrypt powinien wyświetlić listę pasujących rachunków w wierszu konsoli umożliwić użytkownikowi przewijanie w górę iw dół listy interaktywnie i wybierz opcję, naciskając Enter (lub podaj wartość null, jeśli użytkownik ucieknie). Do Set-User zostanie przekazane tylko jedno konto, a nie lista wszystkich pasujących opcji.

Oczywiście szczegóły mogą się różnić. Chociaż wolałbym wersję konsolową, graficzna byłaby akceptowalna (pojawiły się okna dialogowe Windows). Dokładne naciśnięcia klawiszy mogą być różne. Jednak podstawowy cel (przyjęcie listy, uzyskanie danych wejściowych od użytkownika, wyprowadzenie wyniku) powinien zostać osiągnięty.

Odpowiedz

7

w v3:

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

To działa doskonale, dziękuję @ walid2mi! Nie mam nic przeciwko instalowaniu beta PSv3 na moim komputerze klienta, a to jest znacznie czystsza implementacja niż sugerowałaby to bardziej kompatybilna funkcja Out-Form. –

1

Spójrz do użytku Out-Form

pseudo:

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