Servidores Windows

Administrarlo en remoto

Lección 3 de 8 · 15 min

Nadie administra un servidor sentado delante

Los servidores viven en un armario, en otra sede o en un centro de datos a miles de kilómetros. La administración es siempre remota, y Windows Server ofrece tres formas de hacerla.

No compiten entre sí: cada una sirve para algo distinto, y la clave está en saber cuándo usar cuál.

Las tres vías

Escritorio remoto (RDP)

Te da la pantalla del servidor como si estuvieras delante.

Cómodo para lo visual y para lo que se hace una vez. Consume una sesión gráfica entera y no deja constancia de qué hiciste.

Administrador del servidor

Una consola que administra varios servidores a la vez desde una sola ventana, sin abrir sesión en cada uno.

Es el punto medio: gráfico, pero ya centralizado.

PowerShell remoto

Ejecuta comandos en uno o en cien servidores desde tu propia terminal.

Es lo único que se puede guardar, repetir y revisar, y es donde acaba yendo todo el trabajo serio.

Escritorio remoto: útil y limitado

RDP es lo primero que aprende todo el mundo, y está bien: para instalar una aplicación con asistente o mirar algo puntual, es lo natural.

El problema aparece cuando se convierte en la única forma de trabajar. Tres personas administrando por RDP son tres sesiones gráficas consumiendo memoria, y ninguna deja registro de qué tocó.

Activar el escritorio remoto
# Permitir conexiones de escritorio remoto
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' `
  -Name "fDenyTSConnections" -Value 0

# Abrirlo en el firewall
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

# Comprobar quien puede entrar
Get-LocalGroupMember -Group "Remote Desktop Users"

Activarlo en una red interna es una cosa; abrirlo a internet es otra muy distinta. Un RDP accesible desde internet es la vía de entrada número uno en los ataques de secuestro de datos contra servidores Windows.

Se llega por VPN o por una pasarela, nunca publicando el puerto. La lección 8 entra en el detalle, pero conviene saberlo desde ahora mismo: es el error más caro del curso.

PowerShell remoto: lo que de verdad escala

La diferencia se ve con un ejemplo. Si te piden comprobar el espacio en disco de doce servidores, por RDP son doce sesiones, doce ventanas y quince minutos. Con PowerShell es una línea, y además la puedes guardar para repetirla el mes que viene.

Las dos formas de trabajar en remoto
# 1. Sesion interactiva: te "metes" en un servidor
Enter-PSSession -ComputerName SRV-ARCHIVOS -Credential (Get-Credential)
# ... trabajas como si estuvieras alli ...
Exit-PSSession

# 2. Ejecutar lo mismo en VARIOS servidores a la vez
Invoke-Command -ComputerName SRV-ARCHIVOS, SRV-WEB, SRV-BD -ScriptBlock {
    Get-Volume | Where-Object DriveLetter -eq 'C' |
        Select-Object @{n='Servidor';e={$env:COMPUTERNAME}},
                      @{n='LibreGB';e={[math]::Round($_.SizeRemaining/1GB,1)}}
}
Resultado
Servidor        LibreGB
--------        -------
SRV-ARCHIVOS       12.4
SRV-WEB            48.9
SRV-BD              3.1

Esa es la lección entera en una salida: el problema de SRV-BD -3,1 GB libres- aparece sin haber abierto ninguna sesión, y el comando queda guardado para volver a lanzarlo. Fíjate en $env:COMPUTERNAME: sin él no sabrías qué línea es de qué servidor.

Dejar PowerShell remoto funcionando

  1. 1. Habilitarlo en el servidor

    Enable-PSRemoting -Force

    Configura el servicio de administración remota, lo arranca y crea la regla de firewall. En Windows Server suele venir ya activo.

  2. 2. Comprobar desde tu equipo

    Test-WSMan -ComputerName SRV-ARCHIVOS

    Si responde con datos del protocolo, la vía está abierta. Si da error, es firewall o el servicio no está en marcha.

  3. 3. Si NO hay dominio, declarar la confianza

    Fuera de un dominio, tu equipo no confía en ese servidor por defecto. Hay que añadirlo a la lista de equipos de confianza en tu máquina.

    Set-Item WSMan:\localhost\Client\TrustedHosts -Value "SRV-ARCHIVOS"

  4. 4. Reutilizar la sesión

    Si vas a lanzar varios comandos, crea la sesión una vez y reutilízala: $s = New-PSSession -ComputerName SRV-ARCHIVOS, y luego Invoke-Command -Session $s.

    Es más rápido que abrir y cerrar conexión en cada comando.

El fallo que desconcierta a todo el mundo la primera vez: estás conectado a un servidor y desde ahí intentas alcanzar un recurso de red -una carpeta compartida de otra máquina-, y te da acceso denegado aunque tus credenciales sean correctas.

No es un error tuyo: por seguridad, tus credenciales no se reenvían de un servidor a un tercero. Se llama el problema del segundo salto. La salida sencilla es ejecutar el comando directamente contra la máquina de destino, en vez de encadenar saltos.

Los comandos equivalentes

Si vienes del lado Linux, esta tabla ahorra media lección. Los conceptos son los mismos con otros nombres.

Empareja cada comando con lo que hace

Arrastra cada comando a su descripción, o toca uno y luego su espacio.

  1. Lista los servicios y su estado, como systemctl en Linux.
  2. Muestra los procesos en marcha y lo que consumen.
  3. Dice cuánto espacio libre queda en cada unidad.
  4. Consulta el registro de eventos: el equivalente de leer los registros del sistema.
  5. Ejecuta el mismo bloque de comandos en varios servidores a la vez.

Cómo se aprende PowerShell sin memorizar

PowerShell tiene miles de comandos y nadie se los sabe. Lo que sí tiene es una estructura regular: verbo, guion y sustantivo. Get-Service, Stop-Service, New-LocalUser. Si conoces el patrón, adivinas el comando.

Los tres comandos para descubrir los demás
# Buscar comandos por tema
Get-Command *Service*

# Ver la ayuda con ejemplos reales
Get-Help Get-Service -Examples

# Ver TODO lo que devuelve un comando (sus propiedades)
Get-Service | Get-Member

Get-Member es el que más se subestima. PowerShell no devuelve texto: devuelve objetos con propiedades, y ese comando te enseña cuáles. Es la diferencia entre recortar texto -como se hace en Linux- y preguntar directamente por el dato que quieres.

Dudas frecuentes

Un script no se ejecuta: «no está firmado digitalmente»

Es la política de ejecución, que viene restringida a propósito. Get-ExecutionPolicy dice cómo está.

Para un laboratorio, Set-ExecutionPolicy RemoteSigned permite los scripts locales y exige firma en los descargados. Es un freno contra ejecutar por accidente lo que llega por correo, no una barrera de seguridad seria.

¿PowerShell 5.1 o PowerShell 7?

Windows Server trae 5.1 integrado y es con el que se administra el sistema. PowerShell 7 se instala aparte, es multiplataforma y convive con el anterior.

Para este curso, el que viene incluido sobra.

¿Y Windows Admin Center?

Es una consola web que administra varios servidores desde el navegador. Muy cómoda, y una buena alternativa gráfica al RDP.

Se instala aparte. El curso no depende de ella para que lo aprendido funcione en cualquier servidor.

Administrar Server Core sin ventanas

Exactamente igual: Enter-PSSession o Invoke-Command. En la propia consola de la máquina hay además SConfig, un menú de texto para lo básico -nombre, red, actualizaciones-.

Y las herramientas gráficas de tu equipo pueden conectarse a él sin problema.

Compruébalo tú mismo

Tienes que comprobar el espacio en disco de doce servidores. ¿Qué usas?

Estás conectado a un servidor y desde ahí no puedes acceder a una carpeta compartida de otra máquina, con credenciales correctas. ¿Qué pasa?

¿Por qué no conviene administrar todo por escritorio remoto?

Lo que sigue

Ya administras el servidor sin sentarte delante. La siguiente lección es repartir el acceso: usuarios, grupos y la trampa de tener dos capas de permisos -los del recurso compartido y los del sistema de archivos- que se combinan y dejan a la gente fuera sin que se entienda por qué.

Siguiente: Usuarios, grupos y permisos NTFS

Continuar ← Montar el laboratorio