- PowerShell permite instalar fuentes tanto para el sistema como para un usuario específico.
- Se pueden usar scripts con AddFontResource y el Registro para una instalación persistente.
- Hay alternativas modernas como instalar fuentes desde fuentes Nerd para personalizar la terminal.
- Es posible automatizar procesos masivos de instalación sin necesidad de ser administrador.
¿Alguna vez te has encontrado con decenas de tipografías que necesitas instalar en tu sistema Windows y no quieres hacerlo una a una? ¿O te gustaría automatizar el proceso para implementarlo en varias máquinas desde un script o despliegue? PowerShell, la poderosa consola de administración de Windows, puede ayudarte a hacer justo eso, tanto si eres administrador como si no.
En este artículo te enseñamos cómo instalar fuentes usando PowerShell, abarcando desde el nivel más básico —como copiar archivos a la carpeta Fonts— hasta cómo editar el Registro de Windows para registrar la fuente como instalada. También exploraremos cómo automatizar esta tarea en masa, qué hacer si no tienes privilegios de administrador, y cómo se puede personalizar PowerShell con herramientas como Oh My Posh y fuentes Nerd.
¿Qué necesitas saber antes de instalar fuentes desde PowerShell?
Windows gestiona las fuentes instaladas mediante dos mecanismos principales: el sistema de archivos, a través de la carpeta %windir%\Fonts, y el Registro de Windows, donde se mantiene un índice que permite al sistema detectar y cargar las fuentes.
Para que una fuente esté correctamente reconocida por el sistema, no basta con copiarla a la carpeta Fonts; también es necesario registrarla en el Registro. Existen funciones dedicadas a esta tarea como AddFontResource
y AddFontResourceEx
.
Instalación temporal de fuentes con PowerShell
Si solo necesitas que una fuente esté disponible durante la sesión actual, puedes cargarla temporalmente utilizando AddFontResource
. Es importante tener en cuenta que se eliminará al reiniciar el sistema:
public static extern int AddFontResource(string lpszFilename);
$fuente = "C:\ruta\a\tu\fuente.ttf"
AddFontResource $fuente
Este método solo es válido mientras la sesión esté activa. Si deseas que la fuente permanezca instalada tras reiniciar el sistema, necesitas realizar una instalación persistente.
Instalación permanente de fuentes usando PowerShell
Para una instalación persistente, es necesario copiar la fuente a la carpeta específica del sistema (%windir%\Fonts) y luego registrar su nombre en el Registro.
$fuente = "C:\ruta\a\tu\fuente.ttf"
$nombreFuente = "NombreFuente (TrueType)"
$destino = "$env:windir\Fonts\$(Split-Path $fuente -Leaf)"
Copy-Item $fuente -Destination $destino
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $nombreFuente -PropertyType String -Value $(Split-Path $fuente -Leaf) -Force
::WriteInt32(::Zero, 0)
::WriteInt32(::Zero, 0)
Después de registrar la fuente, conviene enviar un mensaje de cambio al sistema para que las aplicaciones reconozcan la nueva tipografía sin reiniciar:
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
$WM_FONTCHANGE = 0x001D
$HWND_BROADCAST = 0xffff
SendMessage $HWND_BROADCAST $WM_FONTCHANGE ::Zero ::Zero
Automatizar la instalación masiva de fuentes desde una carpeta
Cuando se tienen muchas fuentes que instalar, hacerlo una a una es inviable. Una alternativa es usar scripts que detecten y procesen automáticamente cada archivo desde una carpeta y sus subcarpetas, como por ejemplo los scripts .bat.
Un enfoque clásico y aún válido en PowerShell es usar un script que recorra todos los archivos .ttf y .otf, los copie y registre:
Get-ChildItem "C:\Fuentes" -Recurse -Include *.ttf, *.otf | ForEach-Object {
$archivo = $_.FullName
$nombre = $_.BaseName + " (TrueType)"
$destino = "$env:windir\Fonts\$($_.Name)"
Copy-Item $archivo -Destination $destino
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts" -Name $nombre -PropertyType String -Value $_.Name -Force
}
Para que todo esto funcione, PowerShell debe ejecutarse con privilegios de administrador. En caso contrario, fallará al acceder al registro del sistema o a la carpeta Fonts.
Instalación de fuentes sin privilegios de administrador
En entornos donde no se tienen permisos de administrador, aún es posible instalar fuentes localmente para el usuario actual. Microsoft permite esto desde Windows 10 mediante la opción “Instalar solo para mí”.
Además, se puede usar la variable de entorno $env:LOCALAPPDATA
para copiar fuentes a la subcarpeta de Fonts del usuario. Aunque no estarán disponibles para todas las aplicaciones, sí funcionarán en la mayoría de las modernas.
Algunas herramientas como regfont.exe permiten registrar fuentes desde línea de comandos incluso sin permisos elevados: más info sobre gestionar complementos en Office.
Este enfoque facilita la instalación en entornos bloqueados o con políticas restrictivas, como escuelas o empresas.
Personalización de PowerShell con Oh My Posh y fuentes Nerd
Una tendencia creciente es personalizar la consola de PowerShell con estilos visuales más llamativos y funcionales. La herramienta Oh My Posh permite aplicar temas al prompt y necesita fuentes especiales: las Nerd Fonts.
Estas tipografías incluyen iconos y glifos útiles que hacen el prompt más informativo. Para ello, es necesario instalar fuentes como MesloLGM Nerd Font, ya sea para todos los usuarios o solo para el actual.
Instalar una Nerd Font desde PowerShell
Si tienes WinGet
configurado, puedes instalar directamente una fuente: guía para instalar Kodi en Smart TV
winget install --id=Ryanoasis.NerdFonts.Meslo --scope=user
Después, debes configurar tu terminal o Visual Studio Code para que la nueva fuente se utilice como predeterminada. Para ello:
- Abre la configuración de Windows Terminal (Ctrl + ,)
- Edita el archivo
settings.json
- Agrega la propiedad
"font.face": "MesloLGM Nerd Font"
dentro del perfil deseado
Editar el perfil de PowerShell para aplicar temas
PowerShell permite configurar un perfil que se ejecuta cada vez que abres la consola. Para aplicar un tema de Oh My Posh debes editar el archivo indicado por la variable $PROFILE
y añadir una instrucción como esta:
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\zash.omp.json" | Invoke-Expression
Esto aplicará automáticamente tu tema preferido cada vez que inicies PowerShell.
Solucionar errores de visualización de caracteres en PowerShell
En algunos sistemas donde se usan idiomas como chino, japonés o coreano, la consola de PowerShell puede tener problemas para mostrar caracteres correctamente. Este problema suele estar relacionado con la fuente predeterminada.
Una solución consiste en cambiar manualmente la fuente usada por PowerShell a una compatible, como MS Gothic, lo cual puedes hacer desde las propiedades de la ventana de PowerShell.
Ampliar el entorno de PowerShell con módulos útiles
Además de instalar fuentes, puedes mejorar aún más tu experiencia de consola con herramientas adicionales: para mejorar la experiencia en PowerShell.
- PSReadLine: mejora la edición de línea de comandos con colores y autocompletado.
- Winfetch: muestra información del sistema de forma visual.
- Bat: alternativa a cat, con resaltado de sintaxis.
- Eza: reemplazo moderno para ls, con soporte para git y metadatos.
Cada uno de estos módulos puede instalarse fácilmente desde PowerShell y configurarse en tu perfil para mejorar tu flujo de trabajo diario.
Instalar fuentes a través de PowerShell no solo es posible, sino también práctico. Desde cargar fuentes temporalmente, pasar por una instalación permanente, hasta personalizar tu consola con herramientas visuales, los escenarios que cubre esta técnica son muy amplios. Además, con opciones para automatizar procesos en masa o realizarlo sin permisos de administrador, se convierte en una solución ágil tanto para usuarios domésticos como entornos empresariales.
Redactor apasionado del mundo de los bytes y la tecnología en general. Me encanta compartir mis conocimientos a través de la escritura, y eso es lo que haré en este blog, mostrarte todo lo más interesante sobre gadgets, software, hardware, tendencias tecnológicas, y más. Mi objetivo es ayudarte a navegar por el mundo digital de forma sencilla y entretenida.