Windows Server 2016 configuración inicial con PowerShell

Ya disponemos de la versión final de Windows Server 2016 y aquí os presento un pequeño script de PowerShell pensado para realizar una configuración inicial del equipo tras efectuar la instalación.

El script está pensado para utilizarse linea a linea, por lo tanto no se utilizan variables.

También podemos realizar un "copiar-pegar" de todo el código dentro de una ventana de PowerShell y funciona sin problemas.

Recordemos que debemos abrir la ventana de PowerShell como administrador.

La idea de este script es facilitar la configuración iniciar de Windows Server 2016 y así facilitar el desligue de todo tipo de laboratorios.

En entornos de laboratorio, muchas veces no disponemos de herramientas que nos ayudan a desplegar configuraciones como las GPO (Group policy objects), o no disponemos de DHCP para automatizar la configuración TCP/IP de los interfaces de red, entre otros. 

Veamos el script, con valores de ejemplo:

Win2016 configuración inicial: La configuración a realizar será la siguiente:


* Nombre del equipo: S1

* Configuración TCP/IP interface Ethernet0:

IP: 172.19.0.10
Máscara: 255.255.0.0
Puerta de enlace: 172.19.0.1
DNS: 172.19.0.11

* Sin IPv6.

* Sin Windows Update automático.

* Desinstalar Windows Defender.

* Quitar imagen de fondo en el inicio de sesión.

* Deshabilitar el firewall de Windows.

* Reiniciar el equipo.   

Win2016 configuración inicial: El código del script de PowerShell es el siguiente:


Clear-Host

#########################################################################
# Configurador inicial Windows Server 2016 - SYSADMIT.com
#########################################################################

#Renombro el equipo sin reiniciar.
Rename-Computer -NewName S1

#Elimino configuración de IPs estáticas en todos los interfaces de red, también incluye DNS Servers
get-netadapter name ethernet* | Remove-NetIPAddress -Confirm:$false

#Elimino configuración de puertas de enlace en todos los interfaces de red.
get-netadapter name ethernet* |Remove-NetRoute -Confirm:$false

#Configuramos una IP estática para el adaptador de red Ethernet0.
get-netadapter name Ethernet0 |new-netipaddress addressfamily IPv4 ipaddress 172.19.0.10 prefixlength 16 type unicast defaultgateway 172.19.0.1

#Configuramos IP DNS cliente para el adaptador de red Ethernet0
get-netadapter name Ethernet0 |set-dnsclientserveraddress serveraddresses 172.19.0.11

#Deshabilitamos IPv6 (desmarcando el check) para el adaptador de red Ethernet0
get-netadapter name Ethernet0 |Disable-NetAdapterBinding -ComponentID ms_tcpip6

#Deshabilito Windows Update
New-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' -Name 'NoAutoUpdate' -Value 1

#Desinstalo Windows Defender
Uninstall-WindowsFeature -Name Windows-Defender -confirm:$false

#Quito la imagen de fondo en el login
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\System' -Name 'DisableLogonBackgroundImage' -Value '1'

#Deshabilito firewall
Get-NetFirewallProfile | Set-NetFirewallProfile Enabled False

#Reinicio equipo
Restart-Computer -force

#Fin.

Win2016 configuración inicial: Funcionamiento del script


- Para cambiar de nombre el equipo, utilizamos el cmd-let: Rename-Computer, podríamos utilizar el parámetro -Restart para realizar el reinicio en ese momento.

- Para cambiar el TCP/IP del adaptador de red Ethernet0, en primer lugar con los cmd-lets: Remove-NetIPAddress y Remove-NetRoute, eliminamos cualquier configuración anterior de direcciones IP asignadas manualmente. 

En teoría este paso no sería necesario ya que si tenemos una instalación de Windows recién hecha, la configuración de TCP/IP de los adaptadores de red estará en "Automático", sin embargo, si queremos volver a ejecutar todo el script, será imprescindible realizar el borrado de la configuración de IPs estáticas.

Para obtener la lista de interfaces, se utiliza el cmd-let: get-netadapter –name. Fijémonos que el script usa un comodín cuando queremos especificar todos los interfaces.

- Cuando establecemos la máscara de subred del interfaz de red, en el ejemplo, utilizamos: –prefixlength 16 que corresponde a: 255.255.0.0. El formato para especificar la máscara es: CIDR (Classless Inter-Domain Routing). Podemos ver su funcionamiento y equivalencias en el siguiente post:

TCPIP: CIDR máscara IPv4 (SYSADMIT.com)

- Para desactivar IPv6, utilizamos el cmd-let: Disable-NetAdapterBinding, sin embargo existen métodos alternativos. Podemos ver el detalle, en el siguiente post:

Windows: Deshabilitar ipv6 (SYSADMIT.com)

- Existen elementos, como Windows Update, o mostrar imagen en la pantalla de login, que para configurarse se debe utilizar una clave en el registro. Para establecer claves en el registro utilizando PowerShell, se utiliza el cmd-let: New-ItemProperty

- Desinstalamos el antivirus que integra Windows Server 2016 con el cmd-let: Uninstall-WindowsFeature, otra opción hubiese sido, desactivarlo.

- Al deshabilitar el firewall, lo hacemos para todos los perfiles.

---

Si disponéis de algún cmd-let útil para realizar una configuración inicial de Windows Server 2016, indicarlo en forma de comentario y lo añadiré.

¡Gracias! y espero que os sirva de ayuda.

No hay comentarios:

Publicar un comentario