Category Archives: Programmierung

Script: Dynamisch Parameter zu einem Befehl hinzufügen [PowerShell]

Hallo,

um dynamisch Parameter zu einem PowerShell-Befehl hinzuzufügen, kann man mit Splatting arbeiten.
Das heißt, alle Parameter die an einen Befehl übergeben werden sollen, werden in einem Splat (Hashtable) gespeichert und der Befehl dann im Anschluss mit dem Parameter-Splat aufgerufen.
Als Beispiel nehmen wir nun den Befehl:

Nun wollen wir den Pfad angeben und welchen Dateitypen wir suchen wollen. Der „normale“ Befehl dafür würde so aussehen:

Wir suchen alle Text-Dateien im Verzeichnis C:\Windows\Logs.

In einem Splat würde dies nun wie folgt aussehen:

Und der Befehl würde so aufgerufen werden:

Nun kommen wir aber zum Vorteil von Splat, wir können dynamisch weitere Parameter mit Werten hinzufügen.
Beispielsweise gibt der User erst beim Aufrufen einer Funktion an, dass er es toll finden würde, wenn Dateien ausgeschlossen werden würden, die mit A anfangen.
Das heißt in einer Beispiel-Funktion, dass ein Parameter abgefragt wird und nur wenn dieser einen Wert enthält der Parameter ergänzt wird:

Wenn die Funktion SuperSearchTXTFile nun ohne -ExcludeLetter ‚A‘ aufgerufen werden würde, so würden wieder alle .txt-Dateien (auch die mit A) gefunden werden.

Ich hoffe ich konnte euch das Splatting im allgemeinen und das dynamisch anpassen eben jener etwas verständlicher machen.

In dem Sinne: Frohes dynamisch sein.

 

 

Script: Löschen von Leerzeilen aus einer Text-Datei [PowerShell]

Hallo,

hier ein kurzes PowerShell-Snippet zum Löschen von Leerzeilen einer Text-Datei:

Wir lesen den Inhalt der Datei Test.txt via dem Alias von Get-Content (gc) ein und behalten nur den Inhalt der keine Leerzeile ist mittels -match ‚\S‘. Anschließend wird der geänderte Inhalt in der Datei überschrieben.
Man kann selbstverständlich auch eine andere Ausgabe-Datei wählen.

Weitere Regex-Parameter kann man unter Regex-Cheat-Sheet einsehen.

In dem Sinne: Frohes komprimieren.

Script: Hash-Wert einer Datei ermitteln [PowerShell]

Hallo,

hier wieder ein kleiner sporadischer Beitrag meiner Serie zur PowerShell: Wie kann man den Hash-Wert einer Datei via PowerShell ermitteln.

Doch warum braucht man das überhaupt? In erster Linie um vertrauen zu schaffen, dass eine Datei beispielsweise wirklich von der Quelle in der Form stammt, wie sie dort abgelegt wurde.

Denn wenn sich der Code einer Datei ändert, so ändert sich auch der generierende Hash-Wert. Sage ich dir, die Datei die ich erstellt habe hat den Hash-Wert X und du lädst die Datei herunter und erhälst den Wert Y, dann weißt du diese Datei ist nicht die, die ich erstellt habe.
Daran kann man Beispielsweise einen Manipulationsversuch erkennen oder dass die Daten nicht vollständig übertragen wurden. Doch genug der Theorie, nun geht es an die cmdlets.

Default wird der Hash mit dem SHA256-Algorithmus gebildet:

Ergebnis:
gf-ps-cmdlet

Mittels des Parameter -Algorithm kann man zusätzlich einen der folgenden Algorithmen auswählen:

MACTripleDES
MD5
RIPEMD160
SHA1
SHA256
SHA384
SHA512

In dem Sinne: Viel Erfolg beim Hashen und keine Macht den Drogen.

Script: Alle Datei-Attribute anzeigen lassen [Powershell]

Hallo,

da ich gerade lerne die Powershell zu verstehen und versuche sie produktiv zu nutzen. Da dachte ich mir ich zeige in sporadischen Blogbeiträgen meine Verständnis-Lücken auf.
Zusätzlich möchte ich ab und an Snippets oder ganze Scripte hier vorstellen.

Es ist nützlich sich in der Powershell bestimmte Objekt-Attribute anzeigen zulassen. Beispielsweise das Erstellungsdatum einer Datei.
Dies macht man mit dem Befehl:

Wichtig ist hierbei der select-Befehl hinter der Pipeline.

Dies war nun recht simpel, doch was ist wenn wir ein Objekt-Attribut suchen aber den richtigen Namen nicht kennen? Ja klar, man kann diverse Suchmaschinen anwerfen, aber die Powershell bietet auch dafür eine Lösung!
Nämlich wenn man das Wildcard (*) selected, werden einem alle verfügbaren Objekt-Attribute angezeigt:

Die Ausgabe sieht dann folgendermaßen aus:

Somit wissen wir nun, welche Attribute wir alles abfragen und ansprechen können.

 

Ich hoffe ich konnte dem ein oder anderen von euch helfen.

In dem Sinne: frohes kraftmuscheln.

1 2 3 4 5 9