Home PowerShell Archive for category "Grundlagen"
formats

Import-CSV WorkShop

In den PowerShell Foren kommt sehr häufig die Frage nach dem richtigen Umgang mit CSV Dateien in der PowerShell.
Hierbei übersehen viele die Tatsache: PowerShell erzeugt und verarbeitet Objekte keinen Text!

CSV und XML sind strukturierter Text. Dieser strukturierte Text wird beim einlesen von PowerShell in Objekte umgewandelt.

Ich erkläre hier in einem kleinen Workshop wie man mit PowerShell CSV Importiert und verarbeitet.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments 
formats

PowerShell Try Catch Finally

PowerShell ist darauf spezialisiert unbeaufsichtigt im Hintergrund viele Aufgaben nacheinander abzuarbeiten (Automation eben).
Wenn man z.B. auf 40 Computern etwas ausführen will und ein Script aufhört zu arbeiten, wenn der 5. Computer nicht erreichbar ist, dann wird der Fehler dadurch behandelt. Dies ist aber ärgerlich da die restlichen 35 Computer in der Liste nicht mehr abgearbeitet werden.
Deshalb ist PowerShell so gebaut worden, das es sehr robust läuft.
Das bedeutet PowerShell ist so eingestellt, das bei Fehlern (Error) die Arbeit nicht abgebrochen wird, sondern es wird mit dem den nächsten Objekt / Aufgabe weitergearbeitet (Englisch: continue).

Ich möchte hier anhand eines kurzen Code Abschnittes demonstrieren wie man mit Try{}Catch{}Finally{} auf einen Fehler richtig reagiert.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments 
formats

PowerShell ForEach und ForEach-Object

Die Windows PowerShell hat wie alles seine Ecken und Kanten. Eine Kante über die viele PowerShell Neulinge stolpern ist die Tatsache:

Es gibt in der PowerShell 2 Verschieden ForEach!

Es gibt in der PowerShell Einmal das ForEach-Object { … } Cmdlet
Und es gibt in der PowerShell die ForEach() { … } Schleife.
Gemeinerweise hat das ForEach-Object { … } Cmdlet einen Alias der ForEach heisst!

Da kommt man schnell durcheinander!

Ich möchte hier erklären wann und warum man welches ForEach einsetzt.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments 
formats

Mehrere Arten mit der PowerShell ein externes Programm zu starten

Dies ist einen überarbeitete, erweiterte Version des Artikels: PowerShell 9 Arten ein Externes Programm (executable) zu starten PowerShell kann neben den eigenen Cmdlets auch PowerShell Externe Programme und DOS Befehle ausführen. Das Ausführen von Programmen und die Übergabe von vielen Argumenten beim Aufruf des Programmes sind nicht so einfach zu lösen. Ebenso verlangt die Übergabe von Argumenten, die Leerzeichen, doppelte – und/oder einfache Anführungszeichen enthalten, sehr viel Übung. Wenn dann noch in den Argumenten $Variablen expandiert werden sollen, ist das Endergebnis oft unklar! Ich erkläre hier mehrere Arten mit der PowerShell ein Programm zu starten und in dem Punkt 5

(mehr)…

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments 
formats

Unterscheidung von PowerShell und dem PowerShell Host

Die PowerShell ist zum Automatisieren von Aufgaben konzipiert. Wenn PowerShell automatisch Skripte abarbeitet, werden zu diesem Zweck grundsätzlich keine Bildschirm Ein- und Ausgaben benötigt!
Ebenso muss beim PowerShell Remoting die Anzeige der Ein- und Ausgaben ganz anders geleitet werden.

Deshalb ist die PowerShell Modular aufgebaut und mach sie sehr flexibel einsetzbar.

Die PowerShell ist der Motor!
Der Host ist die Karosserie!

Was das bedeutet erkläre ich in diesem Artikel: …..

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments 
formats

PowerShell eigene Objekte erstellen Custom Objects

Eine Goldene Regel in PowerShell ist es: Das eine Funktion oder ein Cmdlet immer ein Objekt zurückgeben sollte!
Wenn man kein fertiges Objekt hat und Daten aus verschiedenen Quellen zusammen sammelt, dann muss man sich ein eigenes Objekt zusammen bauen!
PowerShell ist eine Dynamische Sprache und hat das so genannte Extended Type System (ETS).
Durch das Extended Type System kann man Objekte um zusätzliche Eigenschaften und Methoden erweitern auch wenn diese Objekte schon vorhanden sind (Instanziiert).
Man kann Objekte in der PowerShell auf sehr viele Arten erstellen und Modifizieren.

Ich stelle hier mehrere Möglichkeiten vor, ein so genanntes PSCustom Objekt zu erstellen und es mit NoteProperties zu versehen.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Kommentare deaktiviert  comments