Añadir máquinas a un dominio Windows con Powershell | Algo de Linux

sábado, 5 de noviembre de 2016

Añadir máquinas a un dominio Windows con Powershell

En un post de octubre os mostré cómo podemos añadir máquinas a un dominio de Windows. En esta ocasión vamos a ver cómo podemos hacer lo mismo utilizando un script de PowerShell, un lenguaje de scripting y shell de línea de comandos creado por Microsoft y diseñado especialmente para la administración del sistema.

Todos nuestros equipos de Infolab vienen con sistema de arranque dual Windows/Xubuntu. La parte de administración de Ubuntu e inicio de sesión se encuentra resuelta, pero en Windows no hay nada resuelto. Los usuarios deben iniciar sesión con el mismo usuario local, con todos los problemas que ello acarrea y los administradores debemos gestionar las máquinas de forma individual con todo el trabajo que ello supone.

Alguien decidió que implantar Windows sin planificar, diseñar el sistema y sin contar con los técnicos era una buenísima idea, y, por desconocimiento o incompetencia, creyó que con "tirar" el sistema operativo encima de las máquinas era suficiente. Ahora con las máquinas desplegadas, y tenemos que buscar soluciones para dar respuesta a los usuarios sobre cosas que ni tan si quiera se han planificado, algo que resulta increíblemente complicado porque no tenemos laboratorios de pruebas.

Enfin, a lo que iba... Como los equipos tienen un nombre genérico (Destkop-xxxxx), queremos darles un nombre más lógico que coincida con el que la máquina tiene en Ubuntu y al mismo tiempo, añadirlo al dominio de Windows.

El script que he creado es muy simple y se entiende perfectamente sin saber mucho de Powershell. 
$Domain = 'instituto.extremadura.es'
$hostname = Read-Host -Prompt 'Nombre del equipo'

Rename-Computer $hostname
Add-computer -domainname $Domain -Credential instituto\gestor -newname $hostname -Restart
Veamoslo paso a paso:
  • En una variable a la que hemos llamado "Domain" introducimos el nombre de nuestro dominio:
$Domain = 'instituto.extremadura.es'
  • En una variable a la que hemos llamado "hostname" introducimos el nombre del host,  pero en lugar de especificar su valor, solicitamos al usuario que lo introduzca mediante teclado: 
$hostname = Read-Host -Prompt 'Nombre del equipo'
  • A continuación ejecutamos un cmdlet que nos permite renombar el equipo con el nombre almacenado en la variable $hostname:
Rename-Computer $hostname
  • Y, por último, ejecutamos el cmdlet que permite añadir el equipo al dominio:
Add-computer -domainname $Domain -Credential instituto\gestor -newname $hostname -Restart
En este último paso comentar dos cosas:

Una es que estamos especificando la credencial de un administrador cuyo nombre es "gestor" y pertenece al dominio "instituto" directamente en el comando (-Credential instituto\gestor). Si nos interesa más, podríamos solicitar al usuario que la introdujera por pantalla y la almacenamos en una variable y, posteriormente, usar la variable en el cmdlet Add-computer . Por ejemplo:
$Credential = Get-Credential

Otra, que estamos utilizando el parámetro -Restart para reiniciar el equipo justo después de cambiar el nombre, puesto que Windows requiere reiniciar para aplicar los cambios.
Publicado por primera vez en http://enavas.blogspot.com.es