Script que mueve AD computer objects

Print Friendly, PDF & Email
if (! (get-Module ActiveDirectory)) 
{ 
Import-Module ActiveDirectory 
} 
 
write-host "******** Creado por Jose ****     " -Fore green 
write-host "*****************************************************************************************************************" -Fore red
write-host "*** Este Script mueve Computer Accounts desde una OU origen a otra destiono basandose en el Sistema Operativo ***" -Fore red 
write-host "*****************************************************************************************************************" -Fore red


## variable que nos indica la OU en donde estan las maquinas de destino
$OUorigen = Read-Host "- Introduce en Distinguised Name  de la OU ORIGEN, por ejemplo: CN=computers,DC=josemctonline.com,DC=com "
$nivel  =   Read-Host "- Dentro de la OU anterior, a que nivel buscar (1 o 2) ==> 1 (un solo nivel),  2 (todos los subniveles)"
$Sleep   =  Start-Sleep -Seconds 1
 

## Seleccion del Sistema Operativo a buscar
Write-Host "- A Continuacion ponemos el << OperatingSytem >>  que podemos buscar" -Fore red
write-host "Windows 7*” -Fore yellow
write-host "Windows 8*” -Fore yellow
write-host "Windows 8.1*” -Fore yellow
write-host "Windows 10*” -Fore yellow
write-host "Windows Server*” -Fore yellow
write-host "Windows Server 2008*” -Fore yellow
write-host "Windows Server 2012*” -Fore yellow

$OS = Read-Host "Que Operating System de los anteriores queremos buscar. Ponerlo tal como aparace"

## hace la query de los equipos a buscar y el resultado almacena en una variable, par luego mover esas maquinas
$equipos = Get-ADComputer -Filter {OperatingSystem -like $OS} -Properties * -SearchBase $OUorigen -SearchScope $nivel
 

write-host "Listado de computadoras que se moveran..................." -Fore green 
Write-host = $equipos | fl name
write-host "........................................................." -Fore green 

## cuenta los equipos que se nueven
$CountPC = ($equipos).Count 

### variable que guarda la OU de destino de las computadoras filtras
$OUdestino = Read-host "- Introduce el DN de la OU destino de las computadoras filtradas, Ejemplo << OU=Destino,DC=josemctonline,DC=com >> "

## recupera los datos buscados de los equipos y por cada uno de ellos, los mueve a la OU de destion, declarada por variable
foreach ($fila in $equipos){    
    Get-ADComputer $fila.name | Move-ADObject -TargetPath $OUdestino
    }

 
## finalizado nos muestra resumen
$Space   
$Sleep   =  Start-Sleep -Seconds 2

write-host "Completed....................." -Fore green 
$Space
Write-Host "Se han movido $countPC computadoras a la OU de destino $OUdestino "

Be the first to comment

Leave a Reply