PowerShell-Tuning
Glücklicherweise muss ich nicht allzu oft unter Windows arbeiten. Aber hin und wieder — aktuell für die Überarbeitung meines Scripting-Buchs — lässt es sich nicht vermeiden. Wenn schon Windows, dann wenigstens so komfortabel wie möglich! Und so habe ich in den vergangenen Wochen mein Terminal/PowerShell-Setup optimiert:
- Nerdfont installiert
- informativen Prompt eingerichtet (Oh My Posh)
- bessere Tastaturunterstützung im Terminal (Emacs-Tastenkürzel)
- Editor für den Textmodus installiert (je nach Geschmack: Edit, nano, Emacs, NeoVim)
- sudo aktiviert
Dieser Artikel liefert dazu ein paar Details. Der Text beweist gleichzeitig, dass man selbst unter Windows mit relativ wenig Mühe ein produktives Setup einrichten kann. Das erforderliche Fundament liefert Microsoft direkt aus: das Windows Terminal mit vielen High-end-Funktionen inklusive GPU-Rendering, die PowerShell sowie das Paketverwaltungskommando winget.

Nerdfonts
Moderne CLI-Tools stellen im Terminal alle erdenklichen Zeichen und Symbole dar, um auf Dateitypen, den Git-Status oder Fehlerursachen hinzuweisen. In »gewöhnlichen« Fonts fehlen diese Zeichen; im Terminal wird dann ein Rechteck, ein Fragezeichen oder ein anderes Ersatzzeichen angezeigt. Das lässt den Charme moderner Kommandos und Prompt-Frameworks ins Leere laufen. Abhilfe schafft die Installation eines Fonts, der einen Coding-Zeichensatz um Tausende Symbole und Sonderzeichen ergänzt.
Auf der Seite https://nerdfonts.com stehen ca. 100 geeignete Fonts zum freien Download zur Auswahl. Aber welcher Font ist der beste? Wenn Sie sich nicht entscheiden können, ist der beliebte JetBrainsMono Nerd Font eine gute Wahl für erste Experimente. Er basiert auf dem freien Mono-Font der Firma JetBrains (IntelliJ, PyCharm etc.). Dieser Font hat noch einen Vorteil: Er lässt sich im Handumdrehen mit winget installieren. Sie sollten die Installation in einem Terminal mit Admin-Rechten durchführen, damit die Fonts auch dann zur Verfügung stehen, wenn Sie in einem Admin-Terminal arbeiten.
# in einem Admin-Terminal
winget install -e --id DEVCOM.JetBrainsMonoNerdFont
Oh My Posh
Die Fish oder die Zsh mit der Erweiterung »Oh My Zsh« zeigen im Prompt alle erdenklichen Kontextinformationen an: den Hostnamen, den Verzeichnisnamen, den Git-Zweig und -Status etc. Genau das kann auch Oh My Posh, eine Plattform- und Shell-unabhängiges Prompt-Framework. Die Installation gelingt unter Windows am schnellsten mit winget:
winget install JanDeDobbeleer.OhMyPosh -s winget
Damit Oh My Posh in interaktiven PowerShell-Sessions aktiviert wird, bauen Sie die folgenden Anweisungen in die Profile-Datei ein (notepad $Profile, wobei Sie notepad durch Ihren Lieblingseditor ersetzen):
# Datei Documents/PowerShell/Microsoft.PowerShell_profile.ps1
# Oh My Posh nur in interaktiven PowerShell-Sessions verwenden
if (-not [Console]::IsInputRedirected -and
(Get-Module -Name PSReadLine -ErrorAction SilentlyContinue))
{
oh-my-posh init pwsh | Invoke-Expression
}
Wenn Sie jetzt ein neues PowerShell-Tab öffnen, wird Oh My Posh erstmals aktiv. Sie werden von einem informativen und mehrfarbigen Default-Prompt begrüßt. Unter https://ohmyposh.dev/docs/themes stehen über 100 weitere Prompt-Themen zur Wahl. Zur Aktivierung bauen Sie den Themennamen in das oh-my-posh-Init-Kommando in der Profile-Datei ein, z.B. so:
# Datei Documents/PowerShell/Microsoft.PowerShell_profile.ps1
oh-my-posh init pwsh --config "easy-term" | Invoke-Expression
Um die neue Konfiguration zu aktivieren, lesen Sie die Profile-Datei neu ein:
. $PROFILE
Starship Eine Alternative zu Oh My Posh ist das Framework Starship. Es wurde in Rust entwickelt und ist schneller/effizienter als Oh My Posh. Dafür gibt es aber weniger vordefinierte Themen; generell ist die Konfiguration sperriger. Ich habe beide Frameworks ausprobiert, bin dann aber bei Oh My Posh geblieben.
Tastenkürzel in der PowerShell
In der PowerShell unterstützt Sie das Modul PSReadLine bei der Kommandoeingabe (siehe auch die Dokumentation zu Set-PSReadLineOption). Standardmäßig schlägt PSReadLine das letzte Kommando mit den selben Anfangsbuchstaben zur Vervollständigung durch Cursor rechts vor. Tab bewirkt, dass begonnenen Dateinamen oder Schlüsselwörter komplettiert werden.
Das Verhalten von PSReadLine kann durch Optionen in der Profile-Datei beeinflusst werden. Diese Datei öffnen Sie am bequemsten mit notepad $Profile, wobei Sie notepad durch Ihren Lieblingseditor ersetzen. Damit die Änderungen wirksam werden, laden Sie die Datei mit . $Profile neu.
Das folgende Listing schlägt einige Änderungen/Verbesserungen vor. Gleich das erste Kommando bewirkt den größten Unterschied: Nach der Eingabe der ersten Buchstaben haben Sie die Wahl zwischen mehreren ähnlichen zuletzt ausgeführten Kommandos, die Sie mit den Cursortasten aus einer Liste wählen. Mit F2 können Sie zwischen der Listenansicht und dem Defaultverhalten (InlineView) umschalten.

Falls Sie bei InlineView bleiben wollen, sollten Sie zumindest die beiden HistorySearch-Kommandos in Erwägung ziehen. Normalerweise blättern Cursor auf und Cursor ab durch alle bisherigen Kommandos. Mit den hier vorgeschlagenen Einstellungen können Sie dagegen git eingeben und dann durch die bisherigen git-Kommandos blättern.
Emacs- und Vi-Fans werden begeistert sein, dass die PowerShell per EditMode die vertrauten Tastenkürzel akzeptiert. Die if-Abfrage im folgenden Listing stellt sicher, dass die Einstellungen nur in interaktiven Sessions gelten, aber z.B. nicht, wenn die PowerShell ein einzelnes Kommando via SSH ausführt.
# Ergänzungen in der Profile-Datei
if (-not [Console]::IsInputRedirected -and
(Get-Module -Name PSReadLine -ErrorAction SilentlyContinue))
{
# zeigt Vervollständigungsliste an, Auswahl per Cursortasten
Set-PSReadLineOption -PredictionViewStyle ListView
# Cursor auf/ab berücksichtigen die bisherige Eingabe
Set-PSReadLineKeyHandler -Key UpArrow `
-Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow `
-Function HistorySearchForward
# Emacs- oder Vi-Tastenkürzel (per Default: Windows-Tastenkürzel)
Set-PSReadLineOption -EditMode Emacs
Set-PSReadLineOption -EditMode Vi
# besser sichtbare Farbe für Inline-Vervollständigung
Set-PSReadLineOption -Colors @{ InlinePrediction = '#884488' }
# keine Duplikate in der Kommando-History speichern
Set-PSReadLineOption -HistoryNoDuplicates
}
Terminal-Editoren
An GUI-Editoren herrscht unter Windows kein Mangel — die Palette reicht von notepad.exe über Notepad++ bis hin zu VS Code und anderen KI-tauglichen Programmen/IDEs. Aber oft wollen Sie einfach nur ein paar Zeilen Text ändern, eine Konfigurationsdatei vervollständigen etc. — und zwar, ohne das Terminal zu verlassen. (Das gilt insbesondere, wenn Sie via SSH remote arbeiten!) Dazu brauchen Sie einen Editor, der im Terminal ausgeführt werden kann.
edit: Durchaus nicht die schlechteste Wahl ist edit. Mitte 2025 hat Microsoft diesen Mini-Editor vorgestellt — als GitHub-Projekt in der Programmiersprache Rust! Damit liegt Microsoft voll im Zeitgeist. Zur Installation führen Sie winget install microsoft.edit aus. In der Folge lädt edit <file> die gewünschte Datei.
Bemerkenswert an edit ist die intuitive, einfache Bedienung. Text wird mit den Cursortasten markiert, mit Strg+C und Strg+V kopiert und wieder eingefügt etc. Die Cursorposition kann mit der Maus verändert werden, auch das lokalisierte Menü lässt sich per Maus bedienen und gibt IT-Veteranen ein wenig Turbo-Pascal-Vibes. Fortgeschrittene Funktionen fehlen allerdings: kein Syntaxhighlighting, keine Code-Vervollständigung, keine Einstellungen …

nano: In der Linux-Welt ist nano das Gegenstück zu edit. Der Editor hat zwar nur relativ wenige Funktionen, ist dafür aber einfach zu bedienen. Praktischerweise zeigt das Programm alle erforderlichen Tastenkürzel gleich in der Statusleiste an. Die Installation gelingt unkompliziert mit winget install -e --id GNU.Nano.
vi/NeoVim: Die einen lieben ihn, andere hassen ihn — das Editor-Urgestein vi. Vi-Fans verwenden unter Windows am besten die Variante NeoVim (siehe https://neovim.io). NeoVim ist aber nur die Basis: Damit das Programm sein ganzes Potential ausschöpfen kann, brauchen Sie diverse Erweiterungen (Git, LSP, Fuzzy Finding usw.) und Konfigurationseinstellungen. Das Setup gelingt am schnellsten mit Frameworks wie LazyVim oder AstroNvim.
Emacs: Mich hat der Vi nie überzeugen können, ich bin im Emacs-Lager. Unter Windows ist das allerdings ein Abenteuer. Von abgespeckten Emacs-Klonen wie mg, zile oder jmacs gibt es keine Windows-Ports, die im Terminal funktionieren. Also muss es die Vollversion sein: winget install -e --id GNU.Emacs. winget kümmert sich leider nicht darum, das Emacs-Installationsverzeichnis zum Path hinzuzufügen. Sie müssen sich selbst um diesen Schritt kümmern. Die ausführbare Datei befindet sich üblicherweise in C:\Program Files\Emacs\emacs-<n.n>\bin.
Beim Start des Editors müssen Sie an die Option -nw denken (no window), sonst erscheint der Emacs in einem eigenen Fenster statt im Terminal. Noch eine Besonderheit betrifft die Konfigurationsdatei ~/.emacs. Die Windows-Version des Emacs liest diese Datei normalerweise (abhängig von der HOME-Umgebungsvariablen) nicht aus C:\Users\name\.emacs, sondern aus C:\Users\name\AppData\Roaming\.emacs. Wenn Emacs Unicode-Zeichen fehlerhaft anzeigt, bauen Sie die folgenden Anweisungen in .emacs ein:
# Datei C:\Users\<name>\AppData\Roaming\.emacs
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-language-environment "UTF-8")
sudo
Um unter Windows ein Kommando mit Administratorrechten auszuführen, müssen Sie zuerst umständlich ein Terminal mit Admin-Rechten öffnen. Unter Linux und macOS klappt das mit sudo viel unkomplizierter.
Ab Version 11 / 24H2 gibt es sudo auch unter Windows. Microsoft hat das Kommando komplett neu implementiert und nur den Namen übernommen. Die Funktionsweise und Optionen sind anders als unter Linux oder macOS. Insbesondere gibt es keine (Passwort-)Authentifizierung; stattdessen erscheint vor sudo-Aktivitäten nur der UAC-Bestätigungsdialog (User Account Control).
sudo muss zuerst aktiviert werden. Sie finden die Option in den Einstellungen unter System / Erweitert / Terminal.

Es gibt drei Arten, wie sudo-Kommandos ausgeführt werden können: in einem neuen Fenster (gilt per Default, forceNewWindow), mit deaktivierter Eingabe (disableInput, die Standardeingabe wird blockiert) oder inline (normal, also wie unter Linux mit der Möglichkeit, direkt im Terminal mit dem ausgeführten Kommando zu interagieren). Statt in den Einstellungen können Sie sudo auch in einem Terminal mit Admin-Rechten aktivieren:
sudo config --enable forceNewWindow|disableInput|normal
Sobald sudo zur Verfügung steht, können Sie das Kommando wie in den folgenden Beispielen anwenden. (Das erste Kommando setzt voraus, dass das Programm edit installiert ist.)
sudo edit C:\Windows\System32\drivers\etc\hosts
sudo notepad C:\Windows\System32\drivers\etc\hosts
sudo winget upgrade --all
sudo pwsh -c "Restart-Service -Name Spooler"
Beachten Sie, dass sudo Restart-Service -Name Spooler nicht funktioniert! sudo kann nur »echte« Kommandos (Executables) ausführen, keine CmdLets. Für CmdLets müssen Sie den Umweg über eine neue PowerShell-Instanz nehmen.
Der Windows-Implementierung von sudo fehlt auch die Option -s, um eine neue Shell zu starten. Stattdessen führt sudo pwsh zum Ziel.
Sicherheitsbedenken: Microsoft warnt davor, sudo ohne unmittelbare Notwendigkeit zu aktivieren. Die Warnung bezieht sich insbesondere auf die Inline-Variante. In der sudo-Implementierung von Linux wurden über den Verlauf von Jahrzehnten immer neue Sicherheitsprobleme gefunden und behoben. Vor diesem Hintergrund rate ich dazu, die Warnungen Microsofts ernst zu nehmen. sudo ist eine vergleichsweise neue, bislang eher selten genutzte Funktion.
gsudo: Eine Alternative sudo ist das schon länger verfügbare Kommando gsudo. Dieses Open-Source-Projekt bietet mehr Features als die Microsoft-Implementierung.
Quellen/Links
- https://nerdfonts.com
- https://ohmyposh.dev
- https://starship.rs
- https://github.com/MicrosoftDocs/PowerShell-Docs/blob/main/reference/5.1/PSReadLine/Set-PSReadLineOption.md
Editoren
- https://github.com/microsoft/edit
- https://neovim.io
- https://www.lazyvim.org
- https://astronvim.com
- https://www.gnu.org/software/emacs
sudo
Mozilla hat Firefox 150 veröffentlicht und liefert ein Update, das vor allem Linux Nutzer freuen dürfte. Die neue Version integriert erstmals den GTK Emoji Picker, sodass sich Emojis nun direkt über die systemweite Tastenkombination einfügen lassen. Damit verhält sich Firefox auf Linux Desktops deutlich natürlicher. Auch der eingebaute PDF‑Viewer bekommt ein spürbares Upgrade. Nutzer können […]
Mozilla hat Thunderbird 150 veröffentlicht und liefert damit ein Update, das den beliebten Mail‑Client spürbar erweitert. Die neue Version richtet sich an Nutzer, die mehr Komfort und bessere Kontrolle über verschlüsselte Kommunikation wünschen. Eine der wichtigsten Neuerungen ist die Möglichkeit Inhalte verschlüsselter Nachrichten direkt zu durchsuchen. Das funktioniert sowohl mit OpenPGP als auch mit S/MIME […]
Oracle hat VirtualBox 7.2.8 veröffentlicht und damit das vierte Wartungsupdate der aktuellen Serie bereitgestellt. Die neue Version erweitert die Unterstützung für moderne Linux Systeme und behebt mehrere Probleme, die Nutzer zuletzt beschäftigt haben. Neu ist die erste Unterstützung für Linux Kernel 6.19 und 7.0 auf Hostsystemen. Dazu kommen Verbesserungen für RHEL 10.1 und 10.2 sowie […]
Microsoft hat den Account des VeraCrypt-Hauptentwicklers Mounir Idrassi einfach so gesperrt. Nach Aussage von Idrassi gab es weder eine Begründung, noch eine Vorwarnung. Der Entwickler steht nun völlig machtlos da. Er kann den Account nicht wiederherstellen. Es scheint kein menschlicher Ansprechpartner für ihn erreichbar zu sein. Nur automatische Bot-Antworten gab es fürihn. Der Prozess lässt […]
LibreOffice 26.2.2 steht nun bereit und liefert eine breite Palette an Verbesserungen. Die neue Version richtet sich vor allem an Nutzer, die häufig mit Microsoft Office Formaten arbeiten. Viele Probleme mit DOCX, XLSX und PPTX Dateien wurden behoben. Inhalte laden zuverlässiger und fehlerhafte Elemente treten seltener auf. Auch die Stabilität profitiert deutlich. Einige Nutzer meldeten […]
Rund um Proton entsteht gerade viel Unruhe und viele Stimmen werfen dem Anbieter vor, Nutzerdaten an das FBI weitergereicht zu haben. Die Diskussion wirkt hitzig und oft unvollständig, daher lohnt sich ein genauer Blick auf die Fakten. Proton weist die Vorwürfe zurück und erklärt in einem Transparenzbericht, keine Daten an ausländische Behörden oder Dienste zu […]
Signal macht es Windows Nutzern jetzt deutlich einfacher. Die Messenger App steht erstmals direkt im Microsoft Store bereit. Der bisher nötige Download über die Webseite entfällt damit komplett. Viele Anwender dürften den bequemeren Zugang begrüßen. Die Store Version bleibt eine klassische Win32 Anwendung. Signal setzt weiterhin auf native Funktionen des Systems. Das unterscheidet die App […]
Microsoft reagiert auf die wachsende Kritik an Windows 11 und plant eine klare Neuausrichtung. Nutzer sollen künftig besser verstehen, welche Anwendungen auf Daten oder Hardware zugreifen. Kern der neuen Strategie ist ein Zustimmungsmodell, das an Smartphones erinnert. Apps und KI Funktionen müssen künftig explizit um Erlaubnis fragen, bevor sie sensible Bereiche nutzen. Diese Transparenz soll […]
VirtualBox legt mit Version 7.2.6 ein Update vor, das viele Schwachstellen beseitigt und den Alltag mit virtuellen Maschinen spürbar ruhiger macht. Die Entwickler konzentrieren sich klar auf Zuverlässigkeit und räumen zahlreiche Fehler aus, die Hosts und Gäste gleichermaßen betreffen. Der Virtual Machine Manager arbeitet nun stabiler und reagiert besser auf ungewöhnliche Startsituationen. Frühere Abstürze beim […]
Der freie Windows Nachbau ReactOS erreicht einen besonderen Meileinstein seiner Geschichte. Das Projekt blickt auf dreißig Jahre Entwicklung zurück und bleibt sowas wie ein Geheimtipp neben den großen Namen der Open Source Welt. Dabei verfolgt es ein Ziel das bis heute einzigartig wirkt. Das System möchte die Windows NT Architektur frei nachbauen. Anwendungen und Treiber […]
Der Schweizer Messenger Threema steht vor einem großen Schritt. Comitis Capital übernimmt Threema und löst damit die bisherigen Eigentümer ab. Die Übernahme soll noch im Januar 2026 abgeschlossen werden und sorgt bereits jetzt für reichlich Gesprächsstoff. Comitis Capital sieht in Threema eine starke Marke mit guten Chancen. Themen wie sichere Kommunikation und europäische Datensouveränität spielen […]