Crear usuarios para Active Directory

 

Crear usuarios para Active Directory

¿Como crear usuarios para Active Directory?


Para este caso que queremos crear un mínimo de 1000 usuarios, por tanto hacerlo de manera convencional sería demasiado tedioso, asi que usaremos un script. Este será el script que usarémos de base:

Import-Module ActiveDirectory
$path="ou=Direccion,ou=Iberica,dc=iberica,dc=es"
New-ADOrganizationalUnit -name Iberica -path "dc=iberica,dc=es" -
ProtectedFromAccidentalDeletion $false
New-ADOrganizationalUnit -name Direccion -path "ou=Iberica,dc=iberica,dc=es" -
ProtectedFromAccidentalDeletion $false
New-ADOrganizationalUnit -name DptoAdmon -path "ou=Iberica,dc=iberica,dc=es" -
ProtectedFromAccidentalDeletion $false
New-ADOrganizationalUnit -name DptoTecnico -path "ou=Iberica,dc=iberica,dc=es"
-ProtectedFromAccidentalDeletion $false
New-ADOrganizationalUnit -name DptoComercial -path
"ou=Iberica,dc=iberica,dc=es" -ProtectedFromAccidentalDeletion $false
New-ADOrganizationalUnit -name DptoRRHH -path "ou=Iberica,dc=iberica,dc=es" -
ProtectedFromAccidentalDeletion $false
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_1" -name "Cuentas"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_1" -name "Contratos"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_1" -name
"Aplicaciones"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_2" -name "Cuentas"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_2" -name "Contratos"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_2" -name
"Aplicaciones"
New-Item -ItemType Directory -path "C:\Proyectos\Proyecto_2" -name "Equipos"
New-ADGroup -Name "ACL_Proyectos_ControlTotal" -GroupCategory Security -
GroupScope DomainLocal -Path $path
New-ADGroup -Name "ACL_Proyectos_Leer" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Proyecto1_Listar" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Proyecto2_Listar" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Cuentas1_Modificar" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Cuentas2_Modificar" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Contratos1_Leer" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Contratos2_Leer" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "ACL_Contratos1_Modificar" -GroupCategory Security -
GroupScope DomainLocal -Path $path
New-ADGroup -Name "ACL_Contratos2_Modificar" -GroupCategory Security -
GroupScope DomainLocal -Path $path
New-ADGroup -Name "ACL_Aplicaciones1_Modificar" -GroupCategory Security -
GroupScope DomainLocal -Path $path
New-ADGroup -Name "ACL_Aplicaciones2_Modificar" -GroupCategory Security -
GroupScope DomainLocal -Path $path
New-ADGroup -Name "ACL_Equipos_Modificar" -GroupCategory Security -GroupScope
DomainLocal -Path $path
New-ADGroup -Name "global_directores" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_secretarios" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_proyecto_1" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_proyecto_2" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_coordinadores" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_tecnicos_A" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_tecnicos_B" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_tecnicos_C" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_comerciales_A" -GroupCategory Security -GroupScope
Global -Path $path
New-ADGroup -Name "global_comerciales_B" -GroupCategory Security -GroupScope
Global -Path $path
Add-ADGroupMember
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_directores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_secretarios,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_A,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_comerciales_A,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_directores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_secretarios,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_B,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_C,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_comerciales_B,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Proyectos_ControlTotal,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_directores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Proyectos_Leer,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_secretarios,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Proyecto1_Listar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_proyecto_1,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Proyecto2_Listar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_proyecto_2,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Cuentas1_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Cuentas2_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Contratos1_Leer,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Contratos2_Leer,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_coordinadores,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Contratos1_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_comerciales_A,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Contratos2_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_comerciales_B,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Aplicaciones1_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_A,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Aplicaciones2_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_B,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Add-ADGroupMember
"cn=ACL_Equipos_Modificar,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=global_tecnicos_C,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
Import-Csv scripts\plantilla.csv | ForEach-Object {
$nombrecompleto=$_.Nombre + " " + $_.Apellido
New-ADUser -UserPrincipalName $_.Nombre -name $nombrecompleto -SamAccountName
$_.Nombre -GivenName $_.Nombre -Surname $_.Apellido -AccountPassword
(ConvertTo-SecureString -AsPlainText "contrasenaCONTRASENA2014" -Force) -path
"ou=Direccion,ou=Iberica,dc=iberica,dc=es" -enabled $true
$grupo=$_.Grupo
Add-ADGroupMember "cn=$grupo,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
"cn=$nombrecompleto,ou=Direccion,ou=Iberica,dc=iberica,dc=es"
}
    
  

Este script es una buena base con si tenemos un archivo .csv sin embargo también se puede hacer sin necesidad de crear un archivo csv y con un menú funcional así que el resultado final es el siguiente

  function Menu {
    $seleccion
    Clear-Host

    Write-Host "|MENU|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Creacion"
    Write-Host "2-Consultar"
    Write-Host "3-Eliminar (Todo)"
    Write-Host ""
    Write-Host "4-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-4)"

    if ($seleccion -eq 1) {
        Creacion
    } elseif ($seleccion -eq 2) {
        Consultar
    } elseif ($seleccion -eq 3) {
        Eliminar
    } elseif ($seleccion -eq 4) {
        exit
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Menu
    }
}



# CREACION
function Creacion {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Todo"
    Write-Host "2-De forma individual"
    Write-Host "3-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-3)"

    if ($seleccion -eq 1) {
        Todo
    } elseif ($seleccion -eq 2) {
        Individual
    } elseif ($seleccion -eq 3) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Creacion
    }
}
function Todo {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Todo|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "De forma predeterminada, se crearan usuarios de la siguiente forma:"
    Write-Host "Director, Vicepresidente, 2 Jefes de estudio, 6 Profesores, 6 Administrativos,"
    Write-Host "4 Trabajadores en limpieza, 2 Trabajadores en Cafeteria."
    Write-Host ""

    $alumnos = Read-Host "Ingrese la cantidad de alumnos "

    Write-Host ""
    Write-Host "Se crearan $alumnos alumnos por clase (ESO-1Bach-CFGB-CFGM)"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        CrearTodo
    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Todo
    }
}
function Individual {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Alumnos"
    Write-Host "2-Profesores"
    Write-Host "3-Equipo directivo"
    Write-Host "4-Administracion"
    Write-Host "5-Personal de limpieza"
    Write-Host "6-Personal de Cafeteria"
    Write-Host "7-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-7)"

    if ($seleccion -eq 1) {
        CrearAlumnos
    } elseif ($seleccion -eq 2) {
        CrearProfesores
    } elseif ($seleccion -eq 3) {
        CrearEquipoDirectivo
    } elseif ($seleccion -eq 4) {
        CrearAdministracion
    } elseif ($seleccion -eq 5) {
        CrearPersonalLimpieza
    } elseif ($seleccion -eq 6) {
        CrearPersonalCafeteria
    } elseif ($seleccion -eq 7) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Individual
    }
}
function CrearAlumnos {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-ESO"
    Write-Host "2-1ºBachillerato"
    Write-Host "3-CFGB"
    Write-Host "4-CFGM"
    Write-Host "5-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-5)"

    if ($seleccion -eq 1) {
        CrearESO
    } elseif ($seleccion -eq 2) {
        Crear1Bach
    } elseif ($seleccion -eq 3) {
        CrearCFGB
    } elseif ($seleccion -eq 4) {
        CrearCFGM
    } elseif ($seleccion -eq 5) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearAlumnos
    }
}
function CrearESO {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear ESO|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "(1ESO - 4ESO)"
    Write-Host ""

    $alumnos = Read-Host "Ingrese la cantidad de alumnos "

    Write-Host ""
    Write-Host "Se crearan $alumnos alumnos por clase (A-H) y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        ESO

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearESO
    }
}
function Crear1Bach {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear 1ºBachillerato|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""

    $alumnos = Read-Host "Ingrese la cantidad de alumnos "

    Write-Host ""
    Write-Host "Se crearan $alumnos alumnos por clase (A-D) y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        1Bach

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Crear1Bach
    }
}
function CrearCFGB {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear CFGB|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "(1CFGB - 2CFGB)"
    Write-Host ""

    $alumnos = Read-Host "Ingrese la cantidad de alumnos "

    Write-Host ""
    Write-Host "Se crearan $alumnos alumnos por clase y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        CFGB

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearCFGB
    }
}
function CrearCFGM {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear CFGM|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "(1CFGM - 2CFGM)"
    Write-Host ""

    $alumnos = Read-Host "Ingrese la cantidad de alumnos "

    Write-Host ""
    Write-Host "Se crearan $alumnos alumnos por clase y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        CFGM

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearCFGM
    }
}
function CrearProfesores{
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Profesores|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se crearan 6 profesores por departamento y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        Profesores

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearProfesores
    }
}
function CrearEquipoDirectivo{
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Equipo directivo|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se creará el Director, Vicedirector, 2 Jefes de estudio, Secretaria y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        EquipoDirectivo

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearEquipoDirectivo
    }
}
function CrearAdministracion{
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Administracion|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""

    $cantidad = Read-Host "Ingrese la cantidad de usuarios para el personal de administracion "

    Write-Host ""
    Write-Host "Se crearan $cantidad usuarios de Administracion y demas objetos necesarios."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        Administracion

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearAdministracion
    }
}
function CrearPersonalLimpieza {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Personal limpieza|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""

    $cantidad = Read-Host "Ingrese la cantidad de usuarios para el personal de limpieza "

    Write-Host ""
    Write-Host "Se crearan $cantidad usuarios para el personal de limpieza."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        Personal_limpieza

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearPersonalLimpieza
    }
}
function CrearPersonalCafeteria {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Personal Cafeteria|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""

    $cantidad = Read-Host "Ingrese la cantidad de usuarios para el personal de Cafeteria "

    Write-Host ""
    Write-Host "Se crearan $cantidad usuarios para el personal de Cafeteria."
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        # Creacion de ou principal elgaleon
        New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

        # Creacion de ou Directivos
        New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Administracion
        New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Personal laboral
        New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
        New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Profesorado
        New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou Alumnado
        New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

        # Creacion de ou CLASES dentro de la ou Alumnado
        New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
        New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

        Personal_cafeteria

    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearPersonalCafeteria
    }
}



# CONSULTAR
function Consultar {
    $seleccion
    clear

    Write-Host "|MENU| -> |Consultar|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Unidades organizativas"
    Write-Host "2-Usuarios"
    Write-Host "3-Grupos"
    Write-Host ""
    Write-Host "4-Buscar"
    Write-Host "5-Volver al Menu"
    Write-Host ""
    
    $seleccion = Read-Host "Elige una opcion. (1-5)"

    if ($seleccion -eq 1) {
        cons_ou
    } elseif ($seleccion -eq 2) {
        cons_usuarios
    } elseif ($seleccion -eq 3) {
        cons_grupos
    } elseif ($seleccion -eq 4) {
        Buscar
    } elseif ($seleccion -eq 4) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Consultar
    }
}
function cons_ou {
    $seleccion
    $total = (Get-ADOrganizationalUnit -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count
    clear

    Write-Host "|MENU| -> |Consultar| -> |Unidades organizativas|"
    Write-Host "----------------------------------------------------------------------------------------"

    Get-ADOrganizationalUnit -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"

    Write-Host "Total de $total unidades organizativas"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver a consultar"
    Write-Host "2-Volver al Menu"
    Write-Host "3-Salir"
    Write-Host ""
    
    $seleccion = Read-Host "Elige una opcion. (1-3)"

    if ($seleccion -eq 1) {
        Consultar
    } elseif ($seleccion -eq 2) {
        Menu
    } elseif ($seleccion -eq 3) {
        Exit
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        cons_ou
    }
}
function cons_usuarios {
    $seleccion
    $total = (Get-ADUser -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count
    clear

    Write-Host "|MENU| -> |Consultar| -> |Usuarios|"
    Write-Host "----------------------------------------------------------------------------------------"

    Get-ADUser -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"

    Write-Host "Total de $total usuarios"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver a consultar"
    Write-Host "2-Volver al Menu"
    Write-Host "3-Salir"
    Write-Host ""
    
    $seleccion = Read-Host "Elige una opcion. (1-3)"

    if ($seleccion -eq 1) {
        Consultar
    } elseif ($seleccion -eq 2) {
        Menu
    } elseif ($seleccion -eq 3) {
        Exit
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        cons_usuarios
    }
}
function cons_grupos {
    $seleccion
    $total = (Get-ADGroup -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count
    clear

    Write-Host "|MENU| -> |Consultar| -> |Usuarios|"
    Write-Host "----------------------------------------------------------------------------------------"

    Get-ADGroup -Filter * -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"

    Write-Host "Total de $total grupos"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver a consultar"
    Write-Host "2-Volver al Menu"
    Write-Host "3-Salir"
    Write-Host ""
    
    $seleccion = Read-Host "Elige una opcion. (1-3)"

    if ($seleccion -eq 1) {
        Consultar
    } elseif ($seleccion -eq 2) {
        Menu
    } elseif ($seleccion -eq 3) {
        Exit
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        cons_grupos
    }
}
function Buscar {
    $seleccion
    clear

    Write-Host "|MENU| -> |Consultar| -> |Buscar|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Unidades organizativas"
    Write-Host "2-Usuarios"
    Write-Host "3-Grupos"
    Write-Host ""
    Write-Host "4-Volver a consultar"
    Write-Host "5-Volver al Menu"
    Write-Host ""
    
    $seleccion = Read-Host "Elige una opcion. (1-5)"

    if ($seleccion -eq 1) {
        Buscar_ou
    } elseif ($seleccion -eq 2) {
        Buscar_usuarios
    } elseif ($seleccion -eq 3) {
        Buscar_grupos
    } elseif ($seleccion -eq 4) {
        Consultar
    } elseif ($seleccion -eq 5) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Buscar
    }
}
function Buscar_ou {
    $seleccion
    clear

    Write-Host "|MENU| -> |Consultar| -> |Buscar| -> |Unidades organizativas|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""

    $busqueda = Read-Host "Buscar"

    Write-Host ""

    Get-ADOrganizationalUnit -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"
    $resultados = (Get-ADOrganizationalUnit -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count

    Write-Host "Búsqueda: $busqueda"
    Write-Host "$resultados resultados encontrados" -ForegroundColor Green
    Write-Host ""

    pause

    Buscar
}
function Buscar_usuarios {
    $seleccion
    clear

    Write-Host "|MENU| -> |Consultar| -> |Buscar| -> |Usuarios|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""

    $busqueda = Read-Host "Buscar"

    Write-Host ""

    Get-ADUser -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"
    $resultados = (Get-ADUser -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count

    Write-Host "Búsqueda: $busqueda"
    Write-Host "$resultados resultados encontrados" -ForegroundColor Green
    Write-Host ""

    pause

    Buscar
}
function Buscar_grupos {
    $seleccion
    clear

    Write-Host "|MENU| -> |Consultar| -> |Buscar| -> |Grupos|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host ""

    $busqueda = Read-Host "Buscar"

    Write-Host ""

    Get-ADGroup -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local"
    $resultados = (Get-ADGroup -Filter "Name -like '*$busqueda*'" -SearchBase "ou=elgaleon,dc=gtbmx,dc=local").Count

    Write-Host "Búsqueda: $busqueda"
    Write-Host "$resultados resultados encontrados" -ForegroundColor Green
    Write-Host ""
    
    pause

    Buscar
}



# ELIMINAR
function Eliminar {
    $seleccion
    clear

    Write-Host "|MENU| -> |Eliminar|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "(Se eliminaran todas las unidades organizativas, usuarios y grupos)"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Continuar"
    Write-Host "2-Volver al Menu"
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Set-ADOrganizationalUnit -Identity "ou=elgaleon,dc=gtbmx,dc=local" -ProtectedFromAccidentalDeletion $False
        Remove-ADOrganizationalUnit -Identity "ou=elgaleon,dc=gtbmx,dc=local" -Recursive -Confirm:$false
        Eliminar2
    } elseif ($seleccion -eq 2) {
        Menu
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Eliminar
    }
}
function Eliminar2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Eliminar|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han eliminado todos los objetos correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Exit
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Eliminar2
    }
}



# CREAR TODO
function CrearTodo_2 {
    $seleccion
    $usuariosTotales = (40 * $alumnos) + 112
    $alumnosTotales = 40 * $alumnos
    clear

    Write-Host "|MENU| -> |Creacion| -> |Todo|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado un total de $usuariosTotales usuarios:"
    Write-Host "$alumnosTotales Alumnos | 112 demas usuarios"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CrearTodo_2
    }
}
function CrearTodo {
    Clear-Host

    # Creacion de ou principal elgaleon
    New-ADOrganizationalUnit -Name "elgaleon" -Path "DC=gtbmx,DC=local"

    # Creacion de ou Directivos
    New-ADOrganizationalUnit -Name "Equipo_directivo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de ou Administracion
    New-ADOrganizationalUnit -Name "Personal_administrativo" -Path "OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de ou Personal laboral
    New-ADOrganizationalUnit -Name "Personal_laboral" -Path "OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de el ou Personal de limpieza y cafeteria dentro de la ou personal
    New-ADOrganizationalUnit -Name "Personal_limpieza" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"
    New-ADOrganizationalUnit -Name "Personal_cafeteria" -Path "OU=Personal_laboral,OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de ou Profesorado
    New-ADOrganizationalUnit -Name "Profesorado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de ou Alumnado
    New-ADOrganizationalUnit -Name "Alumnado" -Path "OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de ou CLASES dentro de la ou Alumnado
    New-ADOrganizationalUnit -Name "ESO" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
    New-ADOrganizationalUnit -Name "Bach" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"
    New-ADOrganizationalUnit -Name "FP" -Path "OU=Alumnado,OU=elgaleon,DC=gtbmx,DC=local"

    # Creacion de alumnos para la clase ESO
    $letraClase = @("A","B","C","D","E","F","G","H")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    $numeroClase = 4
    
    New-ADGroup -Name "grupoESO" -SamAccountName "grupoESO" -GroupScope Global -GroupCategory Security -Path "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    
    for ($variable = 1; $variable -le $numeroClase; $variable++) {
        New-ADOrganizationalUnit -Name "${variable}ESO" -Path "${raiz}"

        for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
            New-ADOrganizationalUnit -Name "${variable}$($letraClase[$variable2])" -Path "ou=${variable}ESO,${raiz}"

            New-ADGroup -Name "grupoESO${variable}$($letraClase[$variable2])" -SamAccountName "grupoESO${variable}$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}"
            Start-Sleep -Seconds 1

            Write-Host "El grupoESO${variable}$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green
            
            $groupDN = "cn=grupoESO${variable}$($letraClase[$variable2]),ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}"
            while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
                Start-Sleep -Seconds 1
            }

            Write-Host "------------------ Creacion de Usuarios grupoESO${variable}$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

            for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {
                
                $cial = "${variable}ESO$($letraClase[$variable2])${id}"

                New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
                Add-ADGroupMember -Identity "grupoESO${variable}$($letraClase[$variable2])" -Members "alumno${cial}"

                Add-ADGroupMember -Identity "grupoESO" -Members "alumno${cial}"

                Write-Host "El alumno${cial} ha sido creado correctamente"

                $id++
            }

            Write-Host "---------------- Alumnos grupoESO${variable}$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

            clear
        }
    }

    # Creacion de alumnos para la clase 1Bach
    $letraClase = @("A","B","C","D")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoBach" -SamAccountName "grupoBach" -GroupScope Global -GroupCategory Security -Path "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADOrganizationalUnit -Name "1Bach" -Path "${raiz}"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "1$($letraClase[$variable2])" -Path "ou=1Bach,${raiz}"

        New-ADGroup -Name "grupo1Bach$($letraClase[$variable2])" -SamAccountName "grupo1Bach$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo1Bach$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo1Bach$($letraClase[$variable2]),ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo1Bach$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {
            
            $cial = "1Bach$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo1Bach$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoBach" -Members "alumno${cial}"

            Write-Host "El alumno${cial} ha sido creado correctamente"

            $id++
        }

        Write-Host "---------------- Alumnos grupo1Bach$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }

    # Creacion de alumnos para la clase CFPB
    $letraClase = @("1CFPB","2CFPB")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoFP" -SamAccountName "grupoFP" -GroupScope Global -GroupCategory Security -Path "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "$($letraClase[$variable2])" -Path "${raiz}"

        New-ADGroup -Name "grupo$($letraClase[$variable2])" -SamAccountName "grupo$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=$($letraClase[$variable2]),${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo$($letraClase[$variable2]),ou=$($letraClase[$variable2]),${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {

            $cial = "$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=$($letraClase[$variable2]),${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoFP" -Members "alumno${cial}"
            
            Write-Host "El alumno${cial} ha sido creado correctamente"
            
            $id++
        }

        Write-Host "---------------- Alumnos grupo$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }

    # Creacion de alumnos para la clase CFGM
    $letraClase = @("1CFGM","2CFGM")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "$($letraClase[$variable2])" -Path "${raiz}"

        New-ADGroup -Name "grupo$($letraClase[$variable2])" -SamAccountName "grupo$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=$($letraClase[$variable2]),${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo$($letraClase[$variable2]),ou=$($letraClase[$variable2]),${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {

            $cial = "$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=$($letraClase[$variable2]),${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoFP" -Members "alumno${cial}"

            Write-Host "El alumno${cial} ha sido creado correctamente"

            $id++
        }

        Write-Host "---------------- Alumnos grupo$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }

    # Creacion de profesores
    $materias = @("dep_BG", "dep_EF", "dep_EPV", "dep_FI", "dep_FQ", "dep_FR", "dep_GH", "dep_INF", "dep_ING", "dep_LCL", "dep_MAT", "dep_MUS", "dep_ORI", "dep_REL", "dep_TEC", "dep_ECO")
    $raiz = "ou=Profesorado,ou=elgaleon,dc=gtbmx,dc=local"
    $cantidad = 6
    $contrasena = "elgaleon_Profesorado_"
    $grupo = "grupoProfesorado_"
    $id = 1

    New-ADGroup -Name "grupoProfesorado" -SamAccountName "grupoProfesorado" -GroupScope Global -GroupCategory Security -Path "ou=Profesorado,ou=elgaleon,dc=gtbmx,dc=local"

    foreach ($key in $materias) {
        New-ADOrganizationalUnit -Name "$key" -Path "$raiz"
        New-ADGroup -Name "${grupo}${key}" -SamAccountName "${grupo}${key}" -GroupScope Global -GroupCategory Security -Path "ou=${key},${raiz}"

        Write-Host "El grupo ${grupo} ${key} ha sido creado correctamente" -ForegroundColor Green

        Write-Host "------------------ Creacion de Profesores asignatura ${key} -------------------------" -ForegroundColor Red

        for ($variable = 1; $variable -le $cantidad; $variable++) {
            New-ADUser -Name "Profesor_${key}${id}" -UserPrincipalName "Profesor_${key}${id}@gtbmx.local" -DisplayName "Profesor_${key}${id}" -Path "ou=${key},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${key}${id}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "${grupo}${key}" -Members "Profesor_${key}${id}"
            
            Add-ADGroupMember -Identity "grupoProfesorado" -Members "Profesor_${key}${id}"

            if ($key -eq "dep_ECO") {
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            } elseif ($key -eq "dep_FI") {
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            } elseif ($key -eq "dep_INF") {
                Add-ADGroupMember -Identity "grupoFP" -Members "Profesor_${key}${id}"
            } else {
                Add-ADGroupMember -Identity "grupoESO" -Members "Profesor_${key}${id}"
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            }

            Write-Host "El Profesor_${key}${id} ha sido creado correctamente"

            $id ++
        }

        Write-Host "---------------- Profesores asignatura ${key} creados correctamente ------------------" -ForegroundColor Red

        clear
    }

    # Creacion de Director
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Director"
    $grupo = "grupoDirector"
    $usuario = "Director"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    New-ADOrganizationalUnit -Name "${usuario}" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=${usuario},${raiz}"

    New-ADOrganizationalUnit -Name "Vicedirector" -Path "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoVicedirector" -SamAccountName "grupoVicedirector" -GroupScope Global -GroupCategory Security -Path "ou=Vicedirector,ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoEquipoDirectivo" -SamAccountName "grupoEquipoDirectivo" -GroupScope Global -GroupCategory Security -Path "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoAdministracion" -SamAccountName "grupoAdministracion" -GroupScope Global -GroupCategory Security -Path "ou=Personal_administrativo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoCafeteria" -SamAccountName "grupoCafeteria" -GroupScope Global -GroupCategory Security -Path "ou=Personal_cafeteria,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoLimpieza" -SamAccountName "grupoLimpieza" -GroupScope Global -GroupCategory Security -Path "ou=Personal_limpieza,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"

    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoESO" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoBach" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoFP" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoProfesorado" -Members "$usuario"

    Add-ADGroupMember -Identity "grupoVicedirector" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "$usuario"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Vicedirector
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Vicedirector"
    $grupo = "grupoVicedirector"
    $usuario = "Vicedirector"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoESO" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoBach" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoFP" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoProfesorado" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "$usuario"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Secretaria
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Secretaria"
    $grupo = "grupoSecretaria"
    $usuario = "Secretaria"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    New-ADOrganizationalUnit -Name "${usuario}" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=${usuario},${raiz}"

    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoESO" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoBach" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoFP" -Members "${usuario}"
    
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "${usuario}"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Jefes de estudio
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_JefeEstudio"
    $grupo = "grupoJefesEstudio"
    $usuario = "JefeEstudios"
    $id = 1
    $cantidad = 2

    New-ADOrganizationalUnit -Name "JefesEstudio" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=JefesEstudio,${raiz}"
    
    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "ou=JefesEstudio,${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "${usuario}${id}"

        Add-ADGroupMember -Identity "grupoESO" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoBach" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoFP" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoProfesorado" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++

        clear
    }

    # Creacion de Cafeteria
    $raiz = "ou=Personal_cafeteria,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Cafeteria"
    $grupo = "grupoCafeteria"
    $usuario = "TrabajadorCafeteria"
    $id = 1
    $cantidad = 2

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }

    # Creacion de Limpieza
    $raiz = "ou=Personal_limpieza,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Limpieza"
    $grupo = "grupoLimpieza"
    $usuario = "TrabajadorLimpieza"
    $id = 1
    $cantidad = 4


    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }

    # Creacion de Administrativos
    $raiz = "ou=Personal_administrativo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Administracion"
    $grupo = "grupoAdministracion"
    $usuario = "TrabajadorAdmin"
    $id = 1
    $cantidad = 6

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }
    CrearTodo_2
}



function ESO_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |ESO|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado $alumnos alumnos correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        ESO_2
    }
}
function 1Bach_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |1ºBachillerato|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado $alumnos alumnos correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        1Bach_2
    }
}
function CFGB_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear CFGB|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado $alumnos alumnos correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CFGB_2
    }
}
function CFGM_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Alumnos| -> |Crear CFGM|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado $alumnos alumnos correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        CFGM_2
    }
}
function Profesores_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Profesorado|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han creado 6 profesores correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Profesores_2
    }
}
function EquipoDirectivo_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Equipo directivo|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han crado los usuarios Director, Vicedirector, 2 Jefes de estudio y Secretaria correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        EquipoDirectivo_2
    }
}
function Administracion_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Administracion|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han crado $cantidad usuarios de Administracion correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Administracion_2
    }
}
function Personal_Limpieza_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Personal limpieza|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han crado $cantidad usuarios de limpieza correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Personal_Limpieza_2
    }
}
function Personal_Cafeteria_2 {
    $seleccion
    clear

    Write-Host "|MENU| -> |Creacion| -> |Individual| -> |Crear Personal Cafeteria|"
    Write-Host "----------------------------------------------------------------------------------------"
    Write-Host ""
    Write-Host "Se han crado $cantidad usuarios de Cafeteria correctamente"
    Write-Host ""
    Write-Host ""
    Write-Host "1-Volver al Menu"
    Write-Host "2-Salir"
    Write-Host ""
    Write-Host ""

    $seleccion = Read-Host "Elige una opcion. (1-2)"

    if ($seleccion -eq 1) {
        Menu
    } elseif ($seleccion -eq 2) {
        Salir
    } else {
        Write-Host "Opcion no valida." -ForegroundColor Red
        pause
        Personal_Cafeteria_2
    }
}

# Creacion de alumnos para la clase ESO
function ESO {

    $letraClase = @("A","B","C","D","E","F","G","H")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    $numeroClase = 4

    New-ADGroup -Name "grupoESO" -SamAccountName "grupoESO" -GroupScope Global -GroupCategory Security -Path "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    for ($variable = 1; $variable -le $numeroClase; $variable++) {
        New-ADOrganizationalUnit -Name "${variable}ESO" -Path "${raiz}"

        for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
            New-ADOrganizationalUnit -Name "${variable}$($letraClase[$variable2])" -Path "ou=${variable}ESO,${raiz}"

            New-ADGroup -Name "grupoESO${variable}$($letraClase[$variable2])" -SamAccountName "grupoESO${variable}$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}"
            Start-Sleep -Seconds 1

            Write-Host "El grupoESO${variable}$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green
            
            $groupDN = "cn=grupoESO${variable}$($letraClase[$variable2]),ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}"
            while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
                Start-Sleep -Seconds 1
            }

            Write-Host "------------------ Creacion de Usuarios grupoESO${variable}$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

            for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {
                
                $cial = "${variable}ESO$($letraClase[$variable2])${id}"

                New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=${variable}$($letraClase[$variable2]),ou=${variable}ESO,${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
                Add-ADGroupMember -Identity "grupoESO${variable}$($letraClase[$variable2])" -Members "alumno${cial}"

                Add-ADGroupMember -Identity "grupoESO" -Members "alumno${cial}"

                Write-Host "El alumno${cial} ha sido creado correctamente"

                $id++
            }

            Write-Host "---------------- Alumnos grupoESO${variable}$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

            clear
        }
    }
    ESO_2
}
# Creacion de alumnos para la clase 1Bach
function 1Bach {

    $letraClase = @("A","B","C","D")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoBach" -SamAccountName "grupoBach" -GroupScope Global -GroupCategory Security -Path "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADOrganizationalUnit -Name "1Bach" -Path "${raiz}"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "1$($letraClase[$variable2])" -Path "ou=1Bach,${raiz}"

        New-ADGroup -Name "grupo1Bach$($letraClase[$variable2])" -SamAccountName "grupo1Bach$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo1Bach$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo1Bach$($letraClase[$variable2]),ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo1Bach$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {
            
            $cial = "1Bach$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=1$($letraClase[$variable2]),ou=1Bach,${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo1Bach$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoBach" -Members "alumno${cial}"

            Write-Host "El alumno${cial} ha sido creado correctamente"

            $id++
        }

        Write-Host "---------------- Alumnos grupo1Bach$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }
    1Bach_2
}
# Creacion de alumnos para la clase CFPB
function CFPB {

    $letraClase = @("1CFPB","2CFPB")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoFP" -SamAccountName "grupoFP" -GroupScope Global -GroupCategory Security -Path "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "$($letraClase[$variable2])" -Path "${raiz}"

        New-ADGroup -Name "grupo$($letraClase[$variable2])" -SamAccountName "grupo$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=$($letraClase[$variable2]),${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo$($letraClase[$variable2]),ou=$($letraClase[$variable2]),${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {

            $cial = "$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=$($letraClase[$variable2]),${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoFP" -Members "alumno${cial}"
            
            Write-Host "El alumno${cial} ha sido creado correctamente"
            
            $id++
        }

        Write-Host "---------------- Alumnos grupo$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }
    CFPB_2
}
# Creacion de alumnos para la clase CFGM
function CFGM {

    $letraClase = @("1CFGM","2CFGM")
    # $alumnos = 30
    $contrasena = "Alumnado"
    $id = 1
    $raiz = "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoFP" -SamAccountName "grupoFP" -GroupScope Global -GroupCategory Security -Path "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"

    for ($variable2 = 0; $variable2 -lt $letraClase.Length; $variable2++) {
        New-ADOrganizationalUnit -Name "$($letraClase[$variable2])" -Path "${raiz}"

        New-ADGroup -Name "grupo$($letraClase[$variable2])" -SamAccountName "grupo$($letraClase[$variable2])" -GroupScope Global -GroupCategory Security -Path "ou=$($letraClase[$variable2]),${raiz}"
        Start-Sleep -Seconds 1

        Write-Host "El grupo$($letraClase[$variable2]) ha sido creado correctamente" -ForegroundColor Green

        $groupDN = "cn=grupo$($letraClase[$variable2]),ou=$($letraClase[$variable2]),${raiz}"
        while (-not (Get-ADGroup -Filter { DistinguishedName -eq $groupDN })) {
            Start-Sleep -Seconds 1
        }

        Write-Host "------------------ Creacion de Usuarios grupo$($letraClase[$variable2]) -------------------------" -ForegroundColor Red

        for ($variable3 = 1; $variable3 -le $alumnos; $variable3++) {

            $cial = "$($letraClase[$variable2])${id}"

            New-ADUser -Name "alumno${cial}" -UserPrincipalName "alumno${cial}@gtbmx.local" -DisplayName "alumno${cial}" -Path "ou=$($letraClase[$variable2]),${raiz}" -AccountPassword (ConvertTo-SecureString "$contrasena${cial}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "grupo$($letraClase[$variable2])" -Members "alumno${cial}"

            Add-ADGroupMember -Identity "grupoFP" -Members "alumno${cial}"

            Write-Host "El alumno${cial} ha sido creado correctamente"

            $id++
        }

        Write-Host "---------------- Alumnos grupo$($letraClase[$variable2]) creados correctamente ------------------" -ForegroundColor Red

        clear
    }
    CFGM_2
}
# Creacion de Profesores
function Profesores {

    $materias = @("dep_BG", "dep_EF", "dep_EPV", "dep_FI", "dep_FQ", "dep_FR", "dep_GH", "dep_INF", "dep_ING", "dep_LCL", "dep_MAT", "dep_MUS", "dep_ORI", "dep_REL", "dep_TEC", "dep_ECO")
    $raiz = "ou=Profesorado,ou=elgaleon,dc=gtbmx,dc=local"
    $cantidad = 6
    $contrasena = "elgaleon_Profesorado_"
    $grupo = "grupoProfesorado_"
    $id = 1

    New-ADGroup -Name "grupoProfesorado" -SamAccountName "grupoProfesorado" -GroupScope Global -GroupCategory Security -Path "ou=Profesorado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoESO" -SamAccountName "grupoESO" -GroupScope Global -GroupCategory Security -Path "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoBach" -SamAccountName "grupoBach" -GroupScope Global -GroupCategory Security -Path "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoFP" -SamAccountName "grupoFP" -GroupScope Global -GroupCategory Security -Path "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    
    foreach ($key in $materias) {
        New-ADOrganizationalUnit -Name "$key" -Path "$raiz"
        New-ADGroup -Name "${grupo}${key}" -SamAccountName "${grupo}${key}" -GroupScope Global -GroupCategory Security -Path "ou=${key},${raiz}"

        Write-Host "El grupo ${grupo} ${key} ha sido creado correctamente" -ForegroundColor Green

        Write-Host "------------------ Creacion de Profesores asignatura ${key} -------------------------" -ForegroundColor Red

        for ($variable = 1; $variable -le $cantidad; $variable++) {
            New-ADUser -Name "Profesor_${key}${id}" -UserPrincipalName "Profesor_${key}${id}@gtbmx.local" -DisplayName "Profesor_${key}${id}" -Path "ou=${key},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${key}${id}" -AsPlainText -Force)
            Add-ADGroupMember -Identity "${grupo}${key}" -Members "Profesor_${key}${id}"

            Add-ADGroupMember -Identity "grupoProfesorado" -Members "Profesor_${key}${id}"

            if ($key -eq "dep_ECO") {
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            } elseif ($key -eq "dep_FI") {
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            } elseif ($key -eq "dep_INF") {
                Add-ADGroupMember -Identity "grupoFP" -Members "Profesor_${key}${id}"
            } else {
                Add-ADGroupMember -Identity "grupoESO" -Members "Profesor_${key}${id}"
                Add-ADGroupMember -Identity "grupoBach" -Members "Profesor_${key}${id}"
            }

            Write-Host "El Profesor_${key}${id} ha sido creado correctamente"

            $id ++
        }

        Write-Host "---------------- Profesores asignatura ${key} creados correctamente ------------------" -ForegroundColor Red

        clear
    }
    Profesores_2
}
function EquipoDirectivo {

    # Creacion de Director
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Director"
    $grupo = "grupoDirector"
    $usuario = "Director"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    New-ADOrganizationalUnit -Name "${usuario}" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=${usuario},${raiz}"

    New-ADGroup -Name "grupoESO" -SamAccountName "grupoESO" -GroupScope Global -GroupCategory Security -Path "ou=ESO,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoBach" -SamAccountName "grupoBach" -GroupScope Global -GroupCategory Security -Path "ou=Bach,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoFP" -SamAccountName "grupoFP" -GroupScope Global -GroupCategory Security -Path "ou=FP,ou=Alumnado,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoProfesorado" -SamAccountName "grupoProfesorado" -GroupScope Global -GroupCategory Security -Path "ou=Profesorado,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADOrganizationalUnit -Name "Vicedirector" -Path "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"

    New-ADGroup -Name "grupoVicedirector" -SamAccountName "grupoVicedirector" -GroupScope Global -GroupCategory Security -Path "ou=Vicedirector,ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoEquipoDirectivo" -SamAccountName "grupoEquipoDirectivo" -GroupScope Global -GroupCategory Security -Path "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoAdministracion" -SamAccountName "grupoAdministracion" -GroupScope Global -GroupCategory Security -Path "ou=Personal_administrativo,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoCafeteria" -SamAccountName "grupoCafeteria" -GroupScope Global -GroupCategory Security -Path "ou=Personal_cafeteria,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    New-ADGroup -Name "grupoLimpieza" -SamAccountName "grupoLimpieza" -GroupScope Global -GroupCategory Security -Path "ou=Personal_limpieza,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"

    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoESO" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoBach" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoFP" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoProfesorado" -Members "$usuario"

    Add-ADGroupMember -Identity "grupoVicedirector" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "$usuario"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Vicedirector
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Vicedirector"
    $grupo = "grupoVicedirector"
    $usuario = "Vicedirector"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "${usuario}${id}"

    Add-ADGroupMember -Identity "grupoESO" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoBach" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoFP" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoProfesorado" -Members "$usuario"

    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "$usuario"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "$usuario"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Secretaria
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Secretaria"
    $grupo = "grupoSecretaria"
    $usuario = "Secretaria"

    Write-Host "------------------ Creacion de "$usuario" -------------------------" -ForegroundColor Red

    New-ADOrganizationalUnit -Name "${usuario}" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=${usuario},${raiz}"
    
    Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

    New-ADUser -Name "${usuario}" -UserPrincipalName "${usuario}@gtbmx.local" -DisplayName "${usuario}" -Path "ou=${usuario},${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}" -AsPlainText -Force)
    Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "${usuario}"

    Add-ADGroupMember -Identity "grupoESO" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoBach" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoFP" -Members "${usuario}"
    
    Add-ADGroupMember -Identity "grupoAdministracion" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoCafeteria" -Members "${usuario}"
    Add-ADGroupMember -Identity "grupoLimpieza" -Members "${usuario}"

    Write-Host "El usuario ${usuario} ha sido creado correctamente"
    Start-Sleep -Seconds 1
    clear

    # Creacion de Jefes de estudio
    $raiz = "ou=Equipo_directivo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_JefeEstudio"
    $grupo = "grupoJefesEstudio"
    $usuario = "JefeEstudios"
    $id = 1
    $cantidad = 2

    New-ADOrganizationalUnit -Name "JefesEstudio" -Path "${raiz}"
    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "ou=JefesEstudio,${raiz}"

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "ou=JefesEstudio,${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Add-ADGroupMember -Identity "grupoEquipoDirectivo" -Members "${usuario}${id}"

        Add-ADGroupMember -Identity "grupoESO" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoBach" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoFP" -Members "${usuario}${id}"
        Add-ADGroupMember -Identity "grupoProfesorado" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++

        clear
    }
    EquipoDirectivo_2
}

# Creacion de Administrativos
function Administracion {

    $raiz = "ou=Personal_administrativo,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Administracion"
    $grupo = "grupoAdministracion"
    $usuario = "TrabajadorAdmin"
    $id = 1
    # $cantidad = 6

    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "${raiz}"

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }
    Administracion_2
}

# Creacion de Cafeteria
function Personal_cafeteria {

    $raiz = "ou=Personal_cafeteria,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Cafeteria"
    $grupo = "grupoCafeteria"
    $usuario = "TrabajadorCafeteria"
    $id = 1
    # $cantidad = 2

    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "${raiz}"

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }
    Personal_Cafeteria_2
}

# Creacion de Limpieza
function Personal_limpieza {

    $raiz = "ou=Personal_limpieza,ou=Personal_laboral,ou=elgaleon,dc=gtbmx,dc=local"
    $contrasena = "elgaleon_Limpieza"
    $grupo = "grupoLimpieza"
    $usuario = "TrabajadorLimpieza"
    $id = 1
    # $cantidad = 4

    New-ADGroup -Name "${grupo}" -SamAccountName "${grupo}" -GroupScope Global -GroupCategory Security -Path "${raiz}"

    for ($variable = 1; $variable -le $cantidad; $variable++) {

        Write-Host "------------------ Creacion de "${usuario}${id}" -------------------------" -ForegroundColor Red

        Write-Host "El grupo ${grupo} ha sido creado correctamente" -ForegroundColor Green

        New-ADUser -Name "${usuario}${id}" -UserPrincipalName "${usuario}${id}@gtbmx.local" -DisplayName "${usuario}${id}" -Path "${raiz}" -AccountPassword (ConvertTo-SecureString "${contrasena}${id}" -AsPlainText -Force)
        Add-ADGroupMember -Identity "${grupo}" -Members "${usuario}${id}"

        Write-Host "El usuario ${usuario}${id} ha sido creado correctamente"
        Start-Sleep -Seconds 1
        $id++
        
        clear
    }
    Personal_Limpieza_2
}


gpupdate

Por defecto, los usuarios vienen deshabilitados, asi que para habilitarlos usaremos el siguiente script

Ver script de ejemplo

Por defecto, los usuarios vienen deshabilitados, asi que para habilitarlos usaremos el siguiente script    
Import-Module ActiveDirectory

$usuarios = Get-ADUser -Filter * -SearchBase "ou=elgaleon,dc=alberto,dc=local"

foreach ($usuario in $usuarios) {

    Enable-ADAccount -Identity $usuario
    Write-Host "Usuario $($usuario.SamAccountName) habilitado correctamente."
}
    
  

Comentarios