PowerShell Out-GridView und PassThru

PowerShell

Heute möchte ich euch das PowerShell CMDlet “Out-GridView” und den Parameter PassThru vorstellen.

Out-GridView bietet euch die Möglichkeit ein Array in einem externen Fenster, etwas übersichtlicher, darzustellen.

Das Fenster bietet einen Excel ähnlichen Aufbau und ihr habt somit die Möglichkeit dort die Spalten zu sortieren und die Werte zu Filtern, und das sehr einfach und schnell.

PowerSehll Out-GridView

Fangen wir mit einem kleinen Beispiel an.

Mit folgenden Kommando holen wir uns alle Element aus einem Ordner.

Get-ChildItem -Path “C:\Temp\MyFolder”

Standardmäßig würde PowerShell dies nun so darstellen.

image

Als schnell Information sicherlich ausreichend, sollte die Liste jedoch länger sein und man sortieren oder Filtern möchte bietet Out-GridView hier bessere Möglichkeiten.


Also führen wir dieses Kommando aus um die Out-GridView Box zu erhalten.

Get-ChildItem -Path “C:\Temp\MyFolder” | Out-GridView

Dies sollten nun so aussehen

Out-GridView

Hier habt ihr die Möglichkeit mit Klick auf die Spaltenüberschrift diese zu sortieren, die Spaltengröße zu vergrößern oder zu verkleinern und im Feld “Filter” nach Werten zu suchen.

PowerShell Out-GridView und PassThru

Aber es gibt noch mehr.

PassThru ist eine Option des Out-GridView CMDlets welche ab PowerShell v3 zur Verfügung steht

Führen wir folgendes Kommando aus, erhalten wir ein etwas anderes Fenster

Get-ChildItem -Path “C:\Temp\MyFolder” | Out-GridView –PassThru

Den das Out-GridView Fenster erhält einen OK und abbrechen Button, den wir haben jetzt die Möglichkeit hier Werte auszuwählen und mit diesen Werten weiterzuarbeiten.

Out-GridView.

Also markieren wir einen oder mehrere Werte und klicken OK, danach sollten wir die Werte als Ergebnis zurückbekommen.

Out-Gridview PassThru

So, und jetzt möchten wir die ausgewählten Dateien in einen Ordner verschieben, hierzu sieht das Kommando wie folgt aus.

Wir übergeben die PassThru ausgewählten Elemente per PowerShell Pipe dem CMDlet “Move-Item”

Get-ChildItem -Path “C:\Temp\MyFolder” | Out-GridView -PassThru | Move-Item -Destination “C:\Temp\Destination”

Somit können wir ein kleines Interface bauen, um die Auswahl von Elementen zu vereinfachen.

Beispiele:

  • Ich hab ein Script geschrieben um die Netzwerkkarten einer NetApp zu konfigurieren, hier lese ich alle Netzwerkkarten aus und lasse den User durch Out-Gridview die korrekte NIC auswählen.
  • Ein weiteres Script bietet die Möglichkeit Luns auf einem Netapp Storage zu vergrößern, auch hier kommt die Auswahl des richtigen Lun’s mittels Out-Gridview

Es gibt noch viele Möglichkeiten das einzusetzen, schreibt mir eure Beispiele in den Kommentaren

Michael Seidl aka Techguy

3 thoughts on “PowerShell Out-GridView und PassThru”

  1. Pingback: Meine PowerShell Scripts zum Download » TechGuy

  2. Sehr schön, sowas habe ich gesucht um Netzwerkkarten beim Hyper-V Core umbennen zu können ohne ein ganzes Menü zu schreiben. Danke dir 😉

  3. Echt cool… Kannte ich bisher noch nicht. Ich bin dabei Skripte zu erstellen, mit denen über einen API-Call viele Benutzer ermittelt werden. Aus der resultierenden Liste kann mit “Out-GridView -PassThru” der Anwender nun die Benutzer auswählen, die er anpassen möchte.

    TipTop!

Leave a Comment

Your email address will not be published. Required fields are marked *

*