settingsLogin | Registersettings
Es tu primera visita? Te invitamos a visitar nuestra sección de preguntas frecuentes FAQ!
x
Show Menu

Mover computadores a una OU

0 votos
Buenos días

Realice una consulta de los equipos inactivos en el directorio activo y el resultado lo tengo en un archivo .txt

Ahora necesito que me ayuden como hago para mover los equipos que están en el archivo txt a una OU para poder eliminarlos o deshabilitarlos.

Agradezco cualquier ayuda.

Alejandro Londoño
por (29 puntos)  
Alejandro, me comentas si te sirve :

@echo off  
dsquery computer -inactive 4 -limit 0 > C:\ReporteAD\AllComputerInactive19052013.txt
 
@echo No of Inactive Computers:  
dsquery computer -inactive 4 -limit 0 | find "CN=" /c
 
@echo Disabling Computers  
dsquery computer -inactive 4 | dsmod computer -disabled Yes
 
@echo Moving Computers  
FOR /f %%i in (C:\ReporteAD\AllComputerInactive19052013.txt) do (
dsmove %%i -newparent OU=Computadoras_Deshabilitadas,DC=tu_dominio,DC=com,DC=pe
)

Saludos

1 Respuesta

0 votos

Te dejo 2 scripts,

El primero lee desde un archivo .TXT y mueve las PCs a una OU determinada y deshabilita las cuentas, sin utilizar el modulo importado de powershell de ActiveDirectory:

Tienes que modificar en ambos scripts lo que esta en negrita para que se adecue a tus requerimientos.

$computers = Get-Content 'computers.txt'
$dest = [adsi]'LDAP://cn=computers,dc=contoso,dc=local'
foreach ($computer in $computers) {
    $computer = $computer + '$'
    $as = [adsisearcher]"(&(ObjectCategory=computer)(sAMAccountName=$computer))"
    $comp = $as.findone()
    $comp = [adsi]$comp.path
    $comp.moveTo($dest)
    $comp.psbase.invokeset("AccountDisabled", "True")
    $comp.setinfo()
    }

Con modulo de AD desde powershell:

Get-Content 'computers.txt' |
    Set-ADComputer -Enabled $false -PassThru |
    Move-ADObject -TargetPath 'ou=Workstations-Deshabilitadas,dc=tudominio,dc=com,dc=ar'

Exitos !

 

por (4.6k puntos)  
Buenos días Gustavo

Agradezco tu ayuda con estos scripts pero te comento que no me están funcionando, ya he cambiado los parámetros que necesito de acuerdo a mi infraestructura y al ejecutar el script por powershell no hace nada, adjunto el script modificado:

Get-Content 'equipos.txt'|Set-ADComputer -Enabled $false -PassThru |Move-ADObject -TargetPath 'ou=OldComputers -Deshabilitadas,dc=polijicpoblado,dc=edu,dc=co
agradezco cualquier ayuda.
Puedes probar de quitarle el parametro Set-ADComputer, ya que lo que hace es deshabilitarte todo equipo que ve dentro del TXT.

Copia el contenido del script dentro de un notepad y guardalo como script.ps1 y no olvides seleccionar todos los archivos en el formato de archivo *.*, sino te lo guardará como TXT.
luego ejecuta el script importando desde powershell Import-Module ActiveDirectory, luego set-executionpolicy -unrestricted, luego ejecutas el script.ps1 -verbose y me cuentas.
Buenas tardes Gustavo
Cordial saludo

estoy realizando el procedimiento que me indicas de la siguiente manera:
Le quito el parámetro indicado: Get-Content 'equipos.txt' -PassThru |Move-ADObject -TargetPath 'ou=OldComputers -Deshabilitadas,dc=polijicpoblado,dc=edu,dc=co
ese contenido lo guarde en un TXT como script.ps1, luego ejecuto powershell con Import-Module ActiveDirectory,
Luego set-executionpolicy -unrestricted, y el prompt me queda asi: >> escribo luego script.ps1 - verbose y no hace nada e script.

Será que estoy ejecutando algo mal o que me recomiendas?'

Agradezco tu ayuda.
...