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
preguntado por Alejandro Londoño (29 puntos)   Abr 23, 2013
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 !

 

respondido por Gustavo.Rodrigo (4,555 puntos)   Abr 24, 2013
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.
...