Magic Quadrant™ para la gestión de acceso privilegiado 2025: Netwrix reconocida por cuarto año consecutivo. Descarga el informe.

Plataforma
Centro de recursosBlog
Cómo crear, eliminar, renombrar, deshabilitar y unir computadoras en AD usando PowerShell

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
      
Image

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
      
Image

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:

Image

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 Directory

Compartir en

Aprende más

Acerca del autor

Asset Not Found

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.