Moin.

Andreas Dieckmann hier. Ich bin selbstständiger IT-Consultant und seit Jahren in der Branche tätig. Ich veröffentliche hier Blog-Posts zu IT-Themen, um anderen zu helfen.

PowerShell Write-Host VS. Write-Output

In PowerShell könnt ihr ja Text mit dem Cmdlet Write-Host ausgeben. Aber es wird teilweise davon abgeraten das zu verwenden. Es gibt zum Beispiel die Alternative Write-Output. In diesem Post erkläre ich euch die Unterschiede. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Write-Host Write-Host gibt Daten auf dem PowerShell Host aus, dem Programm, welches die aktuelle PowerShell Sitzung hostet. Oft ist das der ConsoleHost, aber z.B. die PowerShell ISE oder Visual Studio Code verwenden eigene Hosts, die sich in manchen Aspekten voneinander unterscheiden....

2024-07-05 · 4 Minuten · Andreas Dieckmann

Per PowerShell .zip-Archive erstellen und entpacken

Windows kann eigentlich schon ziemlich lange mit ZIP-Archiven umgehen. Und auch die PowerShell kann das, also sowohl ZIP-Dateien erstellen, als auch sie entpacken. Das kann nützlich sein, wenn ihr z.B. mit einem PowerShell Skript mehrere Dateien zu einer ZIP-Datei zusammenfassen wollt - das erleichtert das wegkopieren. Oder vielleicht um eine per Skript aus dem Internet geladene ZIP-Datei zu extrahieren. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt....

2024-06-08 · 3 Minuten · Andreas Dieckmann

PowerShell Befehle auf mehrere Zeilen aufteilen

PowerShell Befehle mit vielen Parametern können die Lesbarkeit vom Code verschlechtern. Zum Beispiel habe ich im nachfolgenden Codeabschnitt in Zeile 5 das Cmdlet New-ADUser verwendet und dabei 7 Parameter angegeben. Das ist sehr schwer auf einer Zeile zu lesen, selbst wenn ihr einen Ultra-Wide Monitor verwendet. 1 2 3 4 5 6 $CSVFile = Import-Csv .\NeueUser.csv foreach($User in $CSVFile) { $Manager = Get-ADUser -Filter "mail -eq '$($User.Manager)'" New-ADUser -Name "$($User.Vorname) $($User....

2024-05-15 · 6 Minuten · Andreas Dieckmann

NULL in PowerShell

Wenn ihr in PowerShell prüfen wollt, ob ein Wert nicht gesetzt ist, dann könnt ihr einen Vergleich mit $null machen. Diese automatische Variable bedeutet immer null, nichts, kein Wert. Das ist aber etwas anderes, als wenn ihr einfach Anführungszeichen "" nehmt und dann nichts reinschreibt. Zum Beispiel ergibt das hier immer FALSE: 1 2 3 4 5 $null -eq "" # = false $null -eq '' # = false # Hat übrigens nichts mit der Zahl 0 zu tun // also das ergibt auch False $null -eq 0 # = false 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt....

2024-04-29 · 7 Minuten · Andreas Dieckmann

PowerShell Skripte remote entwickeln

Es ist möglich PowerShell Skripte remote zu entwickeln. Also das Skript wird auf einem remote Computer gespeichert und ausgeführt, aber die Eingabe erfolgt im lokalen Editor-Tool. Das geht sowohl mit der klassischen Windows PowerShell ISE, als auch mit Visual Studio Code. In VSCode könnt ihr sowohl mit remote Windows PowerShell, als auch remote PowerShell 7 Systemen arbeiten. 🎬 Ich habe übrigens auch ein Video zu dem Thema erstellt. Windows PowerShell ISE Die Windows PowerShell ISE unterstützt nur remote Windows Systeme mit Windows PowerShell....

2024-04-23 · 3 Minuten · Andreas Dieckmann

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