Hablando de WINDOWS y comparando con linux y Mac.
1. USB de Microsoft
El “USB de Microsoft” para formatear Windows. Ningún portátil Windows (HP, Asus, Lenovo, Dell, Surface, Framework…) viene con un USB físico de Microsoft incluido de fábrica.
Eso es algo que tú creas gratis en 10 minutos:
- Ve a microsoft.com/es-es/software-download/windows11
- Descargas la herramienta “Crear medio de instalación” → metes cualquier pendrive de 8 GB o más → creas el USB de recuperación/boot.
Todos los portátiles premium 2026 tienen también partición de recuperación integrada (pulsas F11 o Shift+Reinicio al encender).
Así que no es un problema: eliges cualquier modelo y creas el USB tú mismo (y lo guardas en casa). Funciona en todos los que te recomiendo abajo.
2. SSH en Windows (tú que usas servidores Linux)
Windows 11 trae OpenSSH Client y Server integrado desde hace años (desde Windows 10 1809).
No viene activado por defecto, pero se activa en 30 segundos:
Ajustes → Aplicaciones → Características opcionales → Buscas “OpenSSH Client” → Instalar.
Listo. Puedes conectar a tus servidores DigitalOcean con ssh user@ip exactamente igual que en Mac/Linux.
¡No necesitas instalar nada extra!3. Problemas reales que te vas a encontrar al pasar de Linux/Mac a WindowsComo usuario Linux/Mac heavy, estos son los más comunes (y cómo solucionarlos rápido):
| Problema típico | Frecuencia en 2026 | Solución fácil |
|---|---|---|
| Bloatware (apps preinstaladas) | Casi siempre | Desinstalas en 5 min o usas “PC Decrapifier” |
| Actualizaciones forzadas y reinicios | Moderado | Programa las actualizaciones para la noche |
| Telemetría y privacidad | Baja pero existe | Activa “Windows 11 Pro” + herramientas como ShutUp10++ |
| Bash/zsh vs PowerShell | El más molesto al principio | Instala WSL2 (Ubuntu) gratis y tienes bash/zsh nativo dentro de Windows |
| Drivers y compatibilidad | Muy raro en premium | Windows 11 es excelente con Asus/HP/Framework |
| Batería y calor en procesadores potentes | Medio | Los chips 2026 (AMD Ryzen AI y Snapdragon) son muy eficientes |
En resumen: con WSL2 te sentirás casi como en Linux. La mayoría de devs que vienen de Mac/Linux lo usan así.4. Recomendaciones reales 2026 (las que mejor cumplen TUS requisitos)Buscamos: 13-14″, máx núcleos, máx RAM, disco pequeño (256-512 GB), peso <1.5 kg, portátil de verdad.
| Modelo | Tamaño / Peso | Procesador (núcleos) | RAM máxima | Disco | Precio aprox. | Por qué te encaja |
|---|---|---|---|---|---|---|
| Framework Laptop 13 (AMD Ryzen AI 300) ★ MI RECOMENDACIÓN #1 | 13.5″ / <1.3 kg | AMD Ryzen AI 300 (hasta 12 núcleos) | 96 GB(upgradable tú mismo) | M.2 SSD upgradable (elige 256 GB barato) | 1100-1600 € (DIY) | Perfecto para ti: upgradable como en Linux, eliges disco pequeño, RAM brutal, SSH/WSL nativo, reparable, corre Windows 11 de serie. Ideal para programador curioso. |
| ASUS ProArt PX13 (GoPro Edition / HN7306) ★ SI QUIERES MÁXIMO RENDIMIENTO | 13.3″ OLED táctil / 1.39 kg | AMD Ryzen AI Max+ 395 (16 núcleos / 32 hilos) | 128 GBLPDDR5X | 1-2 TB (puedes pedir config baja o cambiar) | 2800-3300 € | El rey absoluto en tamaño pequeño: 16 núcleos + 128 GB RAM en solo 1.39 kg. Bestial para Python, simulaciones física/mates, cripto, DeFi. Convertible 2-en-1. |
| HP OmniBook Ultra / 5 14 (alternativa equilibrada) | 14″ / 1.57 kg | AMD Ryzen AI 9 HX 375 (12 núcleos) | 32 GB | 512 GB-1 TB (elige pequeño) | 1300-1800 € | Batería brutal (24 h), muy ligero, buen teclado, excelente para uso diario. |
Mi consejo según tu prioridad:
- Quieres máxima RAM y upgradabilidad + precio razonable → Framework Laptop 13 AMD. Es el que más se parece a tu mentalidad Linux (montas tú el disco y RAM).
- Quieres el procesador más bestia posible en portátil pequeño → ASUS ProArt PX13 (16 núcleos + 128 GB RAM en 13.3″). Es una bestia para programación, física, matemáticas y cripto.
- Quieres algo más “plug & play” y batería infinita → HP OmniBook.
Todos permiten elegir configuración con disco pequeño (256-512 GB) y vienen con Windows 11 Pro/Home + recuperación fácil.¿Qué hago ahora?
- Ve a frame.work (Framework) y configura el DIY con 256 GB SSD + 32 GB RAM (luego subes a 64/96 GB cuando quieras).
- O mira asus.com el ProArt PX13 (elige la versión con 64 GB o 128 GB si puedes).
- Si quieres algo más barato, dime presupuesto exacto y te doy links directos.
Recomendaciones actualizadas para portátil pequeño (13-14″) con MÁX RAM + MÁX almacenamientoEn esta categoría, los límites son altos gracias a chips AMD Ryzen AI 300 series y Strix Halo (2025-2026):
| Modelo | Tamaño / Peso aprox. | Procesador (núcleos) | RAM máxima | Almacenamiento máximo | Precio aprox. (config top) | Por qué te encaja |
|---|---|---|---|---|---|---|
| ASUS ProArt PX13 (HN7306 / GoPro Edition) ★ MEJOR OPCIÓN PARA MÁXIMO TODO | 13.3″ OLED táctil convertible / ~1.4 kg | AMD Ryzen AI Max+ 395 (16 núcleos / 32 hilos) | Hasta 128 GBLPDDR5X | Hasta 2 TB (o más si cambias el SSD M.2) | 2800-3500 € | El rey en pequeño: 128 GB RAM + procesador brutal + almacenamiento alto en solo 13.3″. Ideal para Python pesado, simulaciones física/mates, multi-wallets, VMs en WSL2. Pantalla OLED espectacular para leer papers o código. |
| Framework Laptop 13 (AMD Ryzen AI 300 Series)★ SI QUIERES UPGRADABLE | 13.5″ / ~1.3 kg | AMD Ryzen AI 9 HX 370 o similar (12 núcleos) | Hasta 96 GBDDR5 (tú lo subes cuando quieras) | Hasta 8 TB (SSD M.2 estándar, fácil cambiar) | 1500-2500 € (config top) | Upgradable al máximo: compras base con 32 GB RAM + 1 TB, luego añades más RAM y SSDs de 4-8 TB baratos. Perfecto para tu mentalidad Linux (reparable, modular). |
| HP OmniBook Ultra 14 (o similares 2026) | 14″ / ~1.5 kg | AMD Ryzen AI 9 HX 375 (12 núcleos) | Hasta 64 GB (algunos configs) | Hasta 2 TB | 1800-2500 € | Buena batería (20+ h), ligero, pero RAM máxima algo más baja que ASUS/Framework. |
Mi consejo top para ti: Ve por el ASUS ProArt PX13 en config con 64-128 GB RAM + 1-2 TB SSD. Es el que más RAM y potencia mete en un chasis pequeño sin sacrificar portabilidad. Si prefieres upgradear RAM/almacenamiento tú mismo en el futuro (como en tus servidores DigitalOcean), Framework es imbatible.Todos estos traen Windows 11 preinstalado (Home o Pro), y el almacenamiento es SSD NVMe rápido (no disco duro mecánico, que ya no se usa en portátiles premium).El USB de Microsoft para formatear/recuperar: 100% GRATIS y lo creas túSí, es totalmente gratis y Microsoft lo pone a disposición de cualquiera (nada de pagar por Windows si ya lo tienes licenciado en el portátil).Pasos exactos (lo haces en 10-15 min con cualquier pendrive viejo de 8 GB+):
- En tu Mac o Linux actual (o en otro PC), abre el navegador y ve a:
https://www.microsoft.com/es-es/software-download/windows11 - Haz clic en «Descargar ahora» bajo «Crear medio de instalación de Windows 11».
- Ejecuta la herramienta (en Mac/Linux puedes usar una VM o pedirle a alguien con Windows, pero suele funcionar directo).
- Elige «Crear medio de instalación para otro PC» → selecciona idioma/español, Windows 11, y «Unidad flash USB».
- Inserta tu pendrive → la herramienta descarga Windows 11 (~5-6 GB) y lo convierte en un USB bootable/recuperación.
- Listo: ese USB sirve para:
- Formatear/instalar Windows desde cero si algo falla.
- Recuperar el sistema si se cuelga (boot desde USB pulsando F2/Esc/Del al encender, según marca).
- Reinstalar drivers o hacer reset completo.
No pagas nada porque la licencia de Windows viene pegada al hardware del portátil (OEM). Si compras uno nuevo, ya está activado automáticamente. ¡Es uno de los pocos «gratis» de Microsoft!
WSL2 + SSH: qué es y cómo se instala (muy fácil, y sí, lo traen pero hay que activarlo)Pensabas que Windows no traía nada de Linux, pero desde Windows 10/11 sí trae Linux dentro gracias a WSL2 (Windows Subsystem for Linux 2). Es básicamente un Linux real (Ubuntu por defecto) corriendo dentro de Windows, sin VM pesada.
- WSL2: Te da un entorno bash/zsh completo (como en tu Mac o servidores). Puedes instalar paquetes con apt, correr Python, Node, git, ssh, etc. Todo integrado: archivos de Windows accesibles desde /mnt/c/, y viceversa.
- SSH: Viene incluido en WSL2 (OpenSSH client). También puedes activar SSH server en Windows nativo si quieres conectar desde fuera.
Pasos para instalar (en Windows nuevo, 5-10 min):
- Abre PowerShell como administrador (busca «PowerShell» → clic derecho → Ejecutar como admin).
- Pega y ejecuta:
wsl –install
(Esto instala WSL2 + Ubuntu por defecto automáticamente. Si pide reinicio, hazlo). - Abre la app «Ubuntu» (se crea sola) → configura usuario/contraseña.
- Dentro de Ubuntu: actualiza con sudo apt update && sudo apt upgrade.
- Para SSH: ya tienes ssh instalado. Prueba: ssh tuusuario@tu-servidor-digitalocean.
- Si quieres zsh en vez de bash: sudo apt install zsh → chsh -s $(which zsh).
¡Listo! Ahora tienes bash/zsh + SSH como en Linux/Mac, pero con Windows para lo que necesites (Office, algunos softwares médicos, etc.). La mayoría de devs que vienen de Linux lo usan así y se sienten «en casa».
Puedes tener Windows 11 completo en tu MacBook (16 GB) o Mac Mini (23 GB) sin pagar nada extra y sin tocar el hardware.Pero importante aclarar:
- No es Windows nativo (no hay dual-boot fácil ni seguro en Macs con chip Apple Silicon M1/M2/M3/M4/M5).
- Es una máquina virtual (VM): Windows 11 corre “dentro” de macOS como una ventana o pantalla completa.
- Todo funciona: WSL2 (tu bash/zsh completo), SSH, programación, cripto wallets, etc.
- El rendimiento es muy bueno (sobre todo en el Mac Mini), pero no al 100% como en un PC real (pierdes un poco de velocidad en GPU y batería).
1. El USB de Microsoft que mencionas → sí lo puedes usar (pero hay una forma más fácil)El USB bootable es 100% gratis y lo creas tú (como te expliqué antes).
Pero en Mac es más fácil y limpio usar directamente el ISO oficial (un archivo que sustituye al USB).Descarga gratuita oficial de Microsoft (marzo 2026):
Ve a esta página exacta:
https://www.microsoft.com/en-us/software-download/windows11arm64Elige la versión actual (Windows 11 2025 Update / 25H2) y descarga el ISO multi-edition (es gratis, unos 5-6 GB).
Este ISO es el que Microsoft da específicamente para máquinas virtuales en Macs Apple Silicon.2. ¿Cuánta RAM y disco le asignas a la VM? (recomendaciones seguras)El Mac comparte su memoria y disco con la VM. Nunca le des todo para que macOS no se quede sin recursos.
| Tu Mac | RAM que le das a Windows 11 | Disco virtual recomendado (SSD) | Por qué |
|---|---|---|---|
| MacBook 16 GB | 8 GB (máximo seguro) | 256–512 GB (puedes empezar con 256 y ampliar después) | Dejas 6-8 GB para macOS + apps. Suficiente para WSL2, Python, coding y cripto. |
| Mac Mini 23 GB(probablemente 24 GB) | 12–16 GB | 512 GB – 1 TB (o más si tienes espacio libre) | Tienes más margen. Puedes abrir varias cosas a la vez sin que se ralentice. |
El disco virtual es “dinámico”: ocupa solo el espacio que realmente uses (si le das 512 GB pero solo usas 100 GB, ocupa solo 100 GB en tu Mac).3. Cómo hacerlo paso a paso (la forma GRATIS y más fácil en 2026)Te recomiendo dos opciones gratuitas (elige una):Opción A – UTM (100% gratis, súper sencillo, recomendado para principiantes)
- Descarga UTM gratis aquí: https://mac.getutm.app
- Abre UTM → “Create a New Virtual Machine” → elige “Windows” → selecciona el ISO que descargaste.
- En la pantalla de configuración:
- RAM: pon 8 GB (MacBook) o 12-16 GB (Mac Mini)
- CPU: 4-6 núcleos (o más si tu Mac lo permite)
- Storage: crea un disco virtual de 256-512 GB (o más)
- Marca “OpenGL” o “Metal” para mejor gráfico
- Dale a “Start” → instala Windows 11 normalmente (tarda 15-30 min).
- Al terminar, activa WSL2 y SSH exactamente como te expliqué antes (wsl –install en PowerShell).
Opción B – VMware Fusion (gratis para uso personal, un poco más pulido)
- Descarga VMware Fusion gratis aquí: https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion(elige la versión Pro, es gratuita para uso no comercial).
- Abre → Create New VM → selecciona el ISO → asigna RAM y disco igual que arriba.
- Instala y listo (tiene modo “Unity” para que Windows se integre mejor con macOS).
Ventajas de hacerlo así
- Pruebas todo antes de comprar el portátil (WSL2, SSH a tus servidores DigitalOcean, Python, etc.).
- Cuando compres el ASUS o Framework, simplemente transfieres la licencia o vuelves a instalar.
- Puedes borrar la VM en cualquier momento sin tocar tu Mac.
Pequeños avisos reales
- Windows arrancará “sin activar” (sale una marca de agua abajo). Para uso personal (coding, SSH, pruebas) no pasa nada. Cuando quieras activarlo de verdad compras una clave barata (~20-30 € en tiendas oficiales) o usas la del futuro portátil.
- El USB físico que crees también sirve: en UTM o VMware puedes seleccionar “Boot from USB” y usarlo directamente.
Sí tienes un Windows 11 real y completo en tu Mac! Es Windows 11 auténtico, de Microsoft, con todas sus funciones (instalación de programas, WSL2 para bash/zsh y SSH, Python, coding, wallets crypto, etc.). No es una versión «falsa» o limitada en lo esencial.Lo que pasa es que, al instalarlo en una máquina virtual (VM) sin introducir una clave de producto (product key) válida durante la instalación o después, Windows arranca en modo «no activado» (unactivated). Esto es normal y pasa en cualquier PC o VM cuando no se activa.¿Qué significa exactamente «sin activar» y la marca de agua?
- Aparece una marca de agua (watermark) en la esquina inferior derecha del escritorio que dice algo como:
«Activate Windows. Go to Settings to activate Windows.»
(o en español: «Activar Windows. Ve a Configuración para activar Windows»).
Esta marca está siempre visible en el escritorio (incluso en apps fullscreen a veces), pero no bloquea nada importante. - Limitaciones reales (cosas que sí te afectan un poco):
- No puedes personalizar mucho: cambiar fondo de pantalla, colores del tema, temas, iconos o la pantalla de bloqueo queda gris o bloqueado.
- Algunas notificaciones o recordatorios molestos de «activa Windows».
- En teoría, actualizaciones de Windows siguen llegando, pero en la práctica a veces se ralentizan o limitan ciertas features cosméticas.
- Lo que SÍ funciona perfectamente (lo más importante para ti):
- Todo el sistema operativo: apps, navegadores, instalación de software.
- WSL2 + SSH (tu bash/zsh para conectar a servidores DigitalOcean).
- Programación: Python, VS Code, git, etc.
- Cualquier uso para coding, pruebas, cripto, finanzas, física/mates.
- Rendimiento: en tu Mac Mini (23/24 GB) con 12-16 GB asignados, va fluido; en el MacBook (16 GB) con 8 GB asignados, también usable para tareas normales.
- Puedes usarlo indefinidamente así (meses o años) sin problemas graves. Muchos devs y testers lo hacen para probar o en VMs.
¿Por qué pasa esto?Microsoft permite instalar Windows 11 (incluyendo la versión ARM para Macs Apple Silicon) gratis desde su web oficial (el ISO que te dije), pero exige una licencia para «activarlo» oficialmente.
- En un portátil físico nuevo, la licencia viene incluida (OEM, se activa sola).
- En una VM, no hay hardware «pegado» a la licencia, así que hay que meter una clave manualmente (o comprarla barata ~20-30 € en Microsoft Store o revendedores oficiales para Windows 11 Pro).
¿Qué opciones tienes?
- Usarlo sin activar (lo que recomiendo ahora): Ignora la marca de agua. Para tus usos (pruebas, coding, SSH) no pasa nada. La marca es solo un recordatorio visual molesto, pero el Windows es 100% funcional.
- Activar más adelante:
- Compra una clave barata oficial (Windows 11 Pro ~20-40 € en microsoft.com o tiendas como Amazon/ES).
- Ve a Configuración → Sistema → Activación → «Cambiar clave de producto» e introdúcela.
- La marca desaparece al instante, y recuperas todas las personalizaciones.
- Cuando compres el portátil físico (ASUS/Framework), usa esa misma clave allí (o la del portátil nuevo).
En resumen: Sí es un Windows 11 real y usable al 99% en tu Mac vía VM (UTM o VMware Fusion). Solo le falta la «etiqueta oficial» de activado, que es opcional para lo que quieres hacer ahora. ¡No es que «no tengas Windows», es que está en modo prueba indefinida!
La diferencia entre Windows activado y no activado (o «sin licencia») es como tener un coche con matrícula oficial vs. uno sin ella: ambos funcionan para conducir, pero el sin matrícula tiene algunas restricciones molestas y recordatorios constantes.¿Qué es la «activación» o «licencia»?
- La licencia (o product key/clave de producto) es un código que Microsoft te da (o que viene incluido en un PC nuevo) para decir: «Este Windows es legal y genuino».
- La activación es el proceso donde Windows «habla» con los servidores de Microsoft y verifica esa licencia. Una vez activado, Windows dice: «Todo OK, eres usuario legítimo».
- Si no tienes licencia o no la introduces → Windows arranca en modo «no activado» (unactivated).
Esto pasa en cualquier PC o VM (como la que vas a hacer en tu Mac). No es un «Windows falso»: es el mismo Windows 11 oficial que descargas gratis de Microsoft.Diferencias reales entre activado y no activado (actualizado a 2026)
| Aspecto | Windows ACTIVADO (con licencia) | Windows NO ACTIVADO (sin licencia) | ¿Te afecta mucho a ti? (coding, SSH, pruebas) |
|---|---|---|---|
| Funcionalidad principal | Todo funciona al 100%: apps, internet, actualizaciones, WSL2, SSH, Python, programas, etc. | Lo mismo: todo funciona al 100% (no se bloquea el sistema). Puedes usar Windows indefinidamente sin que se «apague» o limite el uso básico. | No afecta: sigues programando, conectando a servidores, etc. sin problemas. |
| Marca de agua (watermark) | No hay ninguna. El escritorio limpio. | Sí: una marca permanente en la esquina inferior derecha del escritorio que dice «Activar Windows» o «Activate Windows». Es un texto translúcido que siempre está ahí (molesto visualmente). | Molesto si usas el escritorio mucho, pero no bloquea nada. |
| Personalización | Puedes cambiar fondo de pantalla, colores del tema, barra de tareas, pantalla de bloqueo, temas, etc. Todo libre. | Bloqueado: No puedes cambiar fondo de pantalla, colores, temas ni casi nada en «Personalización». Queda con el fondo gris por defecto y opciones grises/desactivadas. | Afecta un poco si quieres customizar el look (ej. poner un fondo oscuro para coding nocturno). Pero puedes usar fondos vía apps de terceros o ignorarlo. |
| Actualizaciones | Recibes todas las actualizaciones de seguridad y features normales. | Sí recibes actualizaciones de seguridad importantes (Microsoft no las bloquea), pero a veces las de «features» (nuevas funciones) llegan más lentas o limitadas. | Poco impacto: seguridad sigue llegando. |
| Otras cositas menores | Todo sincronizado con cuenta Microsoft si quieres (OneDrive, etc.). Sin recordatorios molestos. | Algunos recordatorios/notificaciones de «activa Windows». No afecta sincronización si usas cuenta local. | No afecta tu uso técnico. |
| Office o apps Microsoft | Office (Word, Excel) se activa por separado (no depende de Windows). | Lo mismo: Office necesita su propia licencia. Windows no activado no afecta Office. | No problema. |
En resumen simple:
- No activado = Windows 11 real y usable al 100% para lo que tú quieres (pruebas, coding, SSH a DigitalOcean, Python, cripto, etc.).
Lo único que «pierdes» es la capacidad de cambiar el fondo de pantalla y temas (queda feo y gris), y ves esa marca de agua siempre.
Es como conducir un coche sin matrícula: funciona perfecto, pero la policía (Microsoft) te pone un cartel recordatorio y no puedes tunearlo mucho. - Activado = Lo mismo + cero marcas, cero restricciones de personalización, y Microsoft te deja «olvidarte» del tema.
Para activarlo solo necesitas meter una clave válida (barata ~20-40 € oficial en Microsoft o Amazon cuando tengas dinero, o la del futuro portátil).
Para tu caso ahora mismo:
Usa la VM sin activar tranquilamente. La marca de agua y el fondo gris son lo único «malo», pero no te impiden hacer nada útil. Cuando compres el portátil Windows real (ASUS/Framework), ese vendrá activado automáticamente (licencia OEM incluida), y puedes transferir o comprar una clave barata para la VM si quieres quitar la marca.
Instalación Windows en Mac
Vamos a instalar Windows 11 (versión ARM, la que funciona en Macs con chip Apple Silicon como tu Mac Mini) usando VMware Fusion Pro, que sí es gratuito para uso personal en 2026 (Broadcom lo hizo free para todos desde finales de 2024, sin necesidad de clave de licencia para la versión personal/comercial básica; solo eliges «Personal Use» al instalar si te pregunta).Te explico todos los pasos detallados para tu Mac Mini (23/24 GB RAM, que es genial para esto). El proceso tarda unos 45-90 minutos en total (depende de tu conexión internet y velocidad del Mac).Requisitos previos rápidos
- Tu Mac Mini debe tener macOS Ventura o superior (idealmente Sonoma/Sequoia/Ventura 15+).
- Espacio libre en disco: al menos 50-60 GB (para el instalador + VM).
- Conexión internet estable (descargarás ~6 GB del ISO de Windows + el instalador de Fusion ~1 GB).
Paso 1: Descarga VMware Fusion Pro (gratuito)
- Abre Safari (o tu navegador) en tu Mac Mini.
- Ve directamente a la página oficial: https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion
(o busca «VMware Fusion download» si el link cambia; siempre usa el sitio oficial de VMware/Broadcom). - Haz clic en «Download Now» o «Download Fusion» (te redirige al portal de Broadcom Support).
- Si no tienes cuenta Broadcom/VMware:
- Regístrate gratis (email + contraseña, tarda 1 minuto). No necesitas tarjeta ni nada.
- En el portal (support.broadcom.com o customerconnect.vmware.com):
- Busca «VMware Fusion» o ve a «Downloads» → «Desktop Hypervisor» → elige la versión más reciente (en 2026 suele ser Fusion 13.6.x o 25H2 si usan calendario nuevo).
- Selecciona «For Personal Use» si aparece la opción (es la misma versión que comercial, pero free).
- Descarga el archivo .dmg (para Mac Apple Silicon).
- Abre el .dmg descargado → arrastra el icono de VMware Fusion a la carpeta Aplicaciones.
- Abre la app por primera vez:
- Si te pide licencia: elige «Personal Use» o «Finish» (sin meter clave, es free).
- Permite accesos si macOS pregunta (Accesibilidad, Disco, etc.).
¡Listo! Fusion instalado y gratis.Paso 2: Descarga el ISO oficial de Windows 11 ARM (gratis de Microsoft)
- En tu Mac, abre el navegador y ve a esta URL oficial de Microsoft (específica para ARM/VMs):
https://www.microsoft.com/en-us/software-download/windows11arm64 - Selecciona la versión más reciente (Windows 11 2025 Update o 25H2/26H1 si ya salió).
- Elige «Download Now» bajo «Download Windows 11 Disk Image (ISO) for Arm-based PCs».
- Marca la casilla de confirmación si pide.
- Descarga el archivo ISO (~5-6 GB). Guárdalo en Descargas o Escritorio.
Este ISO es multi-edición (Home/Pro), y es el oficial para VMs en Macs Apple Silicon.Paso 3: Crea la máquina virtual (VM) en VMware Fusion
- Abre VMware Fusion.
- Haz clic en File → New (o el botón + «Create a New Virtual Machine»).
- En la ventana que abre:
- Selecciona «Install from disc or image».
- Arrastra o elige el ISO de Windows 11 ARM que descargaste.
- Haz clic en Continue.
- VMware detectará automáticamente «Microsoft Windows 11 on ARM» (o similar).
- Si pregunta por edición: elige Windows 11 Pro (recomendado para ti, más features para devs).
- Haz clic en Continue.
- Configura las opciones de la VM (aquí asignamos recursos para tu Mac Mini de 23/24 GB):
- CPU: 6-8 núcleos (o más si quieres potencia; tu Mac lo maneja bien).
- RAM: 12-16 GB (recomendado: empieza con 12 GB para dejar margen a macOS; puedes subirlo después).
- Disco duro (Hard Disk): Crea un nuevo disco virtual → elige 512 GB o 1 TB (o más si tienes espacio; es dinámico: solo ocupa lo que uses realmente).
- Marca «Enable virtualization engine» si aparece (para mejor rendimiento).
- Opcional: activa «Shared Folders» para compartir carpetas entre Mac y Windows.
- Haz clic en Finish o Create.
- VMware creará la VM y empezará a bootear desde el ISO automáticamente.
Paso 4: Instala Windows 11 dentro de la VM
- La VM se abre en una ventana: verás el logo de Windows cargando.
- Sigue el instalador de Windows:
- Idioma: Español (o el que prefieras).
- Región: España o tu país.
- Teclado: Español.
- Haz clic en «Install now».
- Si pide clave de producto: elige «I don’t have a product key» (lo activamos después si quieres).
- Elige Windows 11 Pro (o Home si prefieres simple).
- Acepta términos → Custom: Install Windows only (advanced).
- Selecciona el disco virtual (el único que aparece) → Next.
- Windows instalará (tarda 10-30 minutos). Se reiniciará varias veces.
- Al final: configuración inicial (OOBE):
- Región, teclado.
- Conecta a WiFi (la VM comparte la conexión de tu Mac).
- Crea una cuenta local (elige «Sign in options» → «Offline account» → «Limited experience» para no usar cuenta Microsoft si no quieres).
- Configura PIN, privacidad, etc.
Paso 5: Post-instalación (muy importante para buen rendimiento)
- Una vez en el escritorio de Windows:
- Abre PowerShell como administrador (busca PowerShell → clic derecho → Run as admin).
- Instala WSL2 (tu bash/zsh): pega y ejecuta:
wsl –install
(Reinicia la VM si pide). - Abre la app Ubuntu (se crea sola) → configura usuario/contraseña → sudo apt update && sudo apt upgrade.
- SSH ya viene: prueba ssh tuusuario@tu-ip-servidor.
- Instala VMware Tools para mejor integración (resolución, mouse, carpetas compartidas):
- En Fusion: VM → Install VMware Tools (o Reinstall si ya está).
- En Windows: abre el explorador → ve a la unidad virtual (D: o E:) → ejecuta setup.exe → instala.
- Reinicia la VM.
- Para activar Windows (opcional, quita la marca de agua):
- Configuración → Sistema → Activación → «Cambiar clave de producto».
- Puedes comprar una clave Pro barata (~20-40 €) más adelante.
¡Ya lo tienes! Windows 11 corriendo dentro de tu Mac Mini, con WSL2 para sentirte en Linux, SSH a tus servidores, Python, etc. Puedes ponerlo en pantalla completa (View → Full Screen) o Unity mode si quieres apps Windows integradas.
Tu Mac Mini tiene 512 GB de almacenamiento total (SSD interno), así que hay que asignar al disco virtual de Windows 11 una cantidad que sea útil para ti, pero que no deje tu macOS sin espacio libre (macOS necesita al menos 50-100 GB libres para funcionar bien, actualizaciones, caches, etc.).¿Cuánto espacio ocupa Windows 11 ARM en una VM después de instalarlo?
- Instalación limpia (Windows 11 Pro ARM + actualizaciones básicas): ~20-30 GB iniciales.
- Con WSL2 (Ubuntu + algunos paquetes), drivers VMware Tools, VS Code, Python, Git y algo de software extra (navegadores, herramientas crypto): fácilmente 40-60 GB en uso real al principio.
- Con el tiempo (más apps, archivos, hibernación, pagefile): puede crecer a 80-150 GB o más si instalas cosas pesadas (ej. entornos de desarrollo grandes, datos de finanzas, backups de wallets).
El disco virtual en VMware Fusion es dinámico (thin provisioned): solo ocupa en tu Mac Mini el espacio que Windows realmente usa. Si le asignas 512 GB, al inicio solo ocupará ~30-40 GB en tu disco real, y crece poco a poco según lo uses.Recomendaciones para asignar disco virtual (en tu Mac Mini de 512 GB)
- Mínimo seguro: 128 GB
→ Suficiente para instalación + WSL2 + coding básico + pruebas. Deja ~350-380 GB libres en macOS (muy cómodo). - Recomendado (lo que yo te sugiero): 256 GB
→ Buen equilibrio: espacio para instalar muchas apps, guardar scripts, datos médicos/cripto, entornos Python grandes, y algo de margen para crecer.
→ Ocupación real inicial: ~40-60 GB → deja ~400 GB libres en tu Mac (más que suficiente).
→ Si después necesitas más, puedes ampliar el disco virtual fácilmente (te explico cómo más abajo). - Máximo si quieres ir a tope: 384-448 GB
→ Si planeas usar la VM para cosas pesadas (VMs anidadas en WSL2, grandes datasets, múltiples proyectos DeFi).
→ Deja 64-128 GB libres en macOS (aún OK, pero no bajes de 50 GB libres en macOS para evitar ralentizaciones).
Mi consejo para ti ahora: Asigna 256 GB al disco virtual cuando crees la VM. Es un número redondo, cómodo y escalable. Si más adelante ves que se te queda corto (puedes comprobar en Windows con «Este equipo → C: → Propiedades»), lo amplías en 5 minutos sin reinstalar nada.Cómo asignarlo exactamente en VMware Fusion (recordatorio del paso 3)Cuando estés en la pantalla de configuración de la VM (después de seleccionar el ISO):
- En «Hard Disk» o «Disco duro»:
- Elige «Create a new virtual disk» (crear nuevo).
- Tamaño: pon 256 (o 256 GB).
- Tipo: «Split virtual disk into multiple files» (recomendado, más flexible para backups).
- Marca «Pre-allocate disk space» si quieres (no es obligatorio; sin marcar es dinámico y ahorra espacio inicial).
Si ya creaste la VM con otro tamaño y quieres cambiarlo después:
- Apaga la VM.
- En Fusion: selecciona la VM → Virtual Machine → Settings → Hard Disk.
- Aumenta el tamaño (ej. de 64 GB a 256 GB).
- Guarda → arranca la VM.
- Dentro de Windows: abre «Administración de discos» (clic derecho en Inicio → Disk Management).
- Verás espacio «No asignado» al lado de C:.
- Clic derecho en C: → «Extender volumen» → sigue el asistente para añadir el espacio extra.
¡Listo! Así no pierdes nada.
¡No, Windows 11 (versión cliente, como la que instalamos en tu VM) no trae el servidor SSH (OpenSSH Server)activado por defecto, ni siquiera instalado de forma automática en la mayoría de casos! Vamos a aclararlo bien para que no haya dudas:Lo que sí trae Windows 11 de serie (sin tocar nada)
- Cliente SSH (OpenSSH Client): Sí, viene instalado y activado por defecto desde hace años (desde Windows 10 1809 y Windows 11).
Puedes abrir PowerShell o CMD y escribir directamente ssh usuario@ip para conectar a tus servidores Linux (como tus DigitalOcean).
Esto es genial para ti, porque tu uso principal es conectar desde Windows a otros servidores, no al revés. - Servidor SSH (OpenSSH Server / sshd): NO viene instalado ni activado por defecto en Windows 11 (Home o Pro, edición cliente).
Solo en Windows Server 2025 (y versiones server recientes) viene instalado por defecto (pero no activado del todo).
En Windows 11 normal (la que usas en la VM), es una característica opcional (Optional Feature) que hay que instalar manualmente.
¿Por qué no quieres WSL2 entonces?Entiendo perfectamente: ya tienes Linux (en tu Mac, servidores, etc.), y no necesitas otro Linux dentro de Windows.
No hace falta instalar WSL2 si solo quieres el servidor SSH nativo en Windows (para que otros dispositivos se conecten a tu Windows vía SSH, ej. desde tu Mac o móvil).Si tu objetivo es tener un servidor SSH en Windows (para acceder remotamente a la VM Windows desde fuera), haz esto sin WSL2:Pasos para instalar y activar OpenSSH Server en Windows 11 (sin WSL2)Una vez que tengas Windows 11 corriendo en la VM:
- Instala la característica OpenSSH Server (tarda unos minutos, necesita internet la primera vez):
- Ve a Configuración (Settings) → Sistema (System) → Características opcionales (Optional features).
(En algunas versiones 2025-2026 está en Apps → Optional features, o busca directamente «Optional Features» en el menú Inicio). - Haz clic en Ver características (View features) o Agregar una característica (Add a feature).
- Busca OpenSSH Server.
- Selecciona y haz clic en Instalar (Install).
(Si no aparece, asegúrate de que estás en Windows 11 Pro; en Home a veces no está disponible o hay que usar PowerShell).
- Abre PowerShell como administrador.
- Ejecuta:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 - Espera a que termine (puede tardar 2-5 min).
- Ve a Configuración (Settings) → Sistema (System) → Características opcionales (Optional features).
- Inicia y configura el servicio:
- En PowerShell (admin):
Start-Service sshd Set-Service -Name sshd -StartupType 'Automatic' - O abre services.msc (busca en Inicio), busca OpenSSH SSH Server, doble clic:
- Tipo de inicio: Automático.
- Haz clic en Iniciar (Start).
- En PowerShell (admin):
- Configura firewall (importante para que entre por puerto 22):
- PowerShell (admin):
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
- PowerShell (admin):
- Prueba desde tu Mac:
- En tu Mac (Terminal): ssh tuusuario@IP-de-la-VM
(La IP de la VM la ves en Windows con ipconfig en CMD/PowerShell. Usa la IP de la red «NAT» o «Bridged» en VMware si configuras bridged para acceso externo).
- En tu Mac (Terminal): ssh tuusuario@IP-de-la-VM
- Usuario y claves:
- Por defecto usa tus cuentas Windows (con contraseña).
- Para claves SSH (más seguro): copia tu clave pública (~/.ssh/id_rsa.pub de tu Mac) a C:\Users\tuusuario\.ssh\authorized_keys en Windows (crea la carpeta si no existe).
Resumen para ti
- Si solo quieres conectar desde Windows a otros servidores → No hagas nada extra: el cliente SSH ya está listo.
- Si quieres que otros se conecten a Windows (servidor SSH) → Instala OpenSSH Server como arriba (sin WSL2).
- WSL2 solo lo necesitas si quieres bash/zsh completo dentro de Windows (ej. para scripts Linux nativos sin VM). Si no lo quieres, ignóralo por completo.
¡No, no puedes conectarte directamente a tu Windows 11 (en la VM) vía SSH desde fuera de casa solo entrando primero por SSH al Mac Mini y luego «siguiendo» desde ahí, al menos no de forma automática o sencilla sin configuración extra. Te explico por qué y las opciones reales paso a paso (basado en cómo funciona VMware Fusion en Macs Apple Silicon en 2026).Por qué no funciona «por defecto» el flujo que describes
- Cuando entras por SSH al Mac Mini desde internet (ej. desde tu móvil o trabajo), estás dentro del Mac (host).
- Desde ahí, la VM Windows está «encapsulada» en VMware Fusion.
- La red por defecto de la VM es NAT («Compartir con mi Mac»):
- La VM tiene su propia IP privada (ej. 192.168.x.x).
- Solo el Mac (host) puede acceder directamente a ella.
- Desde el Mac, puedes conectar a la VM con ssh usuario@IP-de-la-VM (si tienes OpenSSH Server instalado en Windows), pero solo localmente (no desde fuera).
- Desde fuera de casa → no hay ruta directa a la IP privada de la VM (está oculta detrás del NAT del Mac).
En resumen: SSH al Mac → puedes ver/operar el Mac, pero no «salta» automáticamente a la VM sin herramientas adicionales de forwarding o tunneling.Opciones para lograr lo que quieres (acceder a Windows desde fuera vía SSH)Aquí las formas viables, de más simple a más avanzada:
- Opción recomendada y más segura: Usa SSH tunneling (port forwarding) desde tu Mac al Windows
- Instala OpenSSH Server en Windows 11 (como te expliqué antes: características opcionales o PowerShell).
- En tu Mac (host), configura un reverse tunnel o usa SSH local para forwardear el puerto.
- Pero para acceso externo: configura port forwarding en el router de casa (abre puerto 2222 externo → puerto 22 del Mac), y en el Mac haz un túnel SSH que redirija al puerto 22 de la VM.
- En el Mac (desde terminal):
ssh -L 2222:IP-de-la-VM:22 localhost (forwardea puerto 2222 del Mac al 22 de Windows). - Desde fuera: ssh -p 2222 usuario@IP-pública-de-tu-casa → te conecta al Windows.
- Cambia la red de la VM a Bridged (más directo, pero expone la VM)
- En VMware Fusion: VM → Settings → Network Adapter → elige Bridged (Autodetect) o «Bridged a tu WiFi/Ethernet».
- La VM obtiene IP propia de tu router (ej. 192.168.1.50, misma red que el Mac).
- Instala OpenSSH Server en Windows.
- Abre puerto 22 (o 2222) en el firewall de Windows y en tu router (port forward 2222 externo → IP-de-la-VM:22).
- Desde fuera: ssh -p 2222 usuario@IP-pública-de-tu-casa → directo al Windows.
Desventaja: la VM queda «visible» en tu red local (y expuesta si abres puerto). Usa firewall fuerte y claves SSH. - Usa herramientas externas (más fácil y seguro)
- Tailscale o ZeroTier (VPN mesh gratuita): Instálalas en Mac y en Windows VM → crean una red privada virtual. Accedes al Windows desde cualquier lugar con ssh usuario@IP-tailscale-de-Windows sin abrir puertos en router.
(Muy recomendado para ti: zero config, seguro, y funciona genial con VMs). - Ngrok o Cloudflare Tunnel: Exponen el puerto SSH del Windows de forma segura sin abrir router (pero gratis limitado).
- Remote.it o Serveo: Túneles SSH fáciles.
- Tailscale o ZeroTier (VPN mesh gratuita): Instálalas en Mac y en Windows VM → crean una red privada virtual. Accedes al Windows desde cualquier lugar con ssh usuario@IP-tailscale-de-Windows sin abrir puertos en router.
Resumen rápido para tu caso
- Sin WSL2: Sí, puedes tener servidor SSH nativo en Windows (instalado como característica opcional).
- Desde fuera → Mac por SSH → Windows: No directo. Necesitas forwarding/túnel (opción 1 o 2).
- Mejor camino: Empieza con NAT + SSH tunneling desde el Mac (seguro). O cambia a Bridged si no te importa exponer un poco. Instala Tailscale para simplicidad total.
Vamos a aclararlo de forma directa y precisa:
- Tú ya puedes entrar por SSH desde fuera de casa al Mac Mini (al host macOS) sin problemas. Eso funciona genial.
- Una vez dentro del Mac Mini (por SSH remoto), sí puedes acceder al PowerShell (o CMD) del Windows 11 que está corriendo en la VM de VMware Fusion, pero NO de forma automática ni «directa» como si fuera otro servidor Linux.
No hay un «salto» mágico solo porque estás en el Mac. La VM Windows es una máquina separada (aunque virtual), y para llegar a su PowerShell desde tu sesión SSH en el Mac, necesitas una conexión adicional.
Por qué no es directo (explicación simple)
- La VM Windows usa por defecto NAT («Compartir con mi Mac» en Fusion): la VM tiene su propia IP privada (ej. 192.168.x.x), invisible desde fuera del Mac.
- Desde tu sesión SSH remota en el Mac, estás «dentro» del Mac, pero la VM no expone su puerto 22 (o RDP/PowerShell remoto) automáticamente al Mac de forma que puedas ssh directamente a ella sin configuración.
- PowerShell en Windows no es un servidor SSH por defecto (aunque puedes instalar OpenSSH Server para que sí lo sea, como te dije antes).
Cómo hacerlo realidad (opciones prácticas desde tu sesión SSH en el Mac)Aquí las formas más sencillas y seguras para que, una vez conectado por SSH al Mac, puedas «entrar» al PowerShell de Windows:
- Opción más fácil y recomendada: Usa VMware Fusion desde el Mac (no SSH puro)
- Desde tu sesión SSH remota en el Mac, no puedes abrir la interfaz gráfica de Fusion directamente (porque SSH es terminal, no GUI).
- Pero si tienes acceso físico o VNC/RDP al Mac (o usas SSH con X11 forwarding si está configurado), abre Fusion y conecta a la VM:
- En la ventana de la VM → haz clic en la consola → abre PowerShell dentro de Windows.
- Si no tienes GUI: considera instalar RDP en Windows (Remote Desktop) y conectarte desde tu Mac remoto (usa Microsoft Remote Desktop app o Remmina en Linux si es desde otro sitio).
- Opción SSH real al Windows (instala OpenSSH Server en Windows)
- En Windows (dentro de la VM): Instala OpenSSH Server como te expliqué antes (Configuración > Características opcionales > OpenSSH Server, o vía PowerShell: Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0).
- Inicia el servicio: Start-Service sshd y ponlo automático.
- Desde tu sesión SSH en el Mac (local o remota):
- Encuentra la IP de la VM: En Windows ejecuta ipconfig (busca IPv4 en la interfaz Ethernet o VMware Network Adapter). Ejemplo: 192.168.105.128.
- En el terminal del Mac: ssh tuusuario@192.168.105.128 (usa la IP de la VM).
- ¡Listo! Te conectas directamente al PowerShell/CMD de Windows vía SSH (abre una sesión shell en Windows).
- Si la VM está en NAT, esto funciona solo desde el Mac host (no desde fuera directamente), pero como tú ya estás dentro del Mac por SSH remoto, ¡funciona perfecto!
- Si quieres acceso directo desde fuera sin pasar por el Mac cada vez
- Cambia la red de la VM a Bridged (en Fusion: VM > Settings > Network Adapter > Bridged).
- La VM obtiene IP propia del router (ej. 192.168.1.50).
- Abre puerto 22 en el firewall de Windows.
- En tu router: port forward 2222 externo → IP-de-la-VM:22.
- Desde fuera: ssh -p 2222 tuusuario@IP-pública-de-casa.
- Así accedes directo al Windows sin pasar por el Mac.
- Cambia la red de la VM a Bridged (en Fusion: VM > Settings > Network Adapter > Bridged).
Recomendación para tu setup actual
- Empieza instalando OpenSSH Server en Windows (es lo que te da SSH real a PowerShell).
- Mantén NAT por ahora (más seguro).
- Una vez dentro del Mac por SSH remoto, haz ssh usuario@IP-de-la-VM → entras al PowerShell de Windows.
¿para qué necesitas WSL2 si puedes instalar OpenSSH Server directamente en Windows 11? Y cómo encaja todo con tu objetivo de practicar PowerShell desde fuera de casa (remoto) y usar el cliente SSH nativo cuando estás en casa.Respuesta corta: No necesitas WSL2 para nada de lo que describes
- Si tu objetivo es:
- Practicar PowerShell (remoto desde fuera, vía SSH o similar).
- Usar el cliente SSH de Windows (para conectar a tus servidores Linux en DigitalOcean).
- Tener el escritorio completo de Windows cuando estás en casa (GUI, apps, etc.).
- Entonces WSL2 no aporta nada esencial en tu caso. Puedes ignorarlo completamente.
Windows 11 (incluyendo la versión ARM en VMware Fusion en tu Mac Mini) ya trae todo lo que necesitas sin WSL2:
- Cliente SSH: Viene activado por defecto. Desde PowerShell o CMD: ssh usuario@ip-servidor-digitalocean → conectas a tus Linux remotos sin problema. Funciona perfecto para lo que dices.
- Servidor SSH (OpenSSH Server): Es una característica opcional que instalas manualmente (como te expliqué: Settings > Optional features > Add OpenSSH Server, o vía PowerShell con Add-WindowsCapability). Una vez instalado y configurado, puedes conectar por SSH al PowerShell de Windows desde cualquier sitio (incluyendo desde tu Mac Mini remoto vía SSH local a la VM, o directamente desde fuera si configuras bridged/port forwarding).
- PowerShell remoto/práctica: Con OpenSSH Server en Windows, desde fuera entras directamente con ssh usuario@ip-windows y abres una sesión PowerShell (o CMD si prefieres). Puedes practicar comandos PowerShell remotos todo lo que quieras.
¿Qué aporta WSL2 entonces? (y por qué mucha gente lo usa, aunque tú no lo necesites)WSL2 es básicamente un Linux real (Ubuntu, Debian, etc.) corriendo dentro de Windows, con un kernel Linux ligero. No es solo un emulador; es útil cuando quieres:
- Usar herramientas nativas de Linux (bash/zsh completo, apt, grep avanzado, sed, awk, git con hooks Linux, rsync, docker nativo sin hacks, etc.) sin salir de Windows.
- Desarrollar código que debe correr en Linux (ej. scripts bash complejos, herramientas DevOps, contenedores Docker Linux) pero desde un entorno Windows (VS Code con extensión WSL para debuggear directo).
- Acceder a archivos de Windows desde bash (y viceversa) sin problemas de permisos o paths.
- Correr servidores Linux (nginx, MySQL) o herramientas que no tienen buena versión Windows.
- GPU acceleration para ML (PyTorch, TensorFlow en Linux) integrado con Windows.
En tu caso:
- Ya tienes Linux real (Mac + servidores DigitalOcean), así que no necesitas otro Linux dentro de Windows.
- Quieres practicar PowerShell (que es el shell nativo de Windows), no bash.
- No mencionas necesidad de herramientas Linux exclusivas dentro de Windows.
→ Conclusión: Salta WSL2. Instala solo OpenSSH Server si quieres acceso SSH remoto al PowerShell de Windows. Así mantienes todo limpio y nativo.Resumen de tu setup ideal sin WSL2
- En casa: Abre la VM Windows → escritorio completo + cliente SSH nativo para conectar a DigitalOcean.
- Fuera de casa:
- Entras por SSH al Mac Mini (ya lo tienes).
- Desde ahí, conectas por SSH local a la VM Windows (con OpenSSH Server instalado): ssh usuario@IP-vm → practicas PowerShell remoto.
- O configuras bridged + port forward para acceso directo desde fuera al Windows (sin pasar por el Mac cada vez).
Si quieres solo Windows 11 puro en la VM (sin meterle Linux adicional dentro), para practicar el sistema Windows en sí: su escritorio cuando estás en casa, y PowerShell (remoto) cuando estás fuera. Y sí, te ahorras bastantes GB al no instalar WSL2.¿Cuánto espacio ahorras sin WSL2?
- Windows 11 ARM limpio (instalación fresca + actualizaciones básicas + herramientas VMware Tools): ocupa ~20-35 GB reales en el disco virtual al principio.
- Si instalas OpenSSH Server (para acceso remoto a PowerShell) + algún programa básico (VS Code, navegadores, etc.): sube a ~30-50 GB en uso típico.
- WSL2 (por defecto Ubuntu) añade al menos 1-2 GB iniciales, pero rápidamente crece a 10-50 GB o más si instalas paquetes, Docker o archivos grandes (el VHDX de WSL2 es dinámico y puede inflarse fácil si no lo gestionas). Muchos usuarios reportan que WSL2 «come» 20-100 GB extra en setups reales.
→ Sin WSL2: te ahorras 10-50 GB (o más a largo plazo) en el disco virtual. Como tu Mac Mini tiene 512 GB totales, y macOS necesita ~50-100 GB libres para no ralentizarse, asignar 128-256 GB al disco de Windows es perfecto y sobrado sin WSL2.Recomendación para tu disco virtual (en VMware Fusion)
- Asigna 128 GB si quieres ser minimalista: suficiente para Windows + OpenSSH Server + PowerShell práctica + apps básicas. Ocupación real inicial ~30 GB → dejas ~350-400 GB libres en tu Mac Mini.
- O 256 GB para más comodidad (como te sugerí antes): margen para guardar archivos, scripts, backups crypto, etc., sin preocuparte pronto.
- El disco es dinámico: solo ocupa en tu Mac lo que realmente usa Windows (no los 256 GB completos desde el día 1).
Resumen de tu setup ideal (sin WSL2)
- Instalas Windows 11 ARM en VMware Fusion.
- No tocas WSL2 (no ejecutas wsl –install ni nada).
- Instalación ligera: solo Windows + OpenSSH Server (para que desde fuera puedas entrar al PowerShell vía SSH).
- En casa: abres la VM → escritorio Windows completo + cliente SSH nativo (para conectar a tus DigitalOcean).
- Fuera de casa:
- Entras por SSH al Mac Mini (ya lo tienes).
- Desde el terminal del Mac: ssh usuario@IP-de-la-VM → entras directo al PowerShell de Windows (si tienes OpenSSH Server instalado y la VM encendida).
- Si quieres acceso directo sin pasar por el Mac: cambia la red a Bridged + abre puerto en router (pero empieza con NAT + SSH local desde el Mac, es más simple y seguro).
¿Qué hacer ahora?Cuando crees la VM en Fusion:
- Disco: 128 GB o 256 GB (elige según lo conservador que seas).
- RAM: 12-16 GB (como antes).
- No instales WSL2 nunca.
Una vez en el escritorio de Windows, si quieres instalar OpenSSH Server para el acceso remoto a PowerShell:
- Settings → Apps → Optional features → Add a feature → busca «OpenSSH Server» → Install.
- PowerShell como admin: Start-Service sshd y Set-Service -Name sshd -StartupType ‘Automatic’.
- Prueba desde el Mac: ssh tuusuario@IP-de-la-VM.
Vamos a explicarte Windows y PowerShell de forma sencilla, comparándolos directamente con lo que ya conoces de Linux y macOS (que son muy parecidos entre sí). Así ves las similitudes y diferencias, y entiendes por qué PowerShell puede ser tu «herramienta principal» para controlar Windows remotamente, igual que usas SSH + terminal en Mac/Linux.1. ¿Qué es Windows en comparación con Linux/macOS?
- Linux y macOS: Ambos son sistemas operativos basados en Unix (macOS es un descendiente directo de BSD Unix). Por eso son tan parecidos: mismo shell (bash/zsh), mismos comandos básicos (ls → dir no existe, sino ls, cd, grep, find, ssh, sudo, etc.), sistema de archivos con / (raíz), permisos POSIX, etc.
- Windows: Es un sistema operativo completamente diferente (no Unix). Tiene su propia historia (viene de MS-DOS y NT kernel).
Cosas que cambian mucho:- Sistema de archivos: usa letras de unidad (C:, D:) en vez de /.
- Rutas: usa \ en vez de / (ej. C:\Users\TuNombre\Documents).
- Permisos: modelo diferente (no POSIX, usa ACLs de NTFS).
- Servicios: no systemd, sino «Services» (services.msc).
- Registro: hay un «Registry» (base de datos gigante de configuración) que no existe en Linux/macOS.
- Pero… desde Windows 10/11, se ha vuelto muy parecido en uso remoto y scripting gracias a PowerShell.
Windows tiene un escritorio muy visual (como macOS), pero debajo puedes controlarlo casi todo por comandos, igual que en terminal.2. ¿Qué es PowerShell? (y por qué es tu «terminal» en Windows)PowerShell es el shell moderno y potente de Windows (desde Windows 7, pero mucho mejor en 10/11). Es como si bash/zsh y Python tuvieran un hijo.Comparación directa con lo que conoces:
| Aspecto | En Linux/macOS (tu zona de confort) | En Windows con PowerShell | ¿Qué ganas? |
|---|---|---|---|
| Shell principal | bash / zsh | PowerShell (pwsh.exe o powershell.exe) | Similar: escribes comandos, scripts, pipes |
| Comandos básicos | ls, cd, pwd, cat, grep, find | Get-ChildItem (alias dir/ls), Set-Location (cd), Get-Location (pwd), Get-Content (cat), Select-String (grep), Get-ChildItem -Recurse (find) | Puedes usar alias (ls = dir, cat = type) para sentirte «en casa» |
| Pipelines | cat archivo | grep «error» | Get-Content archivo | Select-String «error» | Igual de potente, pero objetos en vez de texto plano |
| Objetos en vez de texto | Todo es texto | Todo son objetos .NET (como JSON estructurado) | Muy poderoso: filtras propiedades reales (ej. Get-Process | Where-Object {$_.CPU -gt 10}) |
| Scripting | .sh o .zsh scripts | .ps1 scripts (muy similares a Python en sintaxis) | Puedes hacer cosas complejas fácilmente |
| Remoto | ssh + bash/zsh | SSH + PowerShell (o WinRM, pero SSH desde 2019) | Acceso remoto idéntico al que usas en Linux |
| Control del sistema | systemctl, apt, ifconfig, etc. | Start-Service, Get-Service, Get-NetAdapter, etc. | Controlas servicios, red, usuarios, registry, procesos… todo |
Lo clave para ti:
PowerShell te permite controlar Windows casi igual que controlas Linux/macOS con SSH + terminal.
Puedes hacer remoto desde fuera de casa (igual que haces con tus servidores DigitalOcean).3. Cómo usas PowerShell remotamente (como SSH en Mac/Linux)Una vez instalado OpenSSH Server en Windows (como te dije antes):
- Desde cualquier sitio (tu móvil, otro PC, o tu Mac desde fuera):
- ssh tuusuario@IP-de-tu-Windows -p 22
→ te abre una sesión PowerShell remota directamente (o CMD si configuras, pero PowerShell es lo recomendado). - Igual que cuando haces ssh usuario@digitalocean-ip y entras a bash/zsh.
- ssh tuusuario@IP-de-tu-Windows -p 22
- Dentro de esa sesión remota puedes:
- Ver procesos: Get-Process
- Parar uno: Stop-Process -Name chrome
- Ver servicios: Get-Service
- Reiniciar servicio: Restart-Service -Name wuauserv (actualizaciones)
- Ver red: Get-NetIPAddress
- Manejar archivos: Get-ChildItem C:\Users\TuNombre\Documents
- Scripts: subir un .ps1 y ejecutarlo remotamente
- Todo con autocompletado (Tab), ayuda (Get-Help), etc.
Es muy parecido a controlar tu Mac o Linux remotamente: entras por SSH y tienes un terminal potente para todo.4. Ventajas de PowerShell vs bash/zsh (para alguien de Linux/Mac)
- Objetos reales: no parseas texto con grep/awk/sed todo el tiempo. Ejemplo:
Get-Process | Sort-Object CPU -Descending | Select-Object -First 5 → lista top 5 procesos por CPU (sin trucos de texto). - Integración brutal con Windows: maneja registry, Active Directory, Azure, Office, etc. nativamente.
- Sintaxis más moderna: más parecida a Python/Ruby que bash (variables $var, foreach, if, try-catch).
- Multiplataforma: desde 2016, PowerShell Core (pwsh) corre en Linux y macOS también (pero en Windows es el rey).
Resumen para ti
- Windows = sistema diferente a Linux/macOS, pero desde 2019 con SSH + PowerShell es muy controlable remotamente.
- PowerShell = tu «bash/zsh» en Windows. Con OpenSSH Server instalado, desde fuera de casa entras por SSH y tienes PowerShell remoto para controlar todo (procesos, servicios, archivos, red, etc.).
- No necesitas WSL2 si solo quieres practicar Windows y PowerShell puro. Te ahorras GB y complejidad.
- Cuando estés en casa: abres la VM y usas el escritorio Windows normal + cliente SSH nativo para tus servidores Linux.
Es una gran idea para conocer los tres sistemas operativos más comunes (Windows, macOS y Linux), ya que cada uno tiene su filosofía, pero comparten muchas ideas de fondo.Voy a explicarte todo de forma clara y comparativa, y me centro en el Registro de Windows (Windows Registry), que es una de las partes más únicas y «misteriosas» de Windows. Sí, es muy importante y es una de las diferencias clave con Linux/macOS.1. Windows en general (para alguien de Linux/macOS)Windows es un sistema operativo propietario de Microsoft, con un enfoque muy en interfaz gráfica y usabilidad para el usuario final (empresas, gamers, ofimática). A diferencia de Linux/macOS (Unix-like), no es open-source y su kernel (NT Kernel) es cerrado.Pero desde Windows 10/11, se ha vuelto mucho más amigable para usuarios técnicos:
- PowerShell como terminal potente (similar a bash/zsh).
- WSL (opcional, pero puedes ignorarlo).
- SSH integrado (cliente y servidor).
- Soporte para Linux tools vía WSL o directamente.
El objetivo de familiarizarte es aprender a controlar Windows como controlas tu Mac o servidores Linux: por comandos, scripts y remoto.2. PowerShell: tu «terminal» en WindowsPowerShell es el equivalente moderno a bash/zsh.
Puedes hacer casi todo lo que haces en terminal Linux/Mac:
- Gestionar archivos: Get-ChildItem (alias: ls o dir)
- Procesos: Get-Process (como ps)
- Servicios: Get-Service (como systemctl)
- Red: Get-NetIPAddress (como ip addr)
- Scripts: archivos .ps1 (sintaxis parecida a Python)
Con OpenSSH Server instalado (como te expliqué), entras remotamente por SSH y tienes PowerShell abierto: practicas comandos, automatizas tareas, etc.
Es muy potente para administrar Windows remotamente, igual que SSH en Linux/Mac.3. El Registro de Windows (Registry): qué es, por qué es tan importanteEl Registro es una base de datos jerárquica central (como un gran archivo de configuración único) que Windows usa para almacenar casi todo lo relacionado con la configuración del sistema y las apps.Definición simple:
Es una base de datos donde Windows guarda:
- Configuraciones del usuario (perfiles, fondos de pantalla, temas).
- Ajustes de aplicaciones (preferencias de programas).
- Información de hardware (drivers, puertos, dispositivos conectados).
- Asociaciones de archivos (qué programa abre .pdf, .doc, etc.).
- Políticas de seguridad, arranque del sistema, servicios que se inician automáticamente.
En vez de tener cientos de archivos .ini o .conf dispersos (como en versiones antiguas de Windows o algunos Linux), todo está en un solo lugar centralizado.Estructura (como un árbol de carpetas):
- Hay 5 «raíces» principales (llamadas hives o subárboles):
- HKEY_LOCAL_MACHINE (HKLM): Configuración general del sistema y hardware (para todos los usuarios).
- HKEY_CURRENT_USER (HKCU): Configuración del usuario actual (cargada cuando inicias sesión).
- HKEY_CLASSES_ROOT (HKCR): Asociaciones de archivos y tipos (qué abre cada extensión).
- HKEY_USERS: Todos los perfiles de usuarios.
- HKEY_CURRENT_CONFIG: Configuración hardware actual.
Dentro de cada una hay claves (como carpetas) y valores (como archivos con datos: strings, números, binarios).Ejemplo práctico:
- Si cambias el programa predeterminado para abrir PDFs, Windows modifica una clave en HKCR.
- Si instalas un driver, se registra en HKLM\SYSTEM.
- Muchas «trucos» para acelerar Windows (desactivar animaciones, cambiar menú Inicio) se hacen editando el Registro.
Cómo se accede:
- Gráficamente: regedit (busca en Inicio → regedit). Es el «editor oficial».
- Por comandos: PowerShell (muy potente para ti):
- Get-ItemProperty -Path «HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion» (ver valores).
- Set-ItemProperty para cambiar.
- Tratar el Registro como un «disco» en PowerShell: cd HKLM:\ → ls → navegas como en bash.
¿Qué tan importante es el Registro en Windows?
- Muy importante: Es crítico (casi como el /etc en Linux, pero centralizado y usado por todo).
- Windows consulta el Registro miles de veces por segundo durante el funcionamiento: arranque, abrir apps, detectar hardware, etc.
- Si se corrompe o editas mal → Windows puede no arrancar, apps fallar, o el sistema volverse inestable.
- Es una de las razones por las que Windows es «frágil» si tocas cosas avanzadas (por eso hay mitos de «limpiar el Registro» para acelerar, aunque no siempre ayuda mucho en Windows 11).
Utilidad principal:
- Configuración profunda que no aparece en la interfaz gráfica.
- Solucionar problemas (ej. resetear configuraciones corruptas).
- Personalización avanzada (ej. tweaks de rendimiento, desactivar telemetría).
- Automatización: scripts PowerShell que modifican el Registro en masa (útil en empresas o para ti en tu VM).
- Diagnóstico: ver qué drivers/apps están registrados, qué se carga al inicio.
Comparado con Linux/macOS:
- En Linux: configuraciones en /etc, ~/.config, archivos .ini dispersos → más modular, pero menos centralizado.
- En macOS: plist files (.plist) en ~/Library/Preferences → similar pero disperso.
- En Windows: todo en una base de datos única → más eficiente para el sistema, pero más riesgoso editar (un error y ¡pum!).
Consejo para ti:
- En tu VM: abre regedit y explora (solo mira, no edites nada aún).
- Usa PowerShell para ver: Get-ChildItem HKLM:\SOFTWARE (verás claves de programas instalados).
- Haz backup antes de tocar: en regedit → Archivo → Exportar (elige rama y guarda .reg).
- Nunca edites sin saber: un cambio malo puede requerir reinstalar Windows.
Vamos a hablar de usuarios, grupos y permisos en Windows, comparándolo directamente con lo que ya sabes de Linux (y macOS, que es muy parecido a Linux en esto). Y sí, tienes razón: el Registro de Windows está muy relacionado con los usuarios y permisos, porque gran parte de la configuración de usuarios se almacena y se protege precisamente ahí.1. Usuarios en Windows (comparado con Linux/macOS)En Windows hay conceptos muy similares a Linux, pero con nombres y herramientas diferentes.
| Concepto | Linux/macOS | Windows (Windows 10/11) | Diferencias clave |
|---|---|---|---|
| Usuarios locales | useradd, /etc/passwd, /etc/shadow | Cuentas locales (creadas en Configuración > Cuentas) | Similar: cada usuario tiene su carpeta personal (C:\Users\Nombre) |
| Cuenta de administrador | root o usuarios con sudo | Cuenta Administrador (oculta por defecto) o usuarios en grupo «Administradores» | El grupo «Administradores» es como sudoers |
| Cuenta Microsoft | No existe equivalente directo | Cuenta vinculada a Microsoft (opcional) | Puede sincronizar OneDrive, Edge, etc. |
| Usuarios por defecto | root, daemon, nobody, etc. | SYSTEM, NETWORK SERVICE, LOCAL SERVICE, TrustedInstaller | Cuentas de sistema especiales (no visibles en la interfaz) |
| Perfiles de usuario | /home/usuario | C:\Users\usuario (Documents, Downloads, AppData) | Muy similar: cada usuario tiene su espacio aislado |
- Creación de usuarios:
- Gráficamente: Configuración > Cuentas > Familia y otros usuarios > Agregar cuenta.
- Por PowerShell (como root): New-LocalUser -Name «usuario» -Password (ConvertTo-SecureString «pass» -AsPlainText -Force) -FullName «Nombre» -Description «Usuario normal»
- Añadir a grupo Administradores: Add-LocalGroupMember -Group «Administradores» -Member «usuario»
- Cuentas de sistema:
- SYSTEM: equivalente a root (usa para servicios del sistema).
- TrustedInstaller: propietario de muchas carpetas del sistema (más restrictivo que SYSTEM en algunos casos).
2. Grupos en WindowsMuy parecidos a los grupos en Linux (/etc/group).
- Grupos locales principales:
- Administradores → equivalente a sudo/wheel (pueden hacer casi todo).
- Usuarios → usuarios normales (como users en Linux).
- Usuarios avanzados (Power Users, ya casi obsoleto).
- Todos (Everyone) → como «others» en permisos POSIX.
- Usuarios autenticados → usuarios logueados (Authenticated Users).
- Crear grupo: New-LocalGroup -Name «MiGrupo»
- Añadir usuario: Add-LocalGroupMember -Group «MiGrupo» -Member «usuario»
3. Permisos en Windows (NTFS)Aquí es donde más se diferencia de Linux/macOS (que usan permisos POSIX: rwx para owner/group/others).Windows usa ACLs (Access Control Lists) en NTFS (el sistema de archivos por defecto).
- Cada archivo/carpeta tiene una lista de permisos (no solo 3 categorías).
- Permisos básicos: Full Control, Modify, Read & Execute, List Folder Contents, Read, Write, Special Permissions.
- Se aplican a usuarios individuales, grupos o «SID» (identificadores únicos).
- Propietario (Owner): normalmente el creador o TrustedInstaller/SYSTEM.
- Herencia: permisos se propagan a subcarpetas/archivos (como setgid/setuid, pero más flexible).
Ejemplo:
- C:\Windows → propietario: TrustedInstaller, permisos muy restrictivos (solo lectura para Usuarios).
- C:\Users\TuNombre → propietario: tu cuenta, Full Control para ti.
Comandos en PowerShell para ver/gestionar permisos:
- Ver permisos de una carpeta: Get-Acl C:\Windows | Format-List
- Ver ACL detallado: Get-Acl C:\Windows | Format-List -Property Access
- Cambiar permisos: icacls (herramienta clásica) o Set-Acl en PowerShell.
4. Relación directa entre Usuarios/Permisos y el RegistroSí, el Registro está fuertemente ligado a los usuarios y permisos. De hecho, el Registro es uno de los lugares donde más se aplican restricciones de permisos en Windows.
- El Registro está dividido en «hives» (como archivos grandes):
- HKEY_LOCAL_MACHINE (HKLM): permisos muy restrictivos (solo Administradores o SYSTEM pueden escribir en muchas claves).
- HKEY_CURRENT_USER (HKCU): cargado para el usuario actual → permisos más laxos (el usuario tiene Full Control en su propia rama HKCU).
- Ejemplos de relación:
- Cuando creas un usuario nuevo → Windows crea automáticamente la rama HKCU para ese usuario (en el hive NTUSER.DAT dentro de C:\Users\usuario\NTUSER.DAT).
- Políticas de grupo (Group Policy) → muchas se almacenan en el Registro (HKLM\SOFTWARE\Policies) y se aplican según el usuario/grupo.
- Instalación de software → escribe en HKLM\SOFTWARE (necesita permisos de admin) y en HKCU\SOFTWARE (para preferencias del usuario).
- Si un usuario normal intenta editar una clave protegida en HKLM → denegado (UAC o permiso denegado).
En resumen de la relación:
- Usuarios y grupos controlan quién puede leer/escribir en el Registro.
- Muchas configuraciones de usuario (perfil, preferencias, apps instaladas por usuario) viven en HKCU (seguro para el usuario).
- Configuraciones globales (drivers, servicios, políticas) viven en HKLM (protegido, solo admins).
- Si cambias permisos en el Registro (con regedit o PowerShell), puedes romper cosas de un usuario o del sistema entero.
Consejos para practicar en tu VM
- Crea un usuario normal y uno administrador → ve cómo HKCU cambia al loguearte con cada uno.
- Abre regedit como admin vs. como usuario normal → verás qué claves puedes editar.
- Usa PowerShell: Get-Acl «HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion» | Format-List → ves los permisos del Registro.
1. El «root» en Windows → No hay un equivalente 1:1 exactoEn Linux/macOS:
- Existe el usuario root (UID 0).
- Es el superusuario real: puede hacer literalmente todo en el sistema sin restricciones.
- Normalmente no te logueas como root (por seguridad), sino que usas sudo para elevar privilegios temporalmente.
En Windows (desde XP/Vista en adelante, y sobre todo en Windows 10/11):
- No hay un usuario «root» como tal.
- El equivalente más cercano al root de Linux es la combinación de:
- Administrador (cuentas que pertenecen al grupo Administrators o Administradores en español).
- SYSTEM (un cuenta especial del sistema, no es un usuario normal).
- TrustedInstaller (aún más privilegiado en algunos casos, para proteger archivos del sistema).
| Concepto | Linux/macOS | Windows (más cercano) | Diferencia clave |
|---|---|---|---|
| Superusuario máximo | root (UID 0) | SYSTEM + Administrators + TrustedInstaller | SYSTEM no tiene contraseña ni se loguea como usuario normal |
| Usuario que usas día a día | Tu usuario normal | Tu usuario (puede ser Admin o Standard) | En Windows moderno se recomienda no estar siempre como Admin (UAC lo evita) |
| Elevación temporal | sudo / su | «Ejecutar como administrador» (UAC) o runas | UAC es más como un «sudo» forzado en muchas acciones |
| Cuenta «realmente intocable» | root puede todo | TrustedInstaller (protege Windows Update, etc.) | Ni siquiera Administrators puede tocar ciertos archivos sin tomar propiedad |
- SYSTEM: Es la cuenta bajo la que corren muchos servicios del sistema (como drivers, Windows Update en segundo plano, etc.). Tiene más privilegios que un Administrator normal en algunos contextos (por ejemplo, puede acceder a recursos de red del equipo sin credenciales extra). No puedes loguearte como SYSTEM fácilmente (hay trucos con herramientas como PsExec o Task Scheduler, pero no es para uso diario).
- Administrator (la cuenta oculta por defecto): En Windows 10/11 está desactivada por defecto. Tu cuenta personal suele ser miembro del grupo Administrators.
- Desde Windows 11 (y ya en 10), Microsoft incluso añadió oficialmente un comando sudo nativo en previews (como en Insider), pero aún no es tan común como en Linux.
2. Usuarios y grupos: Muy diferente filosofíaLinux/macOS (Unix-style):
- Modelo simple y tradicional: usuario (owner) + grupo (group) + otros (everyone else)
- Permisos: solo 3 básicos por categoría → r (read), w (write), x (execute)
- Ejemplo: rwxr-xr– → dueño: todo, grupo: leer+ejecutar, otros: leer
- Un archivo tiene un solo dueño y un solo grupo.
- Los grupos sirven para dar acceso compartido a varios usuarios (ej: grupo «developers», «docker», etc.).
- Comandos: chmod, chown, chgrp, id, groups, useradd, etc.
Windows (NTFS ACLs – Access Control Lists):
- Modelo mucho más flexible y complejo: listas de control de acceso (ACLs)
- Cada archivo/carpeta tiene una lista de entradas (ACEs) que dicen exactamente qué puede hacer cada usuario o grupo.
- No hay «owner / group / others» fijo → puedes asignar permisos a usuarios individuales, grupos locales, grupos de dominio (en Active Directory), «Everyone», «Authenticated Users», «SYSTEM», etc.
- Permisos mucho más granulares: Read, Write, Execute, Modify, Full Control, List Folder Contents, Traverse Folder, Delete Subfolders and Files, Change Permissions, Take Ownership, etc.
- Herencia: los permisos se pueden heredar de carpetas padre (muy potente).
- Comandos típicos en PowerShell o CMD:
- icacls (herramienta clásica para ver/modificar ACLs)
- Get-Acl, Set-Acl (PowerShell, mucho más potente)
- whoami /groups → ver tus grupos
- net localgroup → ver grupos locales
Ejemplo rápido de diferencia:
- En Linux: Si quieres que 3 usuarios accedan a una carpeta → creas un grupo, metes a los 3, haces chgrp y chmod g+rw.
- En Windows: Puedes añadir directamente a cada usuario en la pestaña Seguridad → Editar → Añadir → y darles permisos específicos (o usar un grupo local).
Resumen rápido para que lo tengas claro cuando practiques en la VM
| Aspecto | Linux/macOS | Windows |
|---|---|---|
| Superusuario | root | Administrators + SYSTEM |
| Elevación | sudo / pkexec | UAC + «Ejecutar como administrador» |
| Modelo de permisos | 9 bits (rwx ×3) | ACLs muy detalladas |
| Grupos por archivo | 1 grupo | Múltiples entradas en ACL |
| Herencia | Solo parcialmente (umask) | Muy potente y configurable |
| Herramienta principal | chmod, chown | icacls o PowerShell Get/Set-Acl |
¿Quieres que profundicemos en algo concreto ahora? Por ejemplo:
- Cómo ver tus grupos y permisos en PowerShell.
- Cómo simular «sudo» en Windows (runas, gsudo de terceros, o el sudo nativo nuevo).
- Diferencias en carpetas protegidas (Program Files vs /usr/bin).
- Práctica: crear un usuario estándar vs administrador en Windows y ver qué pasa al intentar modificar archivos del sistema.
Vamos a profundizar exactamente en lo que me pides, paso a paso, con comandos reales que puedes copiar-pegar en tu VM de Windows (PowerShell recomendado, es el futuro). Todo comparado con Linux/macOS para que te sea fácil.1. Cómo ver grupos y permisos en WindowsAbre PowerShell (mejor como administrador la primera vez para ver todo).Ver tus grupos y privilegios actuales (equivalente a id o groups en Linux):
powershell
whoami /all
Esto te muestra:
- Tu usuario
- Todos los grupos a los que perteneces (Administrators, Users, etc.)
- Privilegios activados (SeDebugPrivilege, SeTakeOwnershipPrivilege, etc.)
Ver grupos locales del sistema (como cat /etc/group):
powershell
Get-LocalGroup | Format-Table Name, Description
Get-LocalGroupMember -Group "Administrators" # quién está en Admins
Ver permisos de un archivo/carpeta (equivalente a ls -l o stat):
powershell
# Forma fácil (como icacls)
icacls "C:\Windows\System32"
# Forma potente (PowerShell, mi favorita)
Get-Acl "C:\Windows\System32" | Format-List
Verás una lista larga de «Access» con usuarios/grupos y sus derechos (FullControl, ReadAndExecute, etc.).Ejemplo práctico: ¿Quién puede tocar un archivo protegido?
powershell
Get-Acl "C:\Windows\System32\config\SAM" | Select-Object -ExpandProperty Access
Normalmente verás que SYSTEM, Administrators y TrustedInstaller tienen control total.2. Cómo simular «sudo» en Windows (elevar privilegios)Windows no usa sudo de forma nativa hasta hace muy poco, pero hay varias formas:A. La forma clásica (runas)
powershell
runas /user:Administrator "powershell.exe"
O para un comando concreto:
powershell
runas /user:Administrator "notepad.exe C:\Windows\System32\drivers\etc\hosts"
Te pedirá la contraseña del administrador.B. La forma moderna recomendada (UAC + «Ejecutar como administrador»)
- Botón derecho sobre PowerShell → «Ejecutar como administrador»
- O en CMD/PowerShell: Start-Process powershell -Verb RunAs
C. gsudo (el «sudo» real de Windows – lo recomiendo 100%) Es un programa gratuito y open-source que se comporta exactamente como sudo en Linux.
- Descárgalo desde https://github.com/gerardog/gsudo/releases (gsudo.exe)
- Ponlo en C:\Windows\System32 o añade al PATH
- Luego usas:powershell
gsudo winget upgrade --all gsudo notepad "C:\Windows\System32\drivers\etc\hosts"¡Es brutalmente cómodo!
D. sudo nativo de Microsoft (Windows 11 24H2 en adelante) Desde finales de 2024 Microsoft añadió sudo oficial:
powershell
sudo winget upgrade --all
Solo tienes que activarlo una vez en Configuración → Sistema → Para desarrolladores → Activar sudo.3. ¿Quién controla SYSTEM y TrustedInstaller? ¿Qué pueden hacer que un Admin normal NO puede?Nadie «controla» realmente estos cuentas como usuarios normales. Son cuentas internas del sistema creadas y gestionadas por el kernel de Windows:
- SYSTEM (NT AUTHORITY\SYSTEM):
- Es la cuenta bajo la que corren casi todos los servicios críticos (Windows Update en segundo plano, antivirus, drivers, etc.).
- Tiene más privilegios que un Administrator normal en ciertos casos:
- Puede acceder a la memoria de otros procesos.
- Puede leer/escribir claves del registro de otros usuarios.
- Puede interactuar con dispositivos hardware a bajo nivel.
- Puede hacer login sin contraseña (es una cuenta «no interactiva»).
- TrustedInstaller (NT SERVICE\TrustedInstaller):
- Es el dueño real de casi todos los archivos del sistema (C:\Windows, C:\Program Files, etc.).
- Protege contra modificaciones accidentales gracias a Windows Resource Protection (WRP).
- Un Administrator NO puede borrar C:\Windows\System32 directamente.
- Para tocarlo tienes que hacer «Take Ownership» (tomar propiedad) primero.
Resumen: Un usuario Administrator es como un «sudoer» muy potente, pero SYSTEM y TrustedInstaller son como el «kernel» en Linux: están por encima de los usuarios. Ni siquiera con sudo puedes convertirte en ellos fácilmente (hay trucos con PsExec o scheduled tasks, pero no es normal).4. Archivos de configuración al inicio, PATH, etc. (el equivalente de .bashrc, .profile, /etc/profile)En Linux/macOS todo es texto plano (.bashrc, .zshrc, .profile, /etc/environment…).En Windows no hay archivos .hidden en tu carpeta de usuario, pero sí hay equivalentes muy potentes:A. El PATH (dónde busca los binarios)
- Equivalente exacto a $PATH en Linux.
- Verlo:powershell
$env:PATH - Editarlo (permanente):
- Busca «Variables de entorno» en el menú Inicio
- Hay dos secciones: Usuario y Sistema
- Añade rutas (ej: C:\Program Files\Git\cmd)
B. Archivos de configuración al abrir la terminal (equivalente a .bashrc)En PowerShell (la terminal moderna):
- El archivo principal es $PROFILE
- Ver dónde está:powershell
$PROFILE - Crear/editar (equivalente a crear .bashrc):powershell
if (!(Test-Path -Path $PROFILE)) { New-Item -Type File -Path $PROFILE -Force } notepad $PROFILEDentro puedes poner alias, funciones, colores, etc. Ejemplo:powershellSet-Alias ll ls function update { winget upgrade --all } $env:PATH += ";C:\MyTools"
Existen 4 perfiles distintos (como /etc/profile + ~/.bashrc):
- AllUsersAllHosts
- AllUsersCurrentHost
- CurrentUserAllHosts
- CurrentUserCurrentHost (el más usado)
En CMD (la terminal antigua):
- Usa la clave del registro: HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
Otras configuraciones importantes:
- Registro de Windows (regedit) → equivalente a /etc/* y ~/.config
- Archivos en %USERPROFILE% (C:\Users\TuUsuario): puedes crear Microsoft.PowerShell_profile.ps1 manualmente.
Resumen rápido:
| Concepto Linux/macOS | Equivalente Windows | Dónde editar |
|---|---|---|
| $PATH | $env:PATH | Variables de entorno |
| .bashrc / .zshrc | $PROFILE (PowerShell) | notepad $PROFILE |
| /etc/profile | Perfiles AllUsers + registro AutoRun | $PROFILE.AllUsersAllHosts |
| Alias y funciones | Alias y funciones en $PROFILE | Archivo de texto plano |
| Variables de entorno | $env:NOMBRE o Variables de entorno | System Properties |
¿Quieres que ahora hagamos práctica real? Por ejemplo:
- Te digo paso a paso cómo crear tu propio «$PROFILE» con alias útiles.
- Cómo instalar gsudo fácilmente.
- O cómo tomar propiedad de un archivo protegido como si fueras TrustedInstaller.
Vamos a aclarar esas dos dudas que te quedaron sobre $PROFILE en PowerShell (porque en cmd.exe normal no existe este concepto, solo en PowerShell).1. ¿Qué es exactamente $PROFILE? ¿Un archivo, un objeto o qué?
- $PROFILE es una variable automática (automatic variable) de PowerShell.
- Su tipo principal es String → contiene una ruta (path) al archivo de perfil más común que usa tu sesión actual (el que se llama «CurrentUser, CurrentHost»).
- Ejemplo típico de lo que ves si escribes solo $PROFILE:
C:\Users\TuUsuario\Documents\PowerShell\Microsoft.PowerShell_profile.ps1(o en versiones antiguas: \WindowsPowerShell\…) - Pero no es solo un string simple: PowerShell le agrega propiedades adicionales (NoteProperties) para que puedas acceder fácilmente a las otras rutas de perfiles posibles. Si haces:powershell
$PROFILE | Get-Member -Type NotePropertyVerás algo como:- AllUsersAllHosts
- AllUsersCurrentHost
- CurrentUserAllHosts
- CurrentUserCurrentHost ← este es el que devuelve $PROFILE solito
En resumen:
- Es una variable cuyo valor principal es la ruta (string) del archivo de perfil más usado.
- Ese archivo sí es un archivo de texto plano (extensión .ps1).
- Pero la variable en sí no es el archivo, solo apunta a él (y da acceso fácil a las otras rutas).
2. ¿Cómo se edita? ¿Con notepad? ¿Es como nano/vi en Linux/Mac?Sí, todo es texto plano, igual que en Linux y macOS.
- El archivo de perfil es un .ps1 → 100% texto plano (UTF-8 con BOM o sin BOM, pero PowerShell lo maneja bien).
- Puedes editarlo con cualquier editor de texto que quieras.
Formas más comunes en Windows:
| Comando que usas en PowerShell | Editor que abre | Comentario |
|---|---|---|
| notepad $PROFILE | Notepad (el bloc de notas clásico) | La forma más simple y que ya viene en Windows. Muy parecido a nano básico |
| notepad++ $PROFILE | Notepad++ (si lo tienes instalado) | Mucho mejor que el Notepad normal, con syntax highlighting para PowerShell |
| code $PROFILE | Visual Studio Code | La recomendación moderna #1. Excelente para PowerShell (extensión oficial) |
| ise $PROFILE | PowerShell ISE | El editor viejo que venía con Windows (ya no se recomienda mucho en 2025+) |
| nvim $PROFILE | Neovim (si lo instalaste) | Para los fans de vim/neovim en Windows |
| nano $PROFILE | nano | Si instalaste nano vía scoop/chocolatey o WSL |
- Si el archivo no existe todavía, al hacer notepad $PROFILE → Notepad te pregunta si quieres crearlo → dices sí y ya lo tienes.
- O más «PowerShell way»: if (!(Test-Path $PROFILE)) { New-Item -Path $PROFILE -ItemType File -Force } y luego lo editas.
Comparación rápida con Linux / macOS (en el contexto de shells)
| Aspecto | Linux / macOS (bash/zsh/fish) | Windows PowerShell |
|---|---|---|
| Archivo de config | ~/.bashrc, ~/.zshrc, ~/.config/fish/config.fish | $PROFILE → Microsoft.PowerShell_profile.ps1 |
| ¿Texto plano? | Sí, siempre | Sí, 100% texto plano (.ps1) |
| Editor típico rápido | nano, vi, vim, micro | notepad, code, notepad++, nvim |
| Editor «oficial» recomendado | vim/nvim o VS Code | Visual Studio Code (con extensión PowerShell) |
| ¿Hay GUI por defecto? | No (todo terminal) | Sí (notepad), pero se usa mucho VS Code |
| ¿Se puede editar desde terminal sin salir? | Sí (nano/vi) | Sí (con nvim, nano si instalado, o hasta micro) |
En Windows existe el concepto de «texto plano» exactamente igual que en Linux/Mac → solo que históricamente la gente usaba mucho Notepad (o WordPad, que ya no se recomienda porque mete formato raro).Hoy en día la mayoría usa VS Code para editar perfiles, scripts .ps1, etc., porque tiene IntelliSense, debugging, Git integrado, etc.
En un Windows sin interfaz gráfica (como Windows Server Core, Nano Server en versiones antiguas, o incluso una instalación mínima de Windows 10/11 en modo consola o a través de RDP a un servidor headless), las opciones para editar archivos de configuración (como $PROFILE de PowerShell, hosts, unattend.xml, configs de servicios, etc.) son bastante limitadas comparadas con Linux, pero hay varias formas prácticas de hacerlo todo desde la consola (sin GUI).Opciones reales en 2025–2026 (orden de practicidad)
- La forma más común y rápida (si tienes acceso remoto con GUI en algún momento o lo instalas una vez)
Instalas un editor de terminal ligero vía winget, scoop o chocolatey (estos gestores suelen funcionar en Server Core porque usan solo consola).- Recomendados y muy usados en 2026:
- micro → el más fácil para gente que viene de nano (atajos intuitivos con Ctrl+S, Ctrl+Q, etc.)
- nano → sí, existe versión para Windows (muy popular en Server Core ahora)
- vim / nvim (Neovim) → el más potente, pero curva de aprendizaje
- edit (el viejo editor de MS-DOS que Microsoft revivió y mejoró un poco en versiones recientes)
# Opción 1: winget (viene preinstalado en Windows Server 2022/2025+) winget install --id OpenEditor.Micro # o winget install vim.vim # Opción 2: scoop (muy popular en entornos sin GUI) Set-ExecutionPolicy RemoteSigned -Scope CurrentUser irm get.scoop.sh | iex scoop install micro scoop install nano scoop install neovimUna vez instalado → simplemente:powershellmicro C:\ruta\al\archivo.conf nano $PROFILE nvim C:\Windows\System32\drivers\etc\hosts - Recomendados y muy usados en 2026:
- Sin instalar nada (opciones nativas o casi nativas)MétodoComando típico¿Funciona en Server Core?Pros / Contrasnotepadnotepad archivo.txtSí (en la mayoría de instalaciones 2019/2022/2025)Abre GUI → falla si no hay sesión gráfica activa (RDP sin desktop). Muy simple si tienes GUI mínimaedit (MS-DOS Edit)edit archivo.txtSí en muchas versionesEditor muy básico de texto, funciona 100% en consola. Teclas raras hoy en díaPowerShell ISE remotoDesde otra máquina: powershell_ise \\servidor\c$\ruta\script.ps1No directo en CoreSolo si editas remotamente desde PC con GUIcopy con(truco viejo)copy con archivo.txt → escribes → Ctrl+ZSíMuy rudimentario, solo para crear/editar archivos pequeñosPowerShell Out-File / Set-Content`'»nuevo contenido»Set-Content archivo.txt`Sí (nativo)echo. (cmd)echo nuevo texto>>archivo.txtSíSolo append, no edición realEl copy con sigue siendo útil para cosas rápidas:cmd
copy con C:\temp\test.txt Línea 1 Línea 2 ^Z ← presiona Ctrl+Z y Enter - La forma profesional / más parecida a Linux (2025–2026)La gran mayoría de administradores de Windows Server Core hoy en día terminan instalando micro o nano porque son los que menos frustran.
- micro → se siente casi como nano pero con mouse, scroll, selección con Shift, etc.
- nano → si ya lo conoces de Linux, es idéntico.
micro $PROFILE # o nano C:\ProgramData\docker\config\daemon.json - Truco si no puedes instalar nada y solo tienes cmd/PowerShell puroPara editar un archivo pequeño o mediano:
- Mostrar contenido: Get-Content archivo.txt
- Reemplazar todo: «nuevo contenidonLínea 2nLínea 3» | Set-Content archivo.txt
- Agregar al final: «texto adicional» | Add-Content archivo.txt
- Editar línea por línea (rudimentario): usar un script temporal o powershell -NoExit y manipular con variables.
En resumen:
- Sin instalar nada → edit o copy con (básico) / Set-Content (para cambios masivos)
- Recomendación realista 2026 → instala micro o nano con winget/scoop → es lo que hace casi todo el mundo en Server Core hoy
- Si odias instalar → acostúmbrate a editar remotamente desde tu PC con VS Code (Remote-SSH o PowerShell remoting) o WinSCP → arrastrar y soltar.
1. Conexiones remotas en Windows antes de SSH y ¿se siguen usando hoy?Antes de que Microsoft integrara OpenSSH de forma nativa (a partir de Windows 10 1809 y Server 2019, y muy mejorado en Server 2022/2025), las formas principales de conectarse remotamente a Windows eran:
- RDP (Remote Desktop Protocol) → La más usada históricamente y sigue siendo la reina absoluta en 2026 para acceso gráfico completo (como si estuvieras sentado delante del equipo).
- Se usa muchísimo en entornos empresariales, soporte remoto, VDI, Azure Virtual Desktop, administración de servidores con GUI, etc.
- En 2025-2026 sigue siendo el método principal para Windows porque da escritorio completo, multi-monitor, audio, impresoras redirigidas, etc.
- Problema: consume más ancho de banda y ha sido (y sigue siendo) un vector de ataque muy común si no se protege bien (NLA, MFA, firewalls, no exponer puerto 3389 directo a internet, usar Azure Bastion o VPN).
- Cómo se hace hoy: Desde cualquier Windows → mstsc (Remote Desktop Connection) → pones IP/hostname + credenciales. O desde macOS/Linux con clientes como Remmina, Microsoft Remote Desktop app.
- PowerShell Remoting (WinRM / WS-Management) → Muy usado desde Windows PowerShell v2 (2009 aprox.) para administración sin GUI (ejecutar comandos, scripts, Invoke-Command, Enter-PSSession).
- Sigue usándose muchísimo en 2026, especialmente en entornos Windows puros o híbridos (Dominios Active Directory, Azure Arc, automatización con Ansible/Chef/Puppet que usan WinRM).
- Es más «rico» que SSH puro porque permite objetos PowerShell serializados, no solo texto.
- Cómo se habilita y usa (sigue igual):
En el equipo remoto: Enable-PSRemoting -Force (abre puerto 5985/5986 en firewall).
Desde tu máquina: powershellEnter-PSSession -ComputerName servidor-remoto -Credential (Get-Credential) # o para un comando rápido Invoke-Command -ComputerName servidor-remoto { Get-Process }
- Otras formas antiguas que se usaban antes (y algunas aún sobreviven en nichos):
- Telnet → Casi muerto (inseguro, sin cifrado).
- PsExec (de Sysinternals) → Sigue usándose para ejecución remota rápida sin habilitar WinRM (usa SMB + RPC).
- WMI/DCIM → Para queries remotas (Get-WmiObject, pero ya casi todo se hace con CIM en PowerShell).
- VNC o TeamViewer (terceros) → Para GUI cuando RDP no estaba disponible.
En 2026 el panorama es mixto:
- RDP → Muy usado (el más usado para acceso interactivo con GUI).
- PowerShell Remoting (WinRM) → Muy usado para automatización y administración CLI en entornos Windows.
- SSH (OpenSSH) → Cada vez más usado, especialmente en entornos híbridos (Windows + Linux), DevOps, Server Core / Nano-like, o cuando quieres un shell TUI completo (vim, htop-like tools, sconfig en Server).
- En Server 2025 hay «one-click» para habilitar SSH remoting en PowerShell.
- Muchos admins lo prefieren para sesiones interactivas porque soporta mejor apps TUI (texto con interfaz).
- Cómo se hace SSH en Windows hoy: Instala OpenSSH Server (Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0), inicia servicio, y conectas con ssh usuario@ip.
Resumen: RDP y WinRM no han muerto para nada, siguen siendo los más usados en entornos Windows puros o empresariales. SSH ha ganado mucho terreno (sobre todo desde 2018-2019), pero no ha reemplazado a los otros; se usa en paralelo.2. ¿Set-Content te abre el archivo para editarlo como nano? ¿Y edit sí?
- Set-Content / Add-Content / Out-File → No, no abren el archivo para editarlo interactivamente.
Son comandos de reemplazo o escritura masiva, no editores.- Ejemplos: powershell
"Nuevo contenido`nLínea 2" | Set-Content C:\temp\archivo.txt # Borra todo y escribe esto "Línea adicional" | Add-Content C:\temp\archivo.txt # Agrega al final Get-Content archivo.txt | ForEach-Object { $_ -replace "viejo","nuevo" } | Set-Content archivo.txt - No hay interfaz interactiva (no puedes moverte con flechas, buscar, etc.). Es para scripts o cambios rápidos/no interactivos.
- Muy útil en Server Core o automatización, pero no reemplaza a un editor.
- Ejemplos: powershell
- edit → Sí, este sí es un editor interactivo de consola (como nano o vim básico).
- En 2025-2026 Microsoft revivió y mejoró mucho el viejo edit.com de MS-DOS → ahora es un editor CLI moderno (open source, se instala con winget o viene en previews de Windows 11/Server).
- Cómo usarlo: cmd
edit C:\ruta\al\archivo.txt # o en PowerShell edit $PROFILE - Abre una interfaz de texto en consola: flechas, Ctrl+S guardar, Ctrl+Q salir, búsqueda, etc.
- Perfecto para Server Core o sesiones SSH puras donde no quieres instalar nano/micro/vim.
- Si no lo tienes: winget install Microsoft.Edit (o descarga de GitHub de Microsoft).
- Es lo más cercano a nano que tienes nativo/mejorado en Windows actual.
Recomendación 2026 para editar en consola sin GUI:
- Instala micro o nano (winget o scoop) → los más cómodos.
- Usa el nuevo edit de Microsoft → ligero y nativo-ish.
- Si nada → usa Set-Content para cambios simples o edita remotamente con VS Code (Remote-SSH o PowerShell extension).
1. ¿Qué es Active Directory (AD) clásico? (On-premises)Es el Active Directory Domain Services (AD DS) de toda la vida:
- Corre en servidores Windows locales (en tu data center o en las oficinas).
- Maneja usuarios, grupos, computadoras, políticas de grupo (GPO), autenticación Kerberos/NTLM.
- Ideal para redes internas, impresoras, shares de archivos, domain join de PCs físicos/virtuales.
- En 2026 sigue vivo y muy usado en empresas con infraestructura legacy o regulaciones estrictas.
2. Azure AD → Microsoft Entra ID (el «nuevo» AD en la nube)
- Antes se llamaba Azure Active Directory (Azure AD).
- En 2023 Microsoft lo renombró a Microsoft Entra ID (parte de la familia Entra para identidades).
- Es 100% cloud-native, gestionado por Microsoft (no tienes servidores que mantener).
- Autentica para Microsoft 365, Azure, miles de apps SaaS (Salesforce, Zoom, etc.) vía SAML, OAuth, OpenID Connect.
- No es un «domain controller» tradicional: no soporta nativamente GPO completas, LDAP clásico, domain join directo (usa Microsoft Entra join o hybrid join).
- Diferencias clave con AD on-prem:
| Aspecto | Active Directory (on-prem) | Microsoft Entra ID (cloud) |
|---|---|---|
| Ubicación | Servidores locales | Nube de Microsoft |
| Protocolos principales | Kerberos, NTLM, LDAP | SAML, OAuth, OpenID Connect |
| Gestión de dispositivos | Domain join, GPO | Entra join, Intune |
| Apps principales | Recursos internos (files, printers) | Cloud/SaaS + Microsoft 365 |
| Administración | Tú gestionas DCs | Microsoft lo gestiona (PaaS) |
| Hybrid | Se sincroniza con Entra ID vía Entra Connect | Puede sincronizar desde on-prem AD |
Muchos entornos (incluyendo SaaS) usan hybrid identity: AD on-prem + sync a Entra ID para que los usuarios tengan la misma cuenta en local y nube.3. Citrix (o similares como Omnissa Horizon / VMware, o AVD)En empresas SaaS o con muchos usuarios remotos, no basta con solo identidad; necesitas entregar aplicaciones o escritorios completos de forma remota (VDI o virtual apps). Aquí entran:
- Citrix Virtual Apps and Desktops (antes XenApp/XenDesktop, ahora Citrix DaaS o on-prem):
- Muy potente para publicar solo apps (no todo el escritorio), HDX protocol (mejor experiencia que RDP puro en conexiones lentas).
- Funciona en on-prem, Azure, AWS, multi-cloud.
- Muy usado en sectores regulados (salud, finanzas) por sus features avanzadas de seguridad, optimización, load balancing.
- Azure Virtual Desktop (AVD) → Antes Windows Virtual Desktop:
- Nativo de Microsoft, corre 100% en Azure.
- Usa RDP mejorado + FSLogix para perfiles, autoscaling, integración total con Entra ID / Intune.
- Más barato si ya estás en Microsoft ecosystem (licencias M365 E3/E5 incluyen AVD).
- En 2026 crece rápido porque es «más simple» para empresas Microsoft-centric.
| Aspecto | Citrix (DaaS o on-prem) | Azure Virtual Desktop (AVD) |
|---|---|---|
| Origen | Independiente (Citrix) | Nativo Microsoft (Azure) |
| Flexibilidad | Multi-cloud, hybrid, muy customizable | Principalmente Azure, pero hybrid posible |
| Protocolo | HDX (excelente en WAN lenta) | RDP Shortpath / RemoteFX mejorado |
| Costo | Licencias Citrix + infra | Pago por uso Azure + licencias M365 |
| Complejidad | Más features → más complejo | Más simple si usas Microsoft stack |
| Uso típico en SaaS | Apps legacy complejas, multi-región | Entornos Microsoft puros, costo-eficiente |
¿Son lo mismo? No exactamente iguales, pero muy parecidos en propósito: entregar escritorios virtuales o apps remotas de forma segura.
Citrix es como el «todo-terreno premium» (más caro, más flexible), AVD es el «integrado y económico» si estás en Azure/M365.4. ¿Cómo se conectan remotamente para controlar / acceder a los usuarios?Depende del stack, pero en entornos SaaS con Citrix o AVD:
- Usuario final (empleado):
- Se conecta vía Citrix Workspace app (o web browser) → pone credenciales (Entra ID o hybrid).
- Autenticación: Microsoft Entra ID (con MFA/Conditional Access) → luego lanza la app/escritorio virtual.
- En Citrix: usa StoreFront o Citrix Gateway (NetScaler/ADC) para acceso externo seguro.
- En AVD: usa Windows App, Remote Desktop client, o web → gateway de Azure Virtual Desktop + Entra ID SSO (single sign-on recomendado en 2026).
- Administrador / Soporte (para controlar usuarios):
- En Citrix: Director o Studio (web console) para ver sesiones, shadow (ver/controlar pantalla del usuario), resetear sesiones.
- En AVD: Azure Portal → Azure Virtual Desktop blade → «Session hosts» → conectar vía RDP con Azure Bastion (sin exponer puerto 3389) o Just-In-Time access.
- También: Remote Assistance integrado o herramientas como TeamViewer / AnyDesk si es puntual, pero lo ideal es shadow vía la plataforma (Citrix Shadow o AVD session insights).
- MFA siempre forzado vía Conditional Access en Entra ID para admins.
En resumen para tu caso en SaaS:
- Identidad → Casi siempre Microsoft Entra ID (cloud) + sync desde AD on-prem si hay legacy.
- Entrega remota → Citrix (si necesitan features avanzadas) o AVD (si son Microsoft-heavy y quieren ahorrar).
- Conexión remota → Todo va por Entra ID + MFA → luego el protocolo (HDX en Citrix, RDP en AVD) → admins usan herramientas integradas para shadow o control.
El mundo de .NET es uno de los más importantes y potentes en el ecosistema Windows (y más allá), especialmente si trabajas en entornos como el SAS (donde hay muchas aplicaciones internas, clínicas y de gestión que usan tecnologías Microsoft). Vamos a explicártelo detalladamente, paso a paso, con el estado actual en marzo de 2026.¿Qué es .NET exactamente?.NET es una plataforma de desarrollo gratuita, de código abierto y multiplataforma creada por Microsoft. Sirve para crear y ejecutar aplicaciones de todo tipo: web, escritorio, móviles, servicios en la nube, APIs, juegos, IoT, inteligencia artificial, etc.No es solo un «framework» como antes; desde 2020 se unificó todo bajo el nombre .NET (sin «Core» ni nada). Incluye:
- Runtime (entorno de ejecución): lo que hace que tus programas corran rápido y seguro.
- Librerías (bibliotecas): miles de clases listas para usar (para bases de datos, HTTP, JSON, criptografía, etc.).
- Lenguajes: Principalmente C# (el más usado y potente), pero también F#, Visual Basic, etc.
- Herramientas: SDK para compilar, Visual Studio (o VS Code gratis), dotnet CLI (línea de comandos).
- Entorno de ejecución de alto rendimiento: Con garbage collector automático, JIT compiler, AOT (Ahead-of-Time compilation) para apps nativas rápidas.
En 2026 estamos en .NET 10 (LTS, lanzado en noviembre 2025, soportado hasta 2028) o .NET 9 (STS, hasta finales 2026). El anterior LTS es .NET 8 (hasta noviembre 2026).Diferencia clave con el viejo .NET Framework (el que se usaba antes de 2016):
- .NET Framework (versión 4.8.1 en 2026): Solo Windows, legacy, en «maintenance mode» (solo parches de seguridad, no nuevas features). Muchas apps antiguas del SAS o salud pública aún lo usan.
- .NET moderno (desde .NET 5/6/7/8/9/10): Multiplataforma (Windows, Linux, macOS, Android, iOS, etc.), open source (en GitHub), cloud-native, mucho más rápido y ligero.
¿Para qué sirve .NET? Usos principales en 2026
| Tipo de aplicación | Tecnología en .NET | Ejemplos reales (incluyendo entornos como SAS/Salud) | ¿Por qué se elige .NET? |
|---|---|---|---|
| Web y APIs | ASP.NET Core (Minimal APIs, MVC, Razor Pages) | APIs REST para Diraya, SIGLO, portales de citas, integración con Historia Clínica Digital | Muy rápido (top en benchmarks TechEmpower), seguro, escalable en Azure/Kubernetes. |
| Aplicaciones de escritorio | WPF, WinForms, .NET MAUI (multiplataforma) | Herramientas internas de gestión en hospitales, apps para médicos/enfermería en PC | Interfaz rica, integración nativa Windows, perfiles de usuario con FSLogix si es VDI. |
| Servicios / Microservicios | ASP.NET Core + gRPC / Background Services | Servicios backend para apps clínicas, colas de mensajes (RabbitMQ + MassTransit) | Cloud-native, contenedores Docker, orquestación con Kubernetes. |
| Móvil | .NET MAUI (antes Xamarin) | Apps móviles para profesionales (citas, alertas) | Un solo código para Android/iOS/Windows/macOS. |
| Cloud y Azure | Azure Functions, App Service, Azure SDKs | Integración con Azure AD (Entra ID), storage, AI | Nativo con Azure, barato en consumo. |
| IA y ML | ML.NET, Semantic Kernel, integración OpenAI | Modelos para predicción de cargas hospitalarias, chatbots clínicos | Fácil de integrar con Azure AI. |
| Juegos | Unity (usa C# + .NET) | Simuladores de entrenamiento médico (menos común en SAS) | Alto rendimiento. |
| IoT y Edge | .NET IoT | Dispositivos en UCI o monitorización remota | Ligero para Raspberry Pi o edge devices. |
En entornos como el SAS, .NET se usa mucho en:
- Backend de aplicaciones clínicas (Diraya tiene partes en .NET).
- APIs internas para integración entre sistemas.
- Herramientas de administración y reporting.
- Modernización de legacy (migrar de .NET Framework a .NET moderno).
¿Cómo se usa .NET? (paso a paso básico para empezar)
- Instalar el SDK (gratuito):
- Descarga desde https://dotnet.microsoft.com/download
- En Windows: winget install Microsoft.DotNet.SDK.10 (o la versión que quieras).
- Viene con el dotnet CLI (línea de comandos).
- Crear un proyecto simple (ejemplo API web mínima):powershell
dotnet new web -o MiPrimeraApi cd MiPrimeraApi dotnet run→ Abre http://localhost:5000/weatherforecast → ves JSON automático. - Editar código (en C#):
- Abre con Visual Studio (Community gratis) o VS Code + extensión C#.
- Ejemplo básico de Minimal API en Program.cs:csharp
var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.MapGet("/", () => "¡Hola desde .NET 10 en 2026!"); app.Run();
- Compilar y publicar:
- dotnet publish -c Release → genera carpeta lista para deploy (en servidor, Docker, Azure).
- Puedes hacer self-contained (incluye runtime, no necesitas instalar .NET en el servidor).
- Entornos comunes:
- IIS (en Windows Server) para apps web legacy.
- Kestrel (servidor integrado) + Nginx/Apache reverse proxy en Linux.
- Docker / Kubernetes para cloud.
¿Por qué estudiar .NET ahora en 2026?
- Demanda laboral alta: En España (y Andalucía/SAS), .NET/C# es de los perfiles más buscados en salud, banca, administración pública y empresas grandes.
- Futuro-proof: Microsoft invierte fuerte (cada año nueva versión con IA, rendimiento, cloud).
- Productividad: C# es limpio, tipado fuerte, async fácil, records, pattern matching, source generators…
- Multiplataforma: Ya no estás atado a Windows.
- Comunidad enorme: Stack Overflow, GitHub, docs.microsoft.com/es-es/dotnet.
Vamos a aclarar las dos partes de tu pregunta de forma clara y detallada, porque es un punto clave que confunde a mucha gente que viene de Linux/Mac.1. ¿.NET es software libre / open source? ¿Es como apt o brew?
- Sí, .NET es open source desde 2014 (con .NET Core) y completamente desde .NET 5 en adelante (incluyendo .NET 8, 9, 10 en 2026).
Todo el código está en GitHub bajo licencia MIT (muy permisiva): https://github.com/dotnet/runtime, aspnetcore, sdk, etc.
Microsoft lo mantiene, pero cualquiera puede contribuir, forkear, compilarlo o usarlo gratis (incluso en producción comercial). - Pero NO es un package manager como apt (Debian/Ubuntu), brew (macOS), chocolatey/scoop/winget (Windows), dnf (Fedora), pacman (Arch), etc.
Es decir:Cosa¿Qué es?¿Open source?Ejemplo de uso¿Es .NET?apt / brewGestor de paquetes (instala software, libs, herramientas)Síapt install git o brew install nodeNo.NET SDK / RuntimePlataforma de desarrollo + runtime (para ejecutar y compilar apps en C#/F#/etc.)Sídotnet new consolepara crear proyectoSíNuGetEl package manager DE .NET (para librerías .NET)Sídotnet add package Newtonsoft.JsonRelacionado, pero separadoResumen:- .NET no instala otras apps como apt/brew.
- .NET es la base para crear y ejecutar tus propias apps (o apps de terceros hechas en .NET).
- Para instalar .NET en sí mismo en Linux/Mac/Windows, usas apt/brew/winget (o descarga manual). Ejemplos actuales (2026):
- En Ubuntu: sudo apt install dotnet-sdk-10.0
- En macOS: brew install –cask dotnet-sdk
- En Windows: winget install Microsoft.DotNet.SDK.10
2. ¿Cómo se conecta PowerShell con .NET? (¡Aquí está la magia!)PowerShell está construido directamente sobre .NET desde sus inicios. No es una «conexión» que tengas que hacer manualmente; es nativo y profundo.
- PowerShell 7.x (el moderno, el que usas hoy en 2026) → Corre sobre .NET (el runtime moderno: .NET 8/9/10).
PowerShell 5.1 (el viejo de Windows) usaba .NET Framework, pero desde PowerShell 6+ es .NET puro. - ¿Qué significa esto en la práctica?
Todo en PowerShell es un objeto .NET (o se puede convertir fácilmente).
Puedes usar cualquier clase, método o propiedad de .NET directamente desde PowerShell sin instalar nada extra (siempre que el assembly esté cargado, que la mayoría lo están por defecto).Ejemplos prácticos que demuestran la integración:powershell# 1. Crear objetos .NET directamente $fecha = [System.DateTime]::Now # Clase estática de .NET $lista = New-Object System.Collections.Generic.List[string] # Lista genérica .NET # 2. Usar métodos .NET en objetos de PowerShell "hola mundo".ToUpper() # Método de System.String (.NET) # 3. Acceder a propiedades y métodos avanzados $proceso = Get-Process -Name notepad $proceso.MainModule.FileName # Propiedad .NET del objeto Process # 4. Cargar assemblies .NET si no están por defecto (raro) Add-Type -AssemblyName System.Windows.Forms $form = New-Object System.Windows.Forms.Form $form.Text = "Ventana desde PowerShell" $form.ShowDialog() # ¡GUI real con .NET Forms! # 5. En scripts avanzados: usar tipos .NET personalizados [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12Ventajas enormes gracias a esta integración:- PowerShell no es solo texto como bash/cmd: pasa objetos .NET por el pipeline (|).
Ej: Get-Process | Where-Object { $_.CPU -gt 100 } | Select-Object Name, CPU → todo son objetos .NET reales. - Puedes extender PowerShell con código C# inline:powershell
Add-Type @" public class Calculadora { public static int Sumar(int a, int b) { return a + b; } } "@ [Calculadora]::Sumar(5, 7) # → 12 - En entornos como SAS (salud), esto permite scripts que interactúan con APIs .NET, bases de datos (System.Data.SqlClient), XML/JSON nativo, etc.
- PowerShell no es solo texto como bash/cmd: pasa objetos .NET por el pipeline (|).
En resumen:
- .NET → Plataforma de desarrollo open source (no un package manager como apt/brew).
- PowerShell → Shell y lenguaje de scripting construido encima de .NET → por eso es tan potente y orientado a objetos.
No «se conecta»: PowerShell ES .NET en su núcleo.
Vamos a aclarar esto paso a paso, porque es un tema que confunde mucho al principio, especialmente cuando vienes de otros entornos.1. Las «librerías» en .NET se llaman assemblies (ensamblados)Un assembly es la unidad básica de código compilado en .NET. Contiene:
- Clases, métodos, interfaces, etc. (el código que escribes en C# o similar).
- Metadatos (qué versión es, dependencias, permisos de seguridad…).
- Recursos (imágenes, strings traducidos…).
Físicamente, un assembly es un archivo:
- .exe → Para aplicaciones que se ejecutan solas (como un programa principal).
- .dll → Para librerías reutilizables (Dynamic Link Library = Biblioteca de Enlace Dinámico). Esto es lo que más se usa como «librerías».
DLL = Dynamic Link Library. Es solo el nombre del archivo (extensión .dll). No es algo exclusivo de .NET; Windows lleva usando DLLs desde los años 90 para compartir código entre programas (ej. kernel32.dll, user32.dll del sistema). En .NET, la mayoría de las librerías son .dll que contienen assemblies.Ejemplos comunes de DLLs en .NET:
- System.dll (clases básicas como String, DateTime).
- System.Net.Http.dll (para hacer peticiones web).
- Newtonsoft.Json.dll (para JSON, muy popular).
- Una DLL que tú compiles: MiLibreria.dll.
2. ¿Todas las librerías están ya en tu PowerShell local? ¿Hay que descargarlas?No, no todas. PowerShell viene con un conjunto predeterminado de assemblies cargados automáticamente (los más comunes y básicos de .NET). Estos son parte del runtime de .NET que PowerShell usa.En PowerShell 7+ (el moderno, basado en .NET 8/9/10 en 2026):
- Se cargan automáticamente cosas como:
- System (String, List, DateTime, etc.)
- System.Core
- System.Management.Automation (lo que hace que PowerShell funcione)
- System.Net, System.IO, System.Collections.Generic…
- Muchas más (unas 100-200 por defecto, dependiendo de la versión).
Puedes ver los assemblies cargados en tu sesión actual con:
powershell
[AppDomain]::CurrentDomain.GetAssemblies() | Select-Object FullName | Sort-Object FullName
O más limpio:
powershell
Get-Process -Id $PID | Select-Object -ExpandProperty Modules | Where-Object { $_.FileName -like "*.dll" -and $_.FileName -like "*dotnet*" }
Pero hay miles de assemblies posibles en .NET (de Microsoft, de terceros via NuGet, o tuyos). Estos no vienen pre-cargados en PowerShell.Ejemplos de assemblies que no están por defecto y hay que cargar manualmente:
- System.Windows.Forms (para crear ventanas GUI).
- System.Drawing (para imágenes).
- Microsoft.SqlServer.Management.Smo (para SQL Server avanzado).
- Una DLL de un proveedor como Oracle.ManagedDataAccess.dll.
- Newtonsoft.Json (aunque PowerShell usa su propia versión interna a veces).
3. ¿Cómo usas una librería (assembly/DLL) que no está cargada por defecto?Tienes que cargarla explícitamente en tu sesión de PowerShell. Las formas principales son:
- Add-Type (la más común y recomendada):powershell
# Por nombre (si está en el GAC o en paths conocidos) Add-Type -AssemblyName System.Windows.Forms # Por ruta al archivo .dll Add-Type -Path "C:\MisDLLs\MiLibreria.dll"Después de esto, puedes usar las clases:powershell$form = New-Object System.Windows.Forms.Form $form.Text = "Ventana desde PowerShell" $form.ShowDialog() - Reflection (más manual, pero funciona cuando Add-Type falla):powershell
[System.Reflection.Assembly]::LoadFrom("C:\ruta\MiLibreria.dll") # o [System.Reflection.Assembly]::LoadFile("C:\ruta\MiLibreria.dll")
Una vez cargado el assembly:
- Las clases/tipos están disponibles.
- Puedes crear objetos con New-Object Nombre.Espacio.Clase.
- O usar tipos estáticos directamente: [Nombre.Espacio.Clase]::MetodoEstatico().
No necesitas «descargar» nada extra si el .dll ya está en tu máquina (viene con Windows, con .NET SDK, o lo instalaste via NuGet/otro medio). Solo lo cargas en memoria para esa sesión.Si es una librería de terceros (ej. via NuGet):
- Instalas el paquete con dotnet add package … (si estás en un proyecto).
- O descargas el .dll manualmente y lo cargas con Add-Type.
Resumen rápido
- .NET tiene librerías → Sí, son assemblies (.dll o .exe).
- ¿Están todas en tu PowerShell? → No, solo un conjunto base (suficiente para la mayoría de tareas sysadmin).
- ¿Hay que descargarlas? → No siempre; muchas vienen con Windows/.NET. Las que no, las instalas (NuGet, copia manual) y luego las cargas con Add-Type.
- DLL → Es el formato de archivo para librerías reutilizables (en .NET y en Windows en general). «Dynamic» porque se enlaza/carga en tiempo de ejecución, no en compilación.
En PowerShell, la integración con .NET es tan profunda que la mayoría del tiempo usas librerías sin darte cuenta (Get-Process usa System.Diagnostics.Process, que es .NET puro).
Vamos a resolver tus dudas de forma muy clara y ordenada, porque es un tema que parece complicado al principio, pero una vez que ves el flujo, es lógico.1. ¿Dónde están físicamente las librerías (.NET assemblies) que no vienen preinstaladas en tu Windows?No todas las librerías están en tu máquina desde el principio. Hay varios «lugares» donde se guardan según cómo lleguen:
- Las que vienen con Windows / .NET Runtime instalado (las básicas):
Están en carpetas del sistema, como:- C:\Windows\Microsoft.NET\assembly\GAC_MSIL (para .NET Framework 4+ y partes compartidas).
- O en subcarpetas de C:\Program Files\dotnet\shared\Microsoft.NETCore.App\… (para .NET moderno 6/7/8/9/10).
Estas son las que PowerShell carga automáticamente (por eso usas Get-Date, Get-Process, etc. sin hacer nada).
- Las de terceros o extras (las que «no tenías»):
Vienen principalmente vía NuGet (el gestor de paquetes de .NET, equivalente a apt/brew pero solo para código .NET).
Cuando instalas un paquete NuGet (ej. dotnet add package Newtonsoft.Json o en Visual Studio con el NuGet Package Manager):- Se descargan una sola vez en tu máquina, en la carpeta global:
Windows: C:\Users\TuUsuario\.nuget\packages
(ej. C:\Users\TuUsuario\.nuget\packages\newtonsoft.json\13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll) - Esta carpeta es como un «cache global» → todos tus proyectos la comparten (ahorra espacio y descargas).
- Es software libre/open source en la mayoría de casos (licencias MIT, Apache, etc.), igual que paquetes de apt/brew.
- Instaladores MSI/EXE de proveedores (ej. Oracle.DataAccess.dll → va al GAC o a una carpeta específica).
- Copia manual de .dll (tú la descargas o la compilas y la pones donde quieras).
- Se descargan una sola vez en tu máquina, en la carpeta global:
Resumen del punto común:
Tu máquina no tiene la librería → la descargas (vía NuGet = dotnet add package … o instalador) → el .dll se guarda en .nuget\packages (o GAC/carpeta custom) → luego la cargas en memoria con Add-Type o reflection para usarla en PowerShell.2. ¿Cómo funciona exactamente el proceso «de no tenerla → tenerla → usarla»?Paso a paso realista:
- Quieres usar una librería que no está por defecto (ej. System.Windows.Forms para hacer una ventana GUI, o Newtonsoft.Jsonpara JSON avanzado).
→ No está cargada automáticamente. - La consigues en tu máquina (descarga):
- Si es parte de .NET (como System.Windows.Forms.dll): ya está en C:\Windows\Microsoft.NET\assembly\… o en el shared framework.
- Si es NuGet (ej. Newtonsoft.Json): ejecutas dotnet add package Newtonsoft.Json en un proyecto, o lo instalas manualmente → el .dll aparece en C:\Users\TuUsuario\.nuget\packages\….
- La cargas en tu sesión de PowerShell (porque PowerShell no la carga sola): powershell
# Opción fácil (por nombre, si está en paths conocidos o GAC) Add-Type -AssemblyName System.Windows.Forms # Opción por ruta (cuando es NuGet o copia manual) Add-Type -Path "C:\Users\TuUsuario\.nuget\packages\newtonsoft.json\13.0.3\lib\netstandard2.0\Newtonsoft.Json.dll" - Ahora la usas (como si siempre hubiera estado ahí): powershell
# Ejemplo con Windows Forms (GUI) $form = New-Object System.Windows.Forms.Form $form.Text = "¡Ventana creada con .NET desde PowerShell!" $form.ShowDialog() # Ejemplo con Newtonsoft.Json (JSON bonito) $json = '{ "nombre": "Juan", "edad": 30 }' $obj = [Newtonsoft.Json.JsonConvert]::DeserializeObject($json) $obj.nombre # → "Juan"
3. ¿.exe vs .dll? ¿Cómo se usan?Ambos son assemblies (unidades de código .NET compilado), pero con propósitos distintos:
- .dll (Dynamic Link Library) → Librería / biblioteca reutilizable.
- No se ejecuta sola.
- Se carga en memoria por otro programa (PowerShell, una app .exe, etc.).
- Contiene clases, métodos, funciones que otros usan.
- Ejemplo: Newtonsoft.Json.dll → tú lo cargas y usas sus clases para parsear JSON.
- Uso típico: Add-Type -Path «ruta.dll» → luego New-Object Clase o [Clase]::Metodo().
- .exe (Executable) → Programa principal ejecutable.
- Sí se puede ejecutar solo (doble clic o desde consola: .\MiPrograma.exe).
- Puede contener código principal (static void Main()) + también clases reutilizables.
- En .NET, un .exe también es un assembly → puedes cargarlo como librería si quieres usar sus clases internas (aunque no es común).
Ejemplo raro pero posible:powershellAdd-Type -Path "C:\MiApp\MiPrograma.exe" # Carga el .exe como si fuera dll [MiPrograma.Espacio.Clase]::MetodoEstatico() - Uso normal: solo lo ejecutas, no lo cargas como librería.
En resumen:
- .dll = «pieza de Lego» que otros programas usan (cargada con Add-Type).
- .exe = «juguete completo» que se ejecuta solo, pero técnicamente también puede ser usado como Lego si lo cargas.