Búsqueda de sitios web

Administración de roles y funciones de servidor de Windows con PowerShell


En Windows Server 2012R2/2016/2019, puede usar la consola gráfica del Administrador del servidor para instalar y eliminar funciones y características del servidor. Sin embargo, en la mayoría de los casos puedes hacer lo mismo desde la consola de PowerShell mucho más rápido. En este artículo, consideraremos cómo administrar roles y funciones en las versiones modernas de Windows Server con PowerShell.

Enumere todos los roles y funciones de Windows Server instalados a través de PowerShell

Usuario el

Get-WindowsFeature

cmdlet para mostrar la lista de todas las funciones y funciones de Windows Server disponibles. Si lo ejecuta sin parámetros, verá la información sobre todos los componentes de Windows Server.

Se muestra el nombre de un componente (Nombre para mostrar), el nombre de su sistema (Nombre) y el estado (Estado de instalación: Instalado, Disponible o Eliminado). La lista de roles y características parece un árbol con los roles anidados similar al que ve cuando instala los roles en la GUI del Administrador del servidor. Para instalar y eliminar cualquier función o función mediante PowerShell, debe conocer los nombres de sus sistemas que aparecen en la columna Nombre.

Sugerencia. Si se elimina una función o función, significa que sus archivos de instalación se eliminan del sitio de componentes del sistema (para reducir el tamaño de la carpeta WinSxS) y no podrá instalar la función sin Acceso directo a Internet o instalación de Windows Server ISO (ver el ejemplo con la instalación de .Net 3.5).

Puede eliminar roles o componentes de su imagen en línea de esta manera:

Uninstall-WindowsFeature -Name DHCP -Remove

Para instalar una función DHCP eliminada, use este cmdlet:

Install-WindowsFeature DHCP

(necesitará el acceso directo a Internet)

O puede restaurar los archivos binarios del componente desde su imagen ISO de Windows Server:

Install-WindowsFeature DHCP -Source E:\sources\sxs

Puede enumerar las características del servidor instalado:

Get-WindowsFeature | Where-Object {$_. installstate -eq "installed"} | ft Name,Installstate

Según la captura de pantalla a continuación, este servidor se utiliza como un servidor de archivos (los roles FileAndStorage-Services, Storage-Services están instalados). La mayoría de los demás componentes se utilizan para administrar o monitorear el servidor.

Si no conoce exactamente el nombre del rol, puede utilizar comodines. Por ejemplo, para verificar qué componentes web del rol de IIS están instalados, ejecute este comando (la sintaxis está un poco abreviada):

Get-WindowsFeature -Name web-* | Where installed

Puede obtener la lista de componentes instalados en un servidor Windows remoto:

Get-WindowsFeature -ComputerName ny-spool1 | Where installed | ft Name,Installstate

A juzgar por las funciones de Servicios de impresión y Servidor de impresión instalados, este servidor se utiliza como servidor de impresión.

Puede usar el cmdlet Get-WindowsFeature para buscar servidores en su dominio, en los que está instalado el rol específico. Puede buscar sus servidores en una unidad organizativa de Active Directory en particular mediante el cmdlet Get-ADComputer del módulo ActiveDirectory de PowerShell o mediante la lista de servidores proporcionada (

$servers = ('server1', 'server2')

).

Por ejemplo, desea buscar todos los servidores de archivos con la función FileAndStorage-Services en la unidad organizativa de AD especificada (estoy usando Visual Studio Code como editor de PoweShell). Utilice el siguiente guión:

import-module activedirectory
$Servers=get-adcomputer -properties * -Filter {Operatingsystem -notlike "*2008 R2*" -and enabled -eq "true" -and Operatingsystem -like "*Windows Server*"} -SearchBase ‘OU=Servers,OU=UK,DC=a-d,DC=com’ |select name
Foreach ($server in $Servers)
{
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
}

En el resultado, obtendrá la lista de servidores en los que está instalada la función específica.

¿Cómo instalar funciones y funciones de servidor de Windows mediante PowerShell?

Para instalar funciones y funciones en Windows Server, se utiliza el cmdlet Install-WindowsFeature.

Para instalar la función del servidor DNS y las herramientas de administración (incluido el módulo Powershell DNSServer) en el servidor actual, ejecute este comando:

Install-WindowsFeature DNS -IncludeManagementTools

De forma predeterminada, el cmdlet instala todas las funciones y funciones dependientes. Para mostrar la lista de dependencias antes de la instalación, use la opción

WhatIf
Install-WindowsFeature -Name UpdateServices -WhatIf

Por ejemplo, para instalar la función WSUS, también deberá instalar algunos componentes de IIS.

What if: Continue with installation?
What if: Performing installation for "[Windows Server Update Services] Windows Server Update
What if: Performing installation for "[Windows Server Update Services] WID Database".
What if: Performing installation for "[Windows Server Update Services] WSUS Services".
What if: Performing installation for "[Web Server (IIS)] Windows Authentication".
What if: Performing installation for "[Web Server (IIS)] Dynamic Content Compression".
What if: Performing installation for "[Web Server (IIS)] Performance".
What if: Performing installation for "[Web Server (IIS)] Static Content".
What if: Performing installation for "[Windows Internal Database] Windows Internal Database".
What if: The target server may need to be restarted after the installation completes.

Para instalar la función de host de sesión de escritorio remoto, la función de licencias de RDS y las herramientas de administración remota de RDS, use el siguiente comando:

Install-WindowsFeature -ComputerName lon-rds3 RDS-RD-Server, RDS-Licensing -IncludeAllSubFeature -IncludeManagementTools -Restart

Si agregas el

-Restart

parámetro, su servidor se reiniciará automáticamente si es necesario.

También puede instalar un componente con el siguiente comando. Por ejemplo, para instalar la función del servidor SMTP:

Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature

¿Cómo implementar funciones en varios servidores remotos de Windows?

Hay otra opción interesante cuando implementa servidores típicos. Puede instalar las funciones que desee en un servidor Windows de referencia y exportar la lista de funciones instaladas a un archivo CSV:

Get-WindowsFeature | where{$_.Installed -eq $True} | select name | Export-Csv C:\PS\InstalledRoles.csv -NoTypeInformation -Verbose

Entonces podrá usar este archivo CSV para instalar el mismo conjunto de roles en otros servidores típicos:

Import-Csv C:\PS\Roles.csv | foreach{ Install-WindowsFeature $_.name }

Si una función o función ya está instalada, el comando devolverá NoChangeNeeded y continuará con la instalación de la siguiente función.

O para instalar el mismo conjunto de roles en varios servidores remotos, puede usar este comando:

$servers = ('ny-rds1', 'ny-rds2',’ny-rds3’,’ny-rds4’)
foreach ($server in $servers) {Install-WindowsFeature RDS-RD-Server -ComputerName $server}

¿Cómo desinstalar una función o función en Windows Server con PowerShell?

Para eliminar funciones o funciones de Windows Server, se utiliza el cmdlet Remove-WindowsFeature.

Por ejemplo, para eliminar una función de servidor de impresión, ejecute el comando:

Remove-WindowsFeature Print-Server -Restart

Artículos relacionados