Cómo crear, eliminar, renombrar, deshabilitar y unir computadoras en AD usando PowerShell
Jul 10, 2018
Antes de que un usuario pueda iniciar sesión en una computadora y acceder a recursos de red y basados en dominio, esa computadora debe ser miembro del entorno de Active Directory. En esta guía, descubrirá cómo automatizar tareas diarias relacionadas con cuentas de computadoras, como cómo crear, renombrar y eliminar cuentas fácilmente.
En resumen, aprenderás a usar PowerShell para realizar las siguientes tareas de gestión de cuentas de computadora:
- Unir un ordenador a un dominio
- Unir múltiples computadoras a un dominio
- Eliminar una computadora de un dominio con PowerShell
- Crear un objeto de computadora en AD
- Crear cuentas de computadora desde un archivo CSV
- Eliminar una computadora de AD
- Eliminar cuentas de computadora utilizando una lista
- Elimine cuentas de computadora obsoletas en Active Directory con PowerShell
- Renombrar una computadora
- Cambie el nombre de un ordenador y únalo a un dominio
- Deshabilitar una cuenta de computadora de AD
- Deshabilitar cuentas de computadora usando una lista
- Restablecer una cuenta de computadora de AD
PowerShell ISE es la mejor herramienta para trabajar con scripts de PowerShell. Inicie la herramienta PowerShell ISE con privilegios de administrador presionando “Windows+R” y escribiendo “runas /profile /user:Administrator PowerShell_ISE” en la ventana Ejecutar. (Alternativamente, puede hacer clic derecho en el ícono de PowerShell ISE y elegir la opción “Ejecutar como administrador”.) Escriba la contraseña del administrador cuando se le solicite.
Antes de poder trabajar con AD y sus objetos, necesita importar el módulo de Active Directory para Windows PowerShell. En Microsoft Windows Server 2008 R2, necesita habilitar este módulo ejecutando el siguiente comando:
Import-Module ActiveDirectory
En Microsoft Windows Server 2012 y posteriores, este módulo está habilitado por defecto.
Unir un ordenador a un dominio
La tarea más común es unir una computadora a un controlador de dominio. Para unir una PC a an Active Directory domain, ejecute el siguiente script de PowerShell localmente:
$dc = "ENTERPRISE" # Specify the domain to join.
$pw = "Password123" | ConvertTo-SecureString -asPlainText –Force # Specify the password for the domain admin.
$usr = "$dcT.Simpson" # Specify the domain admin account.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -DomainName $dc -Credential $creds -restart -force -verbose # Note that the computer will be restarted automatically.
El ordenador se reiniciará y luego se unirá al dominio; se agregará al contenedor predeterminado.
Para unir un ordenador a un DC de forma remota, necesitas mejorar este script de la siguiente manera:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF" # Specify the computer that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Verbose -Restart -Force
La variable $pc y el parámetro –LocalCredential se utilizan para autenticar el ordenador en el dominio. Tenga en cuenta que para utilizar este método, debe desactivar el firewall en el ordenador local.
Unir múltiples computadoras a un dominio
Puede agregar más de un ordenador al dominio especificándolos en la línea de comandos como una lista delimitada por comas o importando sus nombres desde un archivo de texto.
Aquí le mostramos cómo especificar los ordenadores en una lista delimitada por comas:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "WKS034, WKS052, WKS057" # Specify the computers that should be joined to the domain.
$creds = New-Object System.Management.Automation.PSCredential($usr$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Y aquí le mostramos cómo usar un archivo de texto con la lista de computadoras que deben unirse:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = Get-Content -Path C:Computers.txt # Specify the path to the computers list.
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Add-Computer -ComputerName $pc -LocalCredential $pcadmin -DomainName $dc -Credential $creds -Restart -Force
Eliminar una computadora de un dominio con PowerShell
Para eliminar un ordenador de un dominio de forma remota, utilice el cmdlet Remove-Computer. Aquí, estamos eliminando un ordenador de un dominio, por lo que no se necesitan credenciales locales y podemos omitir el parámetro ?LocalCredential:
$dc = "ENTERPRISE"
$pw = "Password123" | ConvertTo-SecureString -asPlainText -Force
$usr = "$dcT.Simpson"
$pc = "R07GF"
$creds = New-Object System.Management.Automation.PSCredential($usr,$pw)
Remove-Computer -ComputerName $pc -Credential $creds –Verbose –Restart –Force
Para eliminar múltiples computadoras utilizando una lista en un archivo TXT, use el script anterior para unir computadoras a un DC, reemplazando el cmdlet Add-Computer por Remove-Computer. Tenga en cuenta que aún necesitará credenciales de administrador del dominio para completar esta operación de desvinculación.
Crear un objeto de computadora en AD
Para crear un objeto de computadora, utilice el cmdlet New-ADComputer. Por ejemplo, ejecute los siguientes parámetros del cmdlet para crear un objeto de computadora con “WKS932” como su nombre y el valor predeterminado de la ruta LDAP:
New-ADComputer –Name “WKS932” –SamAccountName “WKS932”
Crear cuentas de computadora desde un archivo CSV
Si tiene una lista de computadoras que deben importarse en Active Directory, guarde la lista en un archivo CSV con el encabezado “computer” y la lista de nombres de computadoras en la columna debajo de este. Ejecute el siguiente script de PowerShell en su controlador de dominio para agregar computadoras desde el archivo CSV, asegurándose de tener las variables “Path” y “File” configuradas correctamente:
$File="C:scriptsComputers.csv" # Specify the import CSV position.
$Path="OU=Devices,DC=enterprise,DC=com" # Specify the path to the OU.
Import-Csv -Path $File | ForEach-Object { New-ADComputer -Name $_.Computer -Path $Path -Enabled $True}
Eliminar una computadora de AD
Para eliminar una cuenta de computadora de AD, utilice el cmdlet Remove-ADObject. El parámetro -Identity especifica qué computadora de Active Directory eliminar. Puede especificar una computadora por su nombre distinguido, GUID, identificador de seguridad (SID) o nombre de cuenta del Administrador de cuentas de seguridad (SAM).
Remove-ADObject -Identity "WKS932"
Se le solicitará confirmar la eliminación.
Eliminar cuentas de computadora utilizando una lista
Si tienes un archivo de texto con una lista de computadoras antiguas, puedes agilizar la tarea de eliminarlas usando PowerShell. El siguiente script leerá los nombres de las computadoras de un archivo TXT y eliminará las cuentas correspondientes a través de una cadena de comandos, o pipeline:
Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive
Solicite una Prueba Gratuita de Netwrix Directory Manager para un Mejor Manejo de Grupos
Elimine cuentas de computadora obsoletas de Active Directory con PowerShell
Las cuentas obsoletas en Active Directory pueden verse comprometidas, lo que conduce a incidentes de seguridad, por lo que es crítico mantenerlas bajo vigilancia. Este script de PowerShell consultará Active Directory y devolverá todos los ordenadores que no hayan iniciado sesión en los últimos 30 días; puedes cambiar fácilmente este valor predeterminado en el script. También eliminará esas cuentas para mantener tu AD limpio.
$stale = (Get-Date).AddDays(-30) # means 30 days since last logon, can be changed to any number.
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | FT Name,lastLogonDate
Get-ADComputer -Property Name,lastLogonDate -Filter {lastLogonDate -lt $stale} | Remove-ADComputer
Hay un ordenador, FS1, que no ha tenido sesión iniciada durante más de 30 días. El sistema solicitará confirmación antes de eliminarlo del dominio:
Si desea deshabilitar, en lugar de eliminar, las cuentas de computadora inactivas, reemplace el cmdlet Remove-ADComputer con Set-ADComputer y el parámetro y valor -Enabled $false.
Renombrar una computadora
Para cambiar el nombre de un ordenador, utilice el cmdlet Rename-Computer. Tenga en cuenta que el ordenador debe estar en línea y conectado a Active Directory.
Rename-Computer –ComputerName "FS1" -NewName "FS2"
Si quieres ejecutar este script localmente, se verá así:
Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"
Cambie el nombre de un ordenador y únalo a un dominio
Puede mejorar el script de renombramiento uniéndolo al dominio y colocándolo en la OU especificada simultáneamente. El script debe ejecutarse en la máquina objetivo, no en el controlador de dominio.
$NewComputerName = "Server3" # Specify the new computer name.
$DC = "contoso.com" # Specify the domain to join.
$Path = "OU=TestOU,DC=contoso,DC=com" # Specify the path to the OU where to put the computer account in the domain.
Add-Computer -DomainName $DC -OUPath $Path -NewName $NewComputerName –Restart –Force
El script solicitará las credenciales de una cuenta que tenga permisos para unir computadoras al dominio, y luego la computadora será renombrada, reiniciada y unida al dominio.
Deshabilitar una cuenta de computadora en AD
Utilice el cmdlet Disable-ADAccount para deshabilitar cuentas de usuario, computadora y servicio de Active Directory. Si especifica un nombre de cuenta de computadora, recuerde agregar un signo de dólar ($) al final del nombre; de lo contrario, recibirá un error después de la ejecución del script.
Disable-ADAccount -Identity fs1$
Deshabilitar cuentas de computadora usando una lista
También puede deshabilitar cuentas de computadora en masa utilizando una lista en un archivo de texto:
$Pclist = Get-Content C:scriptsComputer.txt # Specify the path to the computers list.
Foreach($pc in $Pclist)
{
Disable-ADAccount -Identity "$pc"
Get-ADComputer -Identity "$pc" | Move-ADObject -TargetPath “OU=Disabled Computers,DC=enterprise,DC=com”
}
Restablecer una cuenta de computadora de AD
Como una cuenta de usuario, una cuenta de computadora interactúa con Active Directory usando una contraseña. Pero para las cuentas de computadora, un cambio de contraseña se inicia cada 30 días por defecto y la contraseña está exenta de la política de password policy del dominio. Los cambios de contraseña son iniciados por el cliente (computadora), no por AD.
Las credenciales del ordenador suelen ser desconocidas para el usuario porque se establecen de manera aleatoria por el ordenador. Pero puedes establecer tu propia contraseña; aquí tienes un script de PowerShell para hacerlo:
$pc = read-host –Prompt “Input computer name to reset“ # Specify the computer name.
$pw = read-host –Prompt “Input random characters for temp password“ –AsSecureString # Specify the password.
Get-ADComputer $pc | Set-ADAccountPassword –NewPassword:$pw -Reset:$true
Conclusión
Ahora has aprendido cómo gestionar cuentas de computadora de Active Directory con PowerShell. Puedes mejorar todos estos scripts por tu cuenta para adaptarlos a tus propósitos.
Recuerde que es crítico seguir de cerca todos los cambios en las cuentas de computadoras, para que pueda detectar rápidamente cualquier modificación no deseada y responder adecuadamente.
Mejores prácticas de gestión de grupos de Active Directory
Mejores prácticas de gestión de grupos de Active DirectoryCompartir en
Aprende más
Acerca del autor
Jeff Melnick
Director de Ingeniería de Sistemas
Jeff es un ex Director de Ingeniería de Soluciones Globales en Netwrix. Es un bloguero, orador y presentador de Netwrix desde hace mucho tiempo. En el blog de Netwrix, Jeff comparte lifehacks, consejos y trucos que pueden mejorar drásticamente tu experiencia en la administración de sistemas.
Aprende más sobre este tema
Gestión de configuración para el control seguro de Endpoint
Leyes de Privacidad de Datos por Estado: Diferentes Enfoques para la Protección de la Privacidad
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
¿Qué es la gestión de registros electrónicos?