Búsqueda de sitios web

Cómo administrar computadoras en Active Directory usando PowerShell


Antes de que un usuario pueda iniciar sesión en una computadora y acceder a la red y a los recursos basados en dominio, esa computadora debe ser miembro del entorno de Active Directory. En esta guía, descubrirá cómo automatizar las tareas diarias relacionadas con las cuentas de computadora, por ejemplo, cómo crear, cambiar el nombre y eliminar cuentas fácilmente.

En total, aprenderá a utilizar PowerShell para realizar las siguientes tareas de administración de cuentas de computadora:

  • Unir una computadora a un dominio

    • Unir varias computadoras a un dominio
  • Eliminar una computadora de un dominio con PowerShell
  • Crear un objeto informático en AD

    • Crear cuentas de computadora a partir de un archivo CSV
  • Eliminar una computadora de AD

    • Eliminar cuentas de computadora usando una lista
    • Eliminar cuentas de computadora obsoletas en Active Directory con PowerShell
  • Cambiar el nombre de una computadora

    • Cambiar el nombre de una computadora y unirla a un dominio
  • Deshabilitar una cuenta de computadora AD

    • Deshabilitar cuentas de computadora usando una lista
  • Restablecer una cuenta de computadora 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" e ingresando "runas /profile /user:Administrator PowerShell_ISE" en la ventana Ejecutar. (Como alternativa, puede hacer clic derecho en el icono 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, debe importar el módulo de Active Directory para Windows PowerShell. En Microsoft Windows Server 2008 R2, debe habilitar este módulo ejecutando el siguiente comando:

Import-Module ActiveDirectory

En Microsoft Windows Server 2012 y versiones posteriores, este módulo está habilitado de forma predeterminada.

Unir una computadora a un dominio

La tarea más común es unir una computadora a un controlador de dominio. Para unir una PC a un dominio de Active Directory, 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.

La computadora se reiniciará y luego se unirá al dominio; se agregará al contenedor predeterminado.

Para unir una computadora a un DC de forma remota, debe mejorar este script de esta 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 la computadora en el dominio. Tenga en cuenta que para utilizar este método, debe desactivar el firewall en la computadora local.

Unir varias computadoras a un dominio

Puede agregar más de una computadora al dominio especificándolas en la línea de comando como una lista delimitada por comas o importando sus nombres desde un archivo de texto.

A continuación se explica cómo especificar las computadoras 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í se explica cómo utilizar un archivo de texto con la lista de computadoras a las que se debe unir:

$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 una computadora de un dominio de forma remota, use el cmdlet Remove-Computer . Aquí, estamos eliminando una computadora 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 varias computadoras usando una lista en un archivo TXT, use el script anterior para unir computadoras a un DC, reemplazando el cmdlet Add-Computer con Remove-Computer. Tenga en cuenta que aún necesitará las credenciales de administrador del dominio para completar esta operación de desunión.

Crear un objeto informático en AD

Para crear un objeto de computadora, use el cmdlet New-ADComputer. Por ejemplo, ejecute los siguientes parámetros de cmdlet para crear un objeto de computadora con "WKS932" como nombre y el valor de ruta LDAP predeterminado:

New-ADComputer –Name “WKS932” –SamAccountName “WKS932”

Crear cuentas de computadora a partir de un archivo CSV

Si tiene una lista de computadoras que deben importarse a Active Directory, guárdela en un archivo CSV con el título "computadora" y la lista de nombres de computadoras en la columna debajo. Ejecute el siguiente script de PowerShell en su controlador de dominio para agregar computadoras desde el archivo CSV, asegurándose de tener las variables "Ruta" y "Archivo" 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, use el cmdlet Remove-ADObject. El parámetro -Identity especifica qué equipo de Active Directory eliminar. Puede especificar una computadora por su nombre distintivo, GUID, identificador de seguridad (SID) o nombre de cuenta del Administrador de cuentas de seguridad (SAM).

Remove-ADObject -Identity "WKS932"

Se le pedirá que confirme la eliminación.

Eliminar cuentas de computadora usando una lista

Si tiene un archivo de texto con una lista de computadoras antiguas, puede simplificar la tarea de eliminarlas usando PowerShell. El siguiente script leerá los nombres de las computadoras de un archivo TXT y eliminará las cuentas correspondientes mediante una cadena de comandos o canalización:

Get-Content C:scriptscomputersfordeletion.txt | % { Get-ADComputer -Filter { Name -eq $_ } } | Remove-ADObject -Recursive

Elimine cuentas de computadora obsoletas de Active Directory con PowerShell

Las cuentas obsoletas en Active Directory pueden verse comprometidas y provocar incidentes de seguridad, por lo que es fundamental vigilarlas. Este script de PowerShell consultará Active Directory y devolverá todas las computadoras en las que no se haya iniciado sesión durante los últimos 30 días; Puede cambiar fácilmente este valor predeterminado en el script. También eliminará esas cuentas para mantener limpio su AD.

$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 una computadora, FS1, en la que no se ha iniciado sesión 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 -Enabled $false . parámetro y valor.

Cambiar el nombre de una computadora

Para cambiar el nombre de una computadora, use el cmdlet Rename-Computer. Tenga en cuenta que la computadora debe estar en línea y conectada a Active Directory.

Rename-Computer –ComputerName "FS1" -NewName "FS2"

Si desea ejecutar este script localmente, se verá así:

Rename-Computer -NewName "newname" -DomainCredential "DomainAdministrator"

Cambiar el nombre de una computadora y unirla a un dominio

Puede mejorar el script de cambio de nombre uniendo la computadora al dominio y colocándola en la unidad organizativa especificada simultáneamente. El script debe ejecutarse en la máquina de destino, 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

La secuencia de comandos solicitará las credenciales de una cuenta que tenga permisos para unir computadoras al dominio y luego se cambiará el nombre de la computadora, se reiniciará y se unirá al dominio.

Deshabilitar una cuenta de computadora AD

Utilice el cmdlet Disable-ADAccount para desactivar las 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 puedes desactivar cuentas de computadora de forma masiva usando 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 AD

Al igual que una cuenta de usuario, una cuenta de computadora interactúa con Active Directory mediante una contraseña. Pero para las cuentas de computadora, se inicia un cambio de contraseña cada 30 días de forma predeterminada y la contraseña está exenta de la política de contraseñas del dominio. Los cambios de contraseña los realiza el cliente (computadora), no AD.

Las credenciales de la computadora generalmente son desconocidas para el usuario porque la computadora las configura aleatoriamente. Pero puedes establecer tu propia contraseña; aquí hay 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 ha aprendido cómo administrar cuentas de computadora de Active Directory con PowerShell. Puede mejorar todos estos scripts usted mismo para adaptarlos a sus propósitos.

Recuerde que es fundamental realizar un seguimiento de cerca de todos los cambios en las cuentas de computadora, para que pueda detectar rápidamente cualquier modificación no deseada y responder de manera adecuada.

Artículos relacionados