Tutorial completo del comando Get-WindowsFeature en Windows Server

Última actualización: 14/08/2025
Autor: Isaac
  • Inventario y filtros precisos: lista, busca y segmenta roles/características con Get-WindowsFeature.
  • Automatización de despliegues: instala/desinstala (incluye herramientas) y trabaja en remoto con Invoke-Command.
  • Casos reales: preparación de IIS y promoción de AD DS con cmdlets de ADDSDeployment.
  • Estado deseado: impón Present/Absent con el recurso DSC WindowsFeature.

windows server 2025

Si administras Windows Server a diario, dominar Get-WindowsFeature marca la diferencia entre perder tiempo clicando por Server Manager o automatizar en segundos el inventario y despliegue de roles y características. En este tutorial vas a encontrar, sin rodeos, cómo listar, filtrar, instalar, desinstalar y trabajar en remoto con este cmdlet, con ejemplos reales que encajan en tu día a día.

Además, conectaremos el uso de Get-WindowsFeature con tareas típicas como desplegar IIS o Active Directory Domain Services (AD DS), veremos cómo consultar la estructura del bosque, y cerraremos con una sección completa sobre el recurso DSC WindowsFeature para imponer estado deseado (instalado o no) con propiedades como Ensure o IncludeAllSubFeature. Incluyo comandos, filtros y trucos para que lo puedas aplicar tal cual.

Qué es Get-WindowsFeature y cuál es su sintaxis

Get-WindowsFeature es el cmdlet que consulta los roles y características disponibles e instalados en Windows Server (desde Windows Server 2008 en adelante). Muestra nombre interno, nombre para mostrar y estado de instalación, y acepta filtros y ejecución contra equipos remotos.

Sintaxis habitual del cmdlet, incluyendo parámetros clave como -Name, -ComputerName, -Credential, -LogPath o -Vhd:

Get-WindowsFeature  <String[]> ]     

Pista útil: el parámetro -LogPath permite volcar resultados a fichero de registro, ideal para auditorías o CI/CD.

Interpretar la salida y filtrar como un/a pro

La salida marca con las características ya instaladas y con las disponibles. Además, la columna InstallState vale “Installed” o “Available”. Puedes filtrar por cualquiera de estas propiedades.

Listado completo sin filtros (y sí, puede ser largo):

Get-WindowsFeature

Filtrar por comodines en el nombre interno para encontrar, por ejemplo, todo lo que contenga DHC (como DHCP):

Get-WindowsFeature -Name *DHC*

Quedarte solo con lo instalado usando el estado de instalación, muy útil para inventario:

Get-WindowsFeature | Where-Object { $_.InstallState -eq "Installed" }

Listar lo que está disponible para instalar (no instalado):

Get-WindowsFeature | Where-Object { $_.InstallState -eq "Available" }

Buscar por coincidencia exacta del nombre interno (por ejemplo, el rol DNS) o por nombre a mostrar en español:

# Por Name exacto
Get-WindowsFeature | Where-Object { $_.Name -eq "DNS" }

# Por DisplayName exacto
Get-WindowsFeature | Where-Object { $_.DisplayName -eq "Servidor DNS" }

Instalar y desinstalar roles y características desde PowerShell

Para instalar, usa Install-WindowsFeature indicando el nombre del rol o característica. Si quieres incluir herramientas de administración asociadas, añade -IncludeManagementTools.

# Ejemplo: instalar IIS con sus herramientas de administración
Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Para desinstalar, utiliza Uninstall-WindowsFeature (cuando corresponda) o vuelve a llamar a Install con Ensure = Absent en DSC, como veremos luego. También puedes consultar tutoriales relacionados en gestionar usuarios desde PowerShell.

Registra la operación con -LogPath si necesitas un rastro para cumplir con requisitos de auditoría:

Install-WindowsFeature -Name Desktop-Experience -LogPath C:\logs\install-desktop-experience.log

Consultas remotas: controlar servidores a distancia

Get-WindowsFeature puede apuntar a un único servidor remoto con -ComputerName, perfecto para revisar el estado desde tu estación de trabajo administrativa:

Get-WindowsFeature -ComputerName SRV-CORE-01

Si necesitas consultar varios servidores a la vez, apoyarte en Invoke-Command te da la flexibilidad y además te devuelve en la salida el origen de cada resultado:

Invoke-Command -ComputerName SRV-A,SRV-B -ScriptBlock { Get-WindowsFeature ADRMS, RemoteAccess }

También puedes buscar con comodines de forma remota para localizar familiares de características como copias de seguridad, clustering, etc.:

Invoke-Command -ComputerName SRV-CORE-01 -ScriptBlock { Get-WindowsFeature *Backup* }

Ejemplo práctico 1: preparar y gestionar un IIS con PowerShell

Comienza comprobando qué componentes de IIS hay presentes y cuáles faltan, con una consulta filtrada por comodines en el nombre:

Get-WindowsFeature -Name *IIS*

Instala el servidor web y sus herramientas en un único disparo para no tener que volver a añadir componentes de administración:

Install-WindowsFeature -Name Web-Server -IncludeManagementTools

Explora qué cmdlets de administración de IIS tienes disponibles tras la instalación para automatizar sitios, pools, bindings, etc.:

Get-Command -Module IISAdministration

Crea la carpeta del nuevo sitio y su index.html con los cmdlets estándar de PowerShell para el sistema de archivos:

New-Item -ItemType Directory -Path 'C:\inetpub\wwwroot\MiSitio'
New-Item -ItemType File -Path 'C:\inetpub\wwwroot\MiSitio\index.html'

Despliega el sitio y fija su binding para servir en un puerto concreto (por ejemplo, 8080):

New-IISSite -Name 'MiSitio' -PhysicalPath 'C:\inetpub\wwwroot\MiSitio' -BindingInformation '*:8080:'

Arranca, detén o consulta el estado del sitio según necesites, y usa -WhatIf para validar operaciones destructivas como la eliminación:

Start-IISSite -Name 'MiSitio'
Stop-IISSite -Name 'MiSitio'
(Get-IISSite -Name 'MiSitio').Bindings
Remove-IISSite -Name 'MiSitio' -WhatIf

Ejemplo práctico 2: comprobar roles en Windows Server 2022 y el estado de AD DS

En servidores sin GUI (Server Core) es habitual salir de sconfig y trabajar en consola. Importa el módulo de Active Directory si vas a realizar comprobaciones del bosque:

Import-Module ActiveDirectory

Consulta roles o características de un equipo concreto para confirmar si AD DS y DNS están ya presentes (las instalación de AD DS suele traer DNS):

Get-WindowsFeature -ComputerName server-2022-b

Obtén la configuración del bosque (nombre del bosque, dominios, GC, etc.) con un cmdlet directo y sin parámetros obligatorios, además de consultar la estructura de tu infraestructura con recursos relacionados en migrar roles y servicios a otro servidor Windows Server.

Get-ADForest

Si trabajas con varias máquinas, filtra o navega por la salida para localizar “Servicios de dominio de Active Directory” y “Servidor DNS”.

  Cómo activar y personalizar el menú de pestañas estilo Ribbon en LibreOffice

Despliegue de AD DS con PowerShell: de cero a bosque, dominios y controladores

Empieza instalando el rol y las herramientas de AD DS para disponer de cmdlets y utilidades GUI (Usuarios y equipos, ADAC, etc.):

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

Descubre los cmdlets del módulo ADDSDeployment para automatizar promociones e instalaciones. En este proceso también podrás usar recursos en promover un servidor a controlador de dominio.

Get-Command -Module ADDSDeployment

Pide credenciales de forma segura en consola y usa cadenas seguras para la contraseña de DSRM cuando corresponda:

# Credenciales
$cred = Get-Credential

# Solicitud de contraseña DSRM como SecureString
$dsrm = Read-Host -Prompt 'DSRM Password:' -AsSecureString

# (No recomendado) Texto plano a SecureString
ConvertTo-SecureString "Password1" -AsPlainText -Force

Valida requisitos previos con los cmdlets de prueba (las variantes Test-*) antes de ejecutar la instalación definitiva.

Crear un bosque nuevo con solicitud interactiva de la contraseña de DSRM, considerando su uso en :

Install-ADDSForest -DomainName 'corp.contoso.com'

Configurar niveles funcionales, delegación DNS y rutas de BD/SYSVOL/Logs en la creación del bosque:

Install-ADDSForest -DomainName corp.contoso.com -CreateDNSDelegation -DomainMode Win2008 -ForestMode Win2025 -DatabasePath 'D:\NTDS' -SYSVOLPath 'D:\SYSVOL' -LogPath 'E:\Logs'

Añadir un dominio secundario o de árbol con Install-ADDSDomain definiendo credenciales, sitio, DC origen y rutas de modo que se despliega toda la estructura necesaria.

RODC en dos fases: cuenta preconfigurada y asociación

Para un RODC escalonado, crea primero la cuenta del controlador de dominio de solo lectura con el cmdlet adecuado y delega administración si hace falta:

Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName RODC1 -DomainName corp.contoso.com -SiteName Boston -DelegatedAdministratorAccountName AdminUser

En el servidor que se unirá a esa cuenta, sin unir al dominio todavía, instala el rol y completa la promoción usando la cuenta existente:

Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-ADDSDomainController -DomainName corp.contoso.com -SafeModeAdministratorPassword (Read-Host -Prompt 'DSRM Password:' -AsSecureString) -Credential (Get-Credential Corp\AdminUser) -UseExistingAccount

Puedes confirmar con Y o automatizar con -Confirm para suprimir preguntas interactivas en scripting.

Instalación de AD DS mediante GUI (Server Manager): pasos esenciales

Si prefieres el asistente gráfico, Server Manager cubre todo el ciclo: agregar rol AD DS y, después, promocionar el servidor a controlador de dominio con el asistente de configuración.

  1. Inicia “Add Roles and Features”, selecciona instalación basada en roles y el servidor destino.
  2. Marca “Active Directory Domain Services”, acepta la adición de características y continúa.
  3. Instala y, al terminar, pulsa “Promote this server to a domain controller” para abrir el asistente de configuración.
  4. En Deployment Configuration, escoge: añadir DC a dominio existente, crear dominio secundario, crear dominio de árbol, o crear un bosque nuevo.
  5. En Domain Controller Options, selecciona DNS, GC o RODC según proceda, elige el sitio, define la contraseña DSRM.
  6. Si instalas DNS, en DNS Options decide si actualizar la delegación (requiere permisos en la zona primaria).
  7. Para RODC, en RODC Options, puedes delegar administración y ajustar la Password Replication Policy.
  8. En Additional Options, valida el NetBIOS del dominio o el DC de replicación. Con IFM indica la ruta a medios (no válido para el primer DC del dominio).
  9. En Paths, define ubicaciones de base de datos, logs y SYSVOL (o acepta las rutas predeterminadas).
  10. En Preparation Options, usa credenciales con permisos para ejecutar adprep.
  11. Revisa opciones, exporta el script si quieres y ejecuta la verificación de requisitos previos.
  12. Instala y deja que el servidor se reinicie para completar la promoción.
  ¿Cuál es la mejor manera de cuidar la batería de mi iPhone?

En escenarios RODC con cuenta precreada, el asistente permite “Usar cuenta RODC existente”, seleccionar IFM, rutas y finalizar con los chequeos.

Recurso DSC WindowsFeature: imponer estado deseado

Más allá del cmdlet, el recurso DSC WindowsFeature garantiza que un rol o característica esté presente o ausente en uno o varios servidores, lo que encaja en infraestructuras totalmente automatizadas.

Sinopsis: instalar o desinstalar un rol o característica de Windows de forma declarativa.

Sintaxis del recurso dentro de una configuración DSC:

WindowsFeature  #ResourceName
{
  Name                   = 
  ]
  ]]
   { Absent | Present }]
  ]
  ]
  ]
}

Requisitos: Windows Server 2008 o superior en destino y acceso a los módulos de PowerShell DISM y ServerManager.

Propiedad clave Name: usa el nombre interno del rol o característica (no el de mostrar). Para listar opciones válidas en un equipo, usa , complementando así el conocimiento que necesitas para automatizar la gestión de roles y características.

Otras propiedades relevantes en escenarios reales:

  • Credential: credencial para agregar o quitar el rol como esa identidad. Tipo PSCredential.
  • Ensure: “Present” para instalar, “Absent” para quitar. Valor predeterminado: Present.
  • IncludeAllSubFeature: instala todas las subcaracterísticas si es $true. Si Ensure = Absent, elimina subcaracterísticas igualmente.
  • LogPath: ruta a fichero de log de instalación o desinstalación.

Propiedad de solo lectura DisplayName: nombre para mostrar que el recurso obtiene tras aplicar el estado.

Aprender más rápido: ayuda actualizable y ejemplos integrados

Mantén la ayuda al día con Update-Help y luego usa Get-Help para ver sinopsis y ejemplos de cualquier cmdlet, incluido el que nos ocupa:

Update-Help
Get-Help Get-WindowsFeature -Examples

Esta combinación evita perder tiempo en búsquedas web cuando solo quieres ejemplos listos para copiar y pegar.

Ámbito y productos afectados

Get-WindowsFeature y las operaciones aquí descritas aplican a Windows Server (2008 y posteriores). Algunas referencias específicas mencionan Microsoft Windows Server 2012 y 2012 R2 como productos afectados.

En entornos de fabricante, la funcionalidad se contempla en amplias gamas de servidores empresariales (por ejemplo, familias Dell PowerEdge como C4130, C4140, C6400, entre otras), lo que refuerza su aplicabilidad en entornos heterogéneos de datacenter. Si quieres ampliar tus conocimientos, puedes consultar también recursos en sobre servidores y ubicaciones.

  Cómo hacer el doblaje de vídeos de TikTok - Sincronización de labios

Con estas piezas en la mano, inventariar y estandarizar roles con Get-WindowsFeature, desplegar IIS o promover AD DS pasa a ser tareas repetibles, trazables y fáciles de automatizar; y, si quieres garantizar el estado, el recurso DSC WindowsFeature completa el ciclo con una capa declarativa robusta.

migrar roles y servicios a otro servidor con windows server-5
Artículo relacionado:
Guía completa para migrar roles y servicios a otro servidor Windows Server

Deja un comentario