2012-05-22 1 views
5

Gibt es ein Plugin oder ein Werkzeug, mit dem ich eine Liste von Objekten für einen Benutzer anzeigen kann (Format-Table style) und den Cursor verwenden kann, um eine Auswahl aus der Liste auszuwählen, einschließlich möglicherweise Scrollen a lange Liste? Ich möchte in der Lage sein, so etwas zu tun:Interaktive Auswahl aus der Liste in Powershell

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

Dieses Skript sollte, ermöglicht es dem Benutzer, um nach oben und unten in der Liste interaktiv an einer Konsolen-Eingabeaufforderung eine Liste passender Konten anzuzeigen , und wählen Sie eine Auswahl aus, indem Sie die Eingabetaste drücken (oder null übergeben, wenn der Benutzer auf Escape klickt). Nur ein Konto würde an Set-User übergeben, anstatt eine Liste aller übereinstimmenden Auswahlmöglichkeiten.

Offensichtlich können Details abweichen. Während ich eine Konsolenversion bevorzugen würde, wäre eine grafische Version akzeptabel (die in einem Windows-Dialog angezeigt wurde). Die genauen Tastenanschläge könnten unterschiedlich sein. Aber das Hauptziel (das Akzeptieren einer Liste, das Erhalten von Benutzereingaben, das Auslassen des Ergebnisses) sollte erfüllt sein.

Antwort

7

in v3:

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

, die perfekt funktioniert, danke @ walid2mi! Es macht mir nichts aus, die PSv3-Beta auf meinem Client-Rechner zu installieren, und das ist eine viel sauberere Implementierung als die besser kompatible Out-Form-Funktion. –

1

Werfen Sie einen Blick auf Out-Form

Pseudo Verwendung:

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