Blog

Hier blogge ich über Themen, die mich - und vielleicht auch andere - interessieren (könnten)

Windows Terminal und Tabs mit erhöhten Rechten

Die meisten Leser dieses Blogs werden wahrscheinlich technisch orientierte User sein, die als Consultants, Administratoren, System Engineers oder Entwickler häufig „auf der Kommandozeile“ unterwegs sind. Die Verwendung der Eingabeaufforderung (cmd.exe) oder von Windows PowerShell gehört zu unserem Alltag und jeder kennt die Schwächen der Tools, die seit Jahrzehnten quasi identisch funktionieren und Verbesserungen und Weiterentwicklungen in maximal homöopathischen Dosen erfahren haben.

Mit der Neuentwicklung „Windows Terminal“, die auf GitHub als Open Source Software entwickelt wird, hat Microsoft einen neuen Anlauf gewagt, für die Windows-Welt ein zeitgemäßes Kommandozeilen-Interface zur Verfügung zu stellen.

Die Unterstützung für verschiedene Kommandozeilen-Systeme, die Möglichkeit mehrere Registerkarten zu öffnen oder eigene Farbschemata, Tastenkombinationen und Hintergründe zu definieren, gehören defintiv zu den Highlights des neuen Tools. Weitere Infos finden sich auf etlichen Sites im Netz oder in der offiziellen Windows Terminal-Dokumentation von Microsoft (https://docs.microsoft.com/de-de/windows/terminal/).

Sie können sich die aktuelle Release-Version von Windows Terminal jederzeit über den Microsoft Store installieren – suchen Sie einfach nach „Windows Terminal“ und installieren Sie das Paket. Sollte der Store in Ihrer Organisation nicht verfügbar sein oder möchten Sie auf Preview-Versionen zugreifen, so können Sie diese auch auf der Release-Seite unter https://github.com/microsoft/terminal/releases/latest herunterladen. Die App ist dort im Quellcode oder – vermutlich für die meisten User deutlich praktischer – als direkt installationsfertiges MSIX-Bundle verfügbar.

Nach der Installation ist PowerShell 7 die Standard-Umgebung, die sich beim Start von Windows Terminal öffnet, dies aber nicht im gewohnten „PowerShell-Blau“ sondern in schlichtem Schwarz. Wie oben schon angesprochen, lässt sich Windows Terminal aber umfassend anpassen und damit die Standard-Befehlszeilenumgebung, das Farbschema und vieles Weitere festlegen. Weitere Details finden Sie unter https://docs.microsoft.com/de-de/windows/terminal/customize-settings/profile-settings.

Eine – zumindest zum Zeitpunkt der Erstellung dieses Artikels noch bestehende – Schwäche des Tools ist es allerdings, dass es out-of-the-box nicht möglich ist, einzelne Tabs mit erhöhten Rechten zu öffnen. Entweder man startet Windows Terminal immer als Administrator oder, falls man das nicht tut, dürfen die ausgeführten Kommandos keine erweiterten Berechtigungen benötigen. Da man als „Tekki“ aber doch des Öfteren Befehle ausführen muss, die erhöhte Rechte benötigen, möchte ich in diesem Artikel einen Weg beschreiben, wie die vermisste Funktionalität nachgerüstet werden kann:

Für die Umsetzung der Anforderung wird ein Tool benötigt, das es ermöglicht Befehle mit erhöhten Rechten auszuführen, wie dies aus der *nix-Welt bekannte sudo tut. Auf Github ist eine Windows-Implementierung von sudo namens gsudo verfügbar, die für die Umsetzung optimal ist. Sie finden den Download der aktuellen Version unter https://github.com/gerardog/gsudo/releases/latest.

Im heruntergeladenen ZIP-Archiv befindet sich ausschließlich das Executable gsudo.exe, das Sie in ein beliebiges Verzeichnis entpacken können. Es empfiehlt sich, ein Verzeichnis zu wählen, das sich in der PATH-Umgebungsvariablen befindet, um gsudo ohne Angabe des vollständiges Verzeichnispfads aufrufen zu können, beispielsweise das Windows-Verzeichnis.

Anschließend öffnen Sie Windows Terminal und wählen „Einstellungen“ aus dem Dropdown-Menü, worauf sich die Konfigurations-Datei settings.json im Standard-Editor (in der Regel Notepad) öffnet.

Im Abschnitt "profiles": können Sie nun weitere Einträge für das Dropdown-Menü definieren. In diesem Beispiel sollen jeweils ein Profil für eine administrative Windows PowerShell und für eine administrative Eingabeaufforderung definiert werden. Legen Sie dazu unter "list": zwei neue Abschnitte mit dem folgenden Inhalt an:

{
    // Elevated Windows Powershell using gsudo
    "guid": "{913461c8-0dc9-4553-a644-9844e885dfcc}",
    "name": "Windows PowerShell (Admin)",
    "commandline": "gsudo.exe powershell.exe",
    "hidden": false,
    "icon": "ms-appx:///ProfileIcons/{61c54bbd-c2c6-5271-96e7-009a87ff44bf}.png",
    "colorScheme": "Campbell Powershell"
}, 

 beziehungsweise

{
    // Elevated Cmd using gsudo
    "guid": "{5eb0d434-0545-4d7d-bb4c-4fee126ee279}",
    "name": "Eingabeaufforderung (Admin)",
    "commandline": "gsudo.exe cmd.exe",
    "icon": "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
    "hidden": false
},
 

Im Eintrag für Windows PowerShell wird auf das Farbschema Campbell PowerShell verwiesen, das standardmäßig auch nicht definiert ist. Wenn Sie unter Windows Terminal nicht auf Ihr gewohntes PowerShell-Farbschema verzichten müssen, dann müssen Sie dies im Abschnitt "schemes": noch wie folgt definieren:

{
    "name": "Campbell Powershell",
    "foreground": "#CCCCCC",
    "background": "#012456",
    "cursorColor": "#FFFFFF",
    "black": "#0C0C0C",
    "red": "#C50F1F",
    "green": "#13A10E",
    "yellow": "#C19C00",
    "blue": "#0037DA",
    "purple": "#881798",
    "cyan": "#3A96DD",
    "white": "#CCCCCC",
    "brightBlack": "#767676",
    "brightRed": "#E74856",
    "brightGreen": "#16C60C",
    "brightYellow": "#F9F1A5",
    "brightBlue": "#3B78FF",
    "brightPurple": "#B4009E",
    "brightCyan": "#61D6D6",
    "brightWhite": "#F2F2F2"
}
 

Nachdem Sie Ihre Änderungen gespeichert haben, stehen Ihnen die neuen Menüpunkte sogar ohne Neustart des Windows Terminals zur Verfügung und Sie können zukünftig einzelne Tabs mit erhöhten Rechten starten.

Sneak Peek auf neue PPB Features: Paketexport ins ...
SmartShutdown und der Hiberboot

Ähnliche Beiträge

 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Gäste
Sonntag, 28. November 2021

Sicherheitscode (Captcha)