Administrar funciones y funciones de Windows Server con PowerShell

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

Enumere todas las funciones y funciones de Windows Server instaladas a través de PowerShell

Usuario el Get-WindowsFeature cmdlet para mostrar la lista de todas las funciones y características de Windows Server disponibles. Si lo ejecuta sin parámetros, verá la información sobre todos los componentes de Windows Server.

El nombre de un componente (Nombre para mostrar), su nombre de sistema (Nombre) y estado (Estado de instalación: Instalado, disponible o eliminado) son mostrados. La lista de roles y características parece un árbol con roles anidados similares al que ve cuando instala los roles en la GUI del Administrador del servidor. Para instalar y eliminar funciones o funciones mediante PowerShell, debe conocer los nombres de sus sistemas que aparecen en la Nombre columna.

Get-WindowsFeature obtenga todas las funciones y funciones disponibles en el servidor de Windows a través de PowerShell

Insinuación. Si un rol o una característica es Remoto, significa que sus archivos de instalación se eliminan del sote del componente del sistema (para reducir el tamaño de la carpeta WinSxS) y no podrá instalar el rol sin acceso directo a Internet o ISO de instalación de Windows Server (consulte el ejemplo con. Instalación 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á acceso directo a Internet)

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

Install-WindowsFeature DHCP -Source E:sourcessxs

Puede enumerar las características del servidor instaladas:

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

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

Get-WindowsFeature instalado

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

Get-WindowsFeature Name como web

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 instaladas, este servidor se utiliza como servidor de impresión.

Get-WindowsFeature instalado en Windows Server remoto

Puede usar el cmdlet Get-WindowsFeature para buscar servidores en su dominio, en los que está instalada la función específica. Puede buscar sus servidores en una unidad organizativa de Active Directory en particular mediante el cmdlet Get-ADComputer del módulo PowerShell ActiveDirectory o mediante la lista de servidores proporcionada ($servers = ('server1', 'server2')).

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

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=woshub,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.
busque el servidor de Windows en el dominio de anuncios con una función específica instalada

¿Cómo instalar funciones y funciones de Windows Server con PowerShell?

Para instalar roles y funciones en Windows Server, el Instalar-WindowsFeature Se utiliza el cmdlet.

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 características 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 licencia de RDS y las herramientas de administración remota de RDS, utilice el siguiente comando:

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

Install-WindowsFeature en varios servidores

Si agrega el –Restart , 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 Windows remotos?

Existe otra opción interesante a la hora de implementar servidores típicos. Puede instalar las funciones que desee en un servidor Windows de referencia y exportar la lista de roles instalados a un archivo CSV:

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

Exportación de todas las funciones de Windows instaladas a un archivo csv

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

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

importar archivo csv con roles y características en el servidor de Windows

Si una función o función ya está instalada, el comando volverá NoChangeNeeded y continúe con la instalación del siguiente rol.

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 un rol o función en Windows Server con PowerShell?

Para eliminar roles de Windows Server o recuperar, el Eliminar-WindowsFeature Se utiliza el cmdlet.

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

Remove-WindowsFeature Print-Server -Restart

Artículos Interesantes