14. Mai 2019 Aleksej Kusnir

PowerShell Funktionen erstellen und anwenden

Was wäre ein PowerShell Skript ohne Funktionen!

Ich zeige Ihnen in diesem Blogpost wie Sie eine Funktion in PowerShell erstellen und diese anwenden können.

Zusätzlich lernen Sie, wie Sie Parameter in der Funktion nutzen und Rückgabewerte verarbeiten können.

Bevor wir aber sofort ins Detail gehen, ein paar wichtige Grundlagen zu Funktionen unter PowerShell.

Was ist eine PowerShell Funktion?

Eine Funktion ist eine Sammlung von Anweisung, die bei Aufruf der Funktion ausgeführt wird.

Durch Funktionen schaffen Sie sich eine Struktur in einem PowerShell Skript, steigern gleichzeitig die Performance und verringern Fehler.

Eine Funktion erstellen Sie z.B., wenn Sie einen bestimmten Code in PowerShell mehrmals anwenden möchten.

Wenn Sie einen bestimmten Wert z.B. Logeinträge in eine Textdatei schreiben möchten, dann würden Sie eine Funktion erstellen, die das Schreiben von Logeinträgen in eine Logdatei durchführt.

Bei Aufruf der Funktion würden Sie dann nur die Werte mitgeben, die in das Log geschrieben werden sollen.

Praktisch, oder?

Eine Beschreibung von Microsoft zu Funktionen finden Sie hier: 

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_functions?view=powershell-6

Nun lassen Sie uns zusammen eine Funktion als Beispiel erstellen.

Wie erstellen Sie eine Funktion in PowerShell?

Für das Erstellen einer Funktion in PowerShell verwenden Sie die Syntax “Function” und dahinter den Namen der Funktion.

Beispiel:

function testfunktion()
{ Write-Host “Hello Word!”}

In diesem Beispiel würde Sie in PowerShell das Wort “Hello Word!” ausgeben, wenn Sie die Funktion aufrufen würden.

Wie rufen Sie eine Funktion in PowerShell auf?

Um die Funktion aufzurufen, müssen Sie nur den Namen der Funktion im Skript verwenden.

Beispiel:

# Funktion erstellen 

function testfunktion()
{ Write-Host “Hello Word!”} 

# Funktion aufrufen 

testfunktion 

In dem Sie z.B. hier den Namen testfunktion schreiben, wird PowerShell die Funktion aufrufen.

Aber vlt. möchten Sie auch Werte einer Funktion mitgeben? Die so genannten Parameter.

Erstellen Sie eine Funktion mit Parametern

Sie können einer Funktion Parameter wie z.B. Text, Zahlen, Objekte usw. mitgeben.

Beispiel 1: In dieser Funktion können Sie einfach ein Text, ein Objekt oder eine Zahl der Funktion mitgeben.

# Funktion erstellen 

function testfunktion($text)
{ Write-Host “Hello Word! $text”} 

# Funktion aufrufen 

testfunktion(“Beispieltext“) 

Beispiel 2: In dieser Funktion wird eine Zahl erwartet. Geben Sie z.B. ein Text mit, wird ein Fehler ausgegeben. Hier geben wir die Zahl 2 mit.

# Funktion erstellen 

function testfunktion([int]$zahl)
{ Write-Host “Hello Word! $zahl”} 

# Funktion aufrufen 

testfunktion(2)

# Funktion erstellen 

function testfunktion([int]$zahl)
{ Write-Host “Hello Word! $zahl”} 

# Funktion aufrufen 

testfunktion(2)

Eine Funktion kann aber nicht nur Werte als Parameter annehmen, sondern auch ein Ergebnis ausgeben. Das wird als Return bezeichnet.

Wie Sie ein Return Wert in einer Funktion verwenden

Ich möchte Ihnen dieses Beispiel zeigen, wie Sie eine Zahl einer Funktion mitgeben.

Die Funktion multipliziert die Zahl, die Sie mitgeben *2 und gibt das Ergebnis zurück.

Hier könnten aber auch komplexe Anweisung in der Funktion enthalten sein, die dann am Ende ein Ergebnis liefern, mit dem Sie im Skript weiterarbeiten.

z.B.Ein Array durchsuchen und einen Wert herausgeben. 

z.B.: Eine Konvertierung von etwas durchführen und das richtige Format ausgeben 

usw.

Beispiel:

# Funktion erstellen 

function testfunktion([int]$zahl) { 

$ergebnis=$zahl*2  

Write-Host “Das ist Ihre Zahl = $zahl” 

Write-Host “Das ist Ihre Zahl * 2 = $ergebnis” 

return $ergebnis # Hiermit können Sie einen Wert ausgeben. 

} 

# Funktion aufrufen 

testfunktion(2) 

# Sie können die Ausgabe auch in einer Variable speichern. 

$returnwert=testfunktion(2) 

In diesem Beispiel haben Sie gesehen wie Sie ein Wert einer Funktion mitgeben, diesen Wert *2 multiplizieren und dann im Skript Ausgeben oder in eine andere Variable speichern.

Nun haben Sie die Grundtechnik zu Funktionen in PowerShell kennengelernt.

Ich möchte Ihnen noch ein paar Best Practices mitgeben, die Sie bei der Erstellung von Funktionen beachten sollten

Best Practice für das Erstellen einer Funktion

Sie können ziemlich schnell Funktionen in PowerShell erstellen und damit arbeiten. Trotzdem sollten Sie ein paar Sachen beachten, um sich das Erstellen von PowerShell Skripten nicht zu kompliziert zu machen.

  1. Erstellen Sie nur Funktionen, wenn diese wirklich notwendig sind und Sie die Anweisung mehrmals im Skript nutzen möchten.
  2. Geben Sie Funktionen klare Namen, so dass Sie später oder jemand anderes schnell verstehen kann, was die Funktion macht. z.B. nicht function a_function() sondern besser function logschreiben().
  3. In langen Skripten erstellen Sie Funktionen nahe Ihrer Ausführung.
  4. Beschreiben Sie Ihre Funktionen mit Kommentaren, wofür diese da sind.
  5. Schreiben Sie Ihre Funktionen so, dass auch andere diese verstehen und nutzen können.

Anbei ist ein schöner Artikel von Dr. Scripto zum Thema Top 10 PowerShell Best Practices. 

https://devblogs.microsoft.com/scripting/the-top-ten-powershell-best-practices-for-it-pros/

Fazit

Sie haben in diesem Blogpost gelernt wie Sie mit Funktionen in PowerShell umgehen.

Sie wissen nun wie Sie Parameter in Funktionen verwenden und auch Return Werte zurückbekommen.

Durch einfache Beispiele können Sie nun nachvollziehen, wie Sie in Ihren Skripten Funktionen erstellen.

Wir wünsche Ihnen viel Erfolg beim Skripten.

IHR LINETWORK TEAM

P.S: Ich erstelle gerade passend zu diesem Thema ein Onlinekurs, mit vielen Einsteiger Tipps und Beispielen. Schau mal hier, wenn du noch tiefer und detaillierter PowerShell lernen möchtest. KLICK