RETO: Active Directory Completo — TechCorp Solutions¶
Módulo: Administración de Sistemas Operativos (ASO)
Unidad: Servicios de Directorio (Active Directory)
Modalidad: Trabajo en grupo (individual)
Puntuación: 30 puntos — Ver rúbrica de evaluación
Criterios evaluados: CE3a, CE3b, CE3c, CE3d, CE3e, CE3f, CE3g y CE3h
Duración estimada: 2 horas
Este reto integra en un único ejercicio las prácticas PR401, PR402, PR403 y PR404.
Contexto: TechCorp Solutions¶
TechCorp Solutions es una empresa ficticia de consultoría tecnológica con 20 empleados distribuidos en 5 departamentos. Necesitas configurar desde cero su infraestructura de Active Directory en AWS Academy: dominio, usuarios, grupos, recursos compartidos y directivas de grupo.
Estructura organizativa¶
| Departamento | Usuarios | Descripción |
|---|---|---|
| Gerencia | 2 | Dirección y gestión |
| IT | 5 | Soporte técnico y sistemas |
| Administracion | 4 | Contabilidad y administración |
| Comercial | 5 | Ventas y atención al cliente |
| RRHH | 4 | Recursos humanos |
Total: 20 usuarios
Distribución del tiempo (2 horas)¶
| Fase | Tarea | Tiempo | Automatización |
|---|---|---|---|
| 0 | AWS: Instancias, DHCP, Security Groups | 15 min | Manual (consola AWS) |
| 1 | AD: Instalación, DC, usuario admin | 15 min | Parcial (PowerShell) |
| 2 | OUs, 20 usuarios, grupos | 20 min | PowerShell (CSV) |
| 3 | Unir cliente al dominio, RDP | 15 min | Manual + PowerShell |
| 4 | Carpetas compartidas, permisos, carpetas personales | 25 min | PowerShell |
| 5 | GPO: contraseñas y bloqueo | 15 min | Manual (GPO) |
| 6 | Verificación y documentación | 15 min | PowerShell + capturas |
Entregables¶
- Documento Markdown con:
- Capturas de la estructura de OUs y usuarios en AD.
- Capturas de los recursos compartidos y permisos.
- Capturas de las GPO configuradas.
- Salida del script de verificación.
- Explicación breve de cada fase y comandos utilizados.
-
Scripts PowerShell utilizados (02-CrearEstructuraAD.ps1, 04-RecursosCompartidos.ps1).
-
Archivo CSV con los 20 usuarios de TechCorp.
Fase 0: Preparación en AWS (15 min)¶
Sigue la PR302/PR401 para:
- Crear 2 instancias Windows Server 2025 en EC2 (servidor + cliente).
- Configurar DHCP en AWS con nombre de dominio (ej:
techcorp.local) y IP del servidor como DNS. - Configurar Security Group con puertos de AD (53, 88, 135, 389, 445, 636, 3268, 3269, 49152-65535).
- Reiniciar instancias y anotar IP privada del servidor.
Fase 1: Instalación de Active Directory (15 min)¶
1.1 Configurar nombre del servidor¶
Rename-Computer -NewName "DC01" -Restart
1.2 Instalar AD y promover a DC¶
# Instalar rol AD DS
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
# Promover a controlador de dominio (ajusta dominio y contraseña)
$dominio = "techcorp.local"
$contraseñaSafeMode = ConvertTo-SecureString "TechCorp2025!" -AsPlainText -Force
Install-ADDSForest -DomainName $dominio -DomainMode WinThreshold -ForestMode WinThreshold -SafeModeAdministratorPassword $contraseñaSafeMode -Force
# Reinicia automáticamente
1.3 Crear usuario administrador del dominio¶
Tras el reinicio, conecta por RDP y ejecuta:
$pass = ConvertTo-SecureString "Admin2025!" -AsPlainText -Force
New-ADUser -Name "admin.dominio" -SamAccountName "admin.dominio" -AccountPassword $pass -Enabled $true -PasswordNeverExpires $true
Add-ADGroupMember -Identity "Domain Admins" -Members "admin.dominio"
Fase 2: OUs, usuarios y grupos (20 min)¶
2.1 Crear archivo CSV de usuarios¶
Guarda como C:\Scripts\techcorp_usuarios.csv:
Nombre,Apellido,InicioSesion,Posicion,Contraseña,OU
Ana,Garcia,ana.garcia,Directora General,garcia1,Gerencia
Carlos,Ruiz,carlos.ruiz,Gerente,ruiz1,Gerencia
Pep,Terron,pep.terron,Responsable IT,terron1,IT
Laura,Mendez,laura.mendez,Tecnico IT,mendez1,IT
David,Sanz,david.sanz,Tecnico IT,sanz1,IT
Elena,Vidal,elena.vidal,Tecnico IT,vidal1,IT
Fran,Delgado,fran.delgado,Responsable Admin,delgado1,Administracion
Maria,Lopez,maria.lopez,Contable,lopez1,Administracion
Javier,Ortega,javier.ortega,Contable,ortega1,Administracion
Sofia,Navarro,sofia.navarro,Administrativa,navarro1,Administracion
Marcos,Sabates,marcos.sabates,Responsable Comercial,sabates1,Comercial
Paula,Jimenez,paula.jimenez,Comercial,jimenez1,Comercial
Roberto,Castro,roberto.castro,Comercial,castro1,Comercial
Claudia,Moreno,claudia.moreno,Comercial,moreno1,Comercial
Irene,Masot,irene.masot,Responsable RRHH,masot1,RRHH
Alberto,Diaz,alberto.diaz,Tecnico RRHH,diaz1,RRHH
Nuria,Serrano,nuria.serrano,Tecnico RRHH,serrano1,RRHH
Luis,Torres,luis.torres,Comercial,torres1,Comercial
Rosa,Iglesias,rosa.iglesias,Tecnico IT,iglesias1,IT
Pedro,Ramos,pedro.ramos,Tecnico RRHH,ramos1,RRHH
20 usuarios
El CSV incluye 20 usuarios (2 Gerencia, 5 IT, 4 Administración, 5 Comercial, 4 RRHH).
2.2 Script completo: OUs, usuarios y grupos¶
Guarda como C:\Scripts\02-CrearEstructuraAD.ps1:
# Requiere: ejecutar como Administrador tras instalar AD
Import-Module ActiveDirectory
$domain = "techcorp.local"
$domainDN = (Get-ADDomain).DistinguishedName
$baseOU = "OU=TechCorp,$domainDN"
$csvPath = "C:\Scripts\techcorp_usuarios.csv"
# 1. Crear OU raíz y sub-OUs por departamento
$departamentos = @("Gerencia", "IT", "Administracion", "Comercial", "RRHH")
New-ADOrganizationalUnit -Name "TechCorp" -Path $domainDN
foreach ($dept in $departamentos) {
New-ADOrganizationalUnit -Name $dept -Path $baseOU -ErrorAction SilentlyContinue
}
# 2. Crear usuarios desde CSV
$usuarios = Import-Csv -Path $csvPath -Encoding UTF8
foreach ($u in $usuarios) {
$ouPath = "OU=$($u.OU),$baseOU"
$pass = ConvertTo-SecureString $u.Contraseña -AsPlainText -Force
try {
New-ADUser -Name "$($u.Nombre) $($u.Apellido)" -GivenName $u.Nombre -Surname $u.Apellido `
-SamAccountName $u.InicioSesion -UserPrincipalName "$($u.InicioSesion)@$domain" `
-Path $ouPath -AccountPassword $pass -PasswordNeverExpires $true -Enabled $true -Description $u.Posicion
Write-Host "OK: $($u.InicioSesion)" -ForegroundColor Green
} catch { Write-Host "Error $($u.InicioSesion): $_" -ForegroundColor Red }
}
# 3. Crear grupos por departamento
$grupos = @("Gerencia_Usuarios", "IT_Usuarios", "Administracion_Usuarios", "Comercial_Usuarios", "RRHH_Usuarios")
foreach ($g in $grupos) {
New-ADGroup -Name $g -GroupScope Global -GroupCategory Security -Path $baseOU -ErrorAction SilentlyContinue
}
# 4. Añadir usuarios a sus grupos
$mapOU = @{ Gerencia = "Gerencia_Usuarios"; IT = "IT_Usuarios"; Administracion = "Administracion_Usuarios"; Comercial = "Comercial_Usuarios"; RRHH = "RRHH_Usuarios" }
foreach ($u in $usuarios) {
$grupo = $mapOU[$u.OU]
if ($grupo) { Add-ADGroupMember -Identity $grupo -Members $u.InicioSesion -ErrorAction SilentlyContinue }
}
Write-Host "`nEstructura creada. Usuarios: $($usuarios.Count)" -ForegroundColor Cyan
Ejecuta: .\02-CrearEstructuraAD.ps1
Fase 3: Unir cliente al dominio y RDP (15 min)¶
- En el cliente, verifica DNS:
nslookup techcorp.local - Une al dominio:
Add-Computer -DomainName "techcorp.local" -Credential (Get-Credential "techcorp\admin.dominio") - Reinicia:
Restart-Computer - En el servidor, habilita RDP para Domain Users:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "Domain Users"
Fase 4: Recursos compartidos y carpetas personales (25 min)¶
Guarda como C:\Scripts\04-RecursosCompartidos.ps1:
# Requiere: ejecutar en el DC como Administrador
Import-Module ActiveDirectory
$dominio = (Get-ADDomain).NetBIOSName
$servidor = $env:COMPUTERNAME
# 1. Estructura de carpetas
New-Item -Path "C:\TechCorp_Users" -ItemType Directory -Force
New-Item -Path "C:\TechCorp_Datos" -ItemType Directory -Force
@("Gerencia", "IT", "Administracion", "Comercial", "RRHH") | ForEach-Object {
New-Item -Path "C:\TechCorp_Datos\$_" -ItemType Directory -Force
}
# 2. Compartir carpetas
New-SmbShare -Name "TechCorp_Users" -Path "C:\TechCorp_Users" -ChangeAccess "Domain Users"
New-SmbShare -Name "TechCorp_Datos" -Path "C:\TechCorp_Datos" -ReadAccess "Domain Users"
# 3. Carpetas personales y permisos NTFS por usuario
$usuarios = Get-ADUser -Filter * -SearchBase "OU=TechCorp,$((Get-ADDomain).DistinguishedName)" -SearchScope Subtree | Where-Object { $_.Enabled }
foreach ($u in $usuarios) {
$userPath = "C:\TechCorp_Users\$($u.SamAccountName)"
New-Item -Path $userPath -ItemType Directory -Force
$acl = Get-Acl $userPath
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("$dominio\$($u.SamAccountName)", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.AddAccessRule($rule)
Set-Acl $userPath $acl
Set-ADUser -Identity $u.SamAccountName -HomeDrive "X:" -HomeDirectory "\\$servidor\TechCorp_Users\$($u.SamAccountName)"
}
Write-Host "Carpetas personales configuradas para $($usuarios.Count) usuarios" -ForegroundColor Green
Ejecuta: .\04-RecursosCompartidos.ps1
Fase 5: GPO de contraseñas y bloqueo (15 min)¶
Abre Administración de directivas de grupo (gpmc.msc) → Editar Default Domain Policy:
- Directivas de contraseña: Vigencia 90 días, historial 5, longitud mínima 4, sin complejidad.
- Directiva de bloqueo: 4 intentos, restablecer contador 10 min, duración bloqueo 0 (manual).
En el cliente: gpupdate /force
Fase 6: Verificación (15 min)¶
Script de verificación¶
# Ejecutar en el DC
Write-Host "=== VERIFICACIÓN RETO TECHCORP ===" -ForegroundColor Cyan
Write-Host "`n1. Dominio:" -ForegroundColor Yellow
Get-ADDomain | Select-Object Name, DNSRoot
Write-Host "`n2. Usuarios por OU:" -ForegroundColor Yellow
Get-ADOrganizationalUnit -Filter * -SearchBase "OU=TechCorp,$((Get-ADDomain).DistinguishedName)" | ForEach-Object {
$count = (Get-ADUser -Filter * -SearchBase $_.DistinguishedName).Count
Write-Host " $($_.Name): $count usuarios"
}
Write-Host "`n3. Recursos compartidos:" -ForegroundColor Yellow
Get-SmbShare | Where-Object { $_.Name -like "TechCorp*" } | Format-Table Name, Path -AutoSize
Write-Host "`n4. Carpetas personales asignadas:" -ForegroundColor Yellow
Get-ADUser -Filter * -SearchBase "OU=TechCorp,$((Get-ADDomain).DistinguishedName)" -Properties HomeDirectory |
Where-Object { $_.HomeDirectory } | Select-Object SamAccountName, HomeDirectory | Format-Table -AutoSize
Comprobaciones manuales¶
- Inicia sesión en el cliente con
ana.garcia(o cualquier usuario). - Verifica que aparece la unidad X: (carpeta personal).
- Crea un archivo en X: y comprueba que se guarda.
- Accede a
\\DC01\TechCorp_Datosy verifica permisos por departamento.
Criterios de evaluación¶
| Criterio | Puntos |
|---|---|
| Dominio AD instalado y DC funcionando | 3 |
| OUs creadas correctamente | 2 |
| 20 usuarios creados desde CSV en sus OUs | 5 |
| Grupos creados y usuarios asignados | 3 |
| Cliente unido al dominio y RDP funcionando | 3 |
| Recursos compartidos y carpetas personales | 5 |
| GPO de contraseñas y bloqueo configuradas | 3 |
| Verificación exitosa y documentación | 3 |
| Uso de PowerShell (automatización) | 3 |
| Total | 30 |
Ver rúbrica de evaluación: Rúbrica del reto — criterios y niveles (para conocer cómo se valorará cada criterio).