PowerShell Ausgabe unterdrücken

Manchmal geben PowerShell Befehle eine Rückmeldung aus, obwohl uns das gar nicht interessiert. Es gibt verschiedene Szenarien, wie ihr die Ausgaben unterdrücken könnt. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Ich verwende hier zum Beispiel das Cmdlet New-NetFirewallRule mit dem ich eine neue Regel in der Windows Firewall hinzufügen kann: 1 New-NetFirewallRule -DisplayName "Ausgehende Verbindungen zu Port 443 blockieren" -Direction Outbound -RemotePort 443 -Protocol TCP -Action Block Wenn ich das ausführe, dann kriege ich als Rückgabe ein Objekt, welches die Firewall Regel repräsentiert....

2024-04-09 · 4 Minuten · Andreas Dieckmann

PowerShell Dot Sourcing

Mit PowerShell Dot Sourcing könnt ihr eine Skriptdatei in eure PowerShell Session importieren. Das Skript wird erstmal normal ausgeführt, aber gesetzte Variablen, erstellte Funktionen und so weiter sind dann in der Session verfügbar. Bei einem normalen Skript-Aufruf ist das sonst nicht der Fall. Mich erinnert das immer an den PHP-Befehl include, weil ich in meiner Jugend mit PHP rumgedaddelt habe 😅 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt....

2024-03-26 · 2 Minuten · Andreas Dieckmann

Regular Expressions in PowerShell

Regular Expressions sind Muster mit denen Texte verglichen werden können oder auch Infos aus Texten extrahiert werden können. Zum Beispiel könnt ihr damit überprüfen, ob eine Logdatei von einem Programm die Zeichenfolge “Error” enthält (also um zu prüfen, ob ein Fehler aufgetreten ist). Oder um einfach nur zu schauen, ob eine Zeichenkette einem bestimmten Muster entspricht, zum Beispiel einer E-Mail Adresse. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt....

2024-03-19 · 18 Minuten · Andreas Dieckmann

Die Ausführungsdauer von PowerShell Code messen

Wenn ihr euren PowerShell Code auf Geschwindigkeit optimieren wollt, dann macht es Sinn Zeiten zu messen. Es gibt mehrere Möglichkeiten um zu messen, wie lange die Ausführung von einem Stück PowerShell Code dauert. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Möglichkeit 1: Measure-Command Eine einfache Möglichkeit ist das Cmdlet Measure-Command. Es nimmt einen ScriptBlock entgegen, der dann auch ausgeführt wird. Und wir erhalten im Anschluss ein Messergebnis in Form eines TimeSpan Objekts....

2024-03-12 · 4 Minuten · Andreas Dieckmann

PowerShell Profile erklärt (mit Beispielen)

Mit PowerShell Profilen könnt ihr eure PowerShell anpassen. Also zum Beispiel, dass sie so aussieht: Oder ihr könnt einstellen, dass beim Start so ein Splash-Screen angezeigt (winfetch) wird: Oder ihr könnt auch eigene Funktionen und Variablen hinterlegen, sodass diese immer sofort verfügbar sind, wenn ihr die PowerShell startet. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Letztendlich ist ein PowerShell Profil einfach ein PowerShell Skript, was automatisch ausgeführt wird, wenn ihr die PowerShell startet....

2024-03-05 · 9 Minuten · Andreas Dieckmann

PowerShell: Zugriff auf Umgebungsvariablen

Per PowerShell auf Umgebungsvariablen zugreifen - das geht ganz einfach. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Umgebungsvariable per $Env:-Variable auslesen Die einfachste Möglichkeit ist per $Env:-Variable. Gebt dafür einfach $Env ein, dann einen Doppelpunkt und dann den Namen der Umgebungsvariable von der ihr den Wert auslesen wollt. 1 $Env:username Dadurch wird der Username des aktuell angemeldeten Users ausgegeben. Das funktioniert übrigens plattformübergreifend, also auch zum Beispiel unter Linux....

2024-02-28 · 3 Minuten · Andreas Dieckmann

PowerShell: Überprüfen ob Admin-Rechte vorhanden sind

Wenn ihr ein PowerShell Skript erstellt habt, was Aktionen ausführen soll, die Adminrechte erfordern, dann könnt ihr das auch per Code überprüfen. Damit könnt ihr sicherstellen, dass euer Skript erfolgreich ausgeführt werden kann. Am einfachsten geht das mit einer Requires-Anweisung. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Admin-Rechte per Requires Anweisung erfordern 1 #Requires -RunAsAdministrator Diese Zeile kann an eine beliebigen Stelle im PowerShell Code eingefügt werden....

2024-02-20 · 4 Minuten · Andreas Dieckmann

PowerShell: Übersetzte Security Identifier Namen herausfinden

Security Identifiers sind dazu da, um bestimmte Security Prinzipale oder Gruppen unter Windows zu identifizieren. Leider sind die dazugehörigen Namen lokalisiert, also sind zum Beispiel in einem deutschsprachigen System anders als in einem englischsprachigen System. Beispielsweise heißt die eingebaute Administratorgruppe auf Englisch BUILTIN\ADMINISTRATORS und auf Deutsch VORDEFINIERT\Administratoren. Oder das Englische NT AUTHORITY\SYSTEM wird an einem Deutschen System zu NT-AUTORITÄT\SYSTEM. Das finde ich richtig abgefahren! Da wird auf einmal ein Leerzeichen durch ein Bindestrich ersetzt....

2024-01-17 · 2 Minuten · Andreas Dieckmann

Die unterschiedlichen Klammern in der PowerShell

Wann ist welche Klammer die Richtige in der PowerShell? # Verschiedene Klammern in der PowerShell () {} [] Die Klammern haben unterschiedliche Einsatzzwecke. Die Größer-als < und Kleiner-als > Zeichen würde ich übrigens nicht zu den Klammern zählen. Für alle echten Klammern gilt: Wenn ihr eine Klammer geöffnet habt, müsst ihr sie auch wieder schließen. Runde Klammern ( ) Mit runden Klammern wird in der PowerShell ein Ausdruck bzw. ein Befehl umfasst, bzw....

2023-11-28 · 9 Minuten · Andreas Dieckmann

PowerShell ConstrainedLanguage Mode per Gruppenrichtlinie einstellen

PowerShell Language Modes sind eine Möglichkeit die Funktionalität der PowerShell einzuschränken, um die Sicherheit eines Systems zu erhöhen. Das ist natürlich nur ein kleiner Baustein in einer größeren Sicherheitsstrategie, also das alleine ist noch kein ausreichender Schutz für ein System. Gleichzeitig ist das auch ein zweischneidiges Schwert: Vorteil: Wir entziehen potenziellen Angreifern ein mächtiges Werkzeug. Nachteil: Wir selbst als Administratoren können die PowerShell an einem System auch nicht mehr richtig nutzen....

2023-05-20 · 6 Minuten · Andreas Dieckmann