Set-PSReadLineOption -EditMode Vi #region keybindings Set-PSReadlineKeyHandler -Key Tab -Function Complete Set-PSReadlineKeyHandler -Key Ctrl+d -Function ViExit #endregion keybindings function prompt { #depending on elevated permissions change the delimiter $identity = [Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent() if($identity.IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { $delimiter = '#' } else { $delimiter = '$' } #shorten path with tilde if possible #uses .Replace() to prevent regex $cwd = (Get-Location).Path.Replace($HOME,'~') '[{0}@{1} {2}]{3} ' -f $env:USERNAME.ToLower(),$env:COMPUTERNAME.ToLower(),$cwd,$delimiter } function Get-BetterADUser { param ( [Parameter(Mandatory=$true, Position=0)] [string] $SearchTerm, [string] $Server = $env:USERDNSDOMAIN ) $filter = 'UserPrincipalName -like "*{0}*" -or Name -like "*{0}*"' -f $SearchTerm Get-ADUser -Filter $filter -Server $Server } #check for old version if($PSVersionTable.PSVersion.Major -le 5){ Write-Host -ForegroundColor Red 'start pwsh instead of powershell' }