Ein besserer Powershell Prompt
Der Prompt von Powershell kann deutlich besser aussehen. Hier ist ein Beispiel. Nach jeder Ausführung wird der Inhalt von $dash_line, ein Zeitstempel, der Pfad, bei Netzwerklaufwerken, der dazugehörige UNC-Pfad und die Anzahl der Elemente im aktuellen Verzeichnis angezeigt. Zusätzlich wird der Titel des Fensters so abgeändert, dass er den verwendeten Benutzer anzeigt und in PS/ISE und mit/ohne Elevation unterscheidet.
Einfach die folgenden Zeilen ins Powershell-Profil kopieren.
$global:dash_line = "──────────────────────────────────────────────────────────────────" function global:Prompt { $unc = (gwmi Win32_LogicalDisk -filter "DeviceID = '$((Get-Location).Drive.Name):'").ProviderName If ($Host.Name -like "*ISE*") { $windowtitle_host = "ISE" } else { $windowtitle_host = "PS" } $currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent()) if ($currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { $window_elevation = "#" } else { $window_elevation = "$" } write-host $dash_line # brackets write-host "[" -nonewline -foregroundcolor white # Print the current time: write-host (Get-Date -format u) -nonewline -foregroundcolor green # brackets write-host ("] - [") -nonewline -foregroundcolor white # Print the working directory: write-host $PWD -nonewline -foregroundcolor Red write-host "|" -nonewline -foregroundcolor white write-host $unc -NoNewline -ForegroundColor Red write-host "|" -nonewline -foregroundcolor white # Print the number of objects inside the current directory: write-host (Get-Childitem $PWD -Force).Length -nonewline -foregroundcolor Red write-host "]" -foregroundcolor white # Print the prompt symbol: write-host (" $window_elevation") -nonewline -foregroundcolor white # Check for Principal and Set Window Title $Host.UI.RawUI.WindowTitle = $windowtitle_host + " " + $window_elevation + " - " + $env:USERNAME + "@" + $env:COMPUTERNAME + " - " + $PWD return " "; }