Personalizar PowerShell

Hace poco escribí cómo personalizar la línea de mandatos de Windows CMD. Lo cierto es que CMD ya tiene un reemplazo, PowerShell (para el que escribí hace unos días un script para bajar canciones de GoEar).

Si queréis personalizar PowerShell, la forma más cómoda es crear un profile. Debe estar en <mis documentos>\WindowsPowerShell\ y debe llamarse profile.ps1

Lo primero es la función prompt. Podéis hacer cualquier cosa que se os ocurra… es una función normal :) En mi caso lo primero que hago es detectar si tiene privilegios de administrador o no. En casi de que así sea escribo una advertencia en rojo y guardo una variable $sir ¿por qué?

Porque luego lo que escribo es el usuario @ computadora, así que si tiene privilegios le añado “Sir” delante del usuario :D Luego simplemente la hora y el directorio actual.

Después de la función he reescrito los colores y el título de la ventana. El “clear” es para forzar el refresco de la pantalla y que se apliquen los colores de fondo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function prompt
{
	Write-Host ""
	if ((new-object Security.Principal.WindowsPrincipal ([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator))
	{
		Write-Host ELEVATED PRIVILEGES - BE CAREFUL!! -foregroundcolor Red
		$sir = "Sir "
	}
	Write-Host $sir$env:username@$env:computername -foregroundcolor Green
	$date = Get-Date
	Write-Host ("[$date] " +  $(get-location) +">") -nonewline -foregroundcolor Green
	return " "
}
 
$host.ui.rawui.WindowTitle = $env:username
$a = (Get-Host).UI.RawUI
$a.BackgroundColor = "Black"
$a.ForegroundColor = "Green"
clear

 

powershell Esto es sólo un ejemplo, podéis tunearla tanto como queráis ;)

About the Author

Me llamo Pablo Carballude González, soy graduado en computación con master en HCI y Seguridad Informática. Actualmente trabajo para Amazon en Seattle como Software Developer Engineer. Soy de esas personas que no saben si los textos autobiográficos deben ser en primera o tercera persona. Lo intenté en segunda, pero no le entendí nada :P