WINDOWS SERVER 2022 · HPE PROLIANT DL320 GEN11

Scripts PowerShell · SRV-DONMANOLO

Conjunto de scripts PowerShell ejecutados en el servidor central SRV-DONMANOLO (Windows Server 2022 Standard sobre HPE ProLiant DL320 Gen11) para desplegar los roles del directorio activo, configurar el dominio donmanolo.local, crear OUs y usuarios por área, aplicar GPOs, publicar el sistema de archivos distribuido (DFS) y entregar direccionamiento dinámico a las VLANs vía DHCP.

SCRIPT 01

Instalación de roles

Instala todos los roles necesarios del servidor en un solo comando: Active Directory Domain Services, DNS, DHCP, IIS (Web Server), DFS (Namespace y Replication) y File Server. La flag -IncludeManagementTools instala además las consolas administrativas (RSAT) correspondientes.

Install-WindowsFeature -Name AD-Domain-Services, DNS, DHCP, Web-Server, FS-DFS-Namespace, FS-DFS-Replication, FileAndStorage-Services -IncludeManagementTools

Write-Host "✅ Roles instalados correctamente" -ForegroundColor Green
SCRIPT 02

Promover a Domain Controller

Convierte el servidor en Domain Controller y crea el bosque de Active Directory con el dominio donmanolo.local. Configura tanto el nivel funcional del bosque como del dominio en WinThreshold (Windows Server 2016+), instala el rol DNS integrado y define la contraseña de DSRM (Directory Services Restore Mode).

Install-ADDSForest `
    -DomainName "donmanolo.local" `
    -DomainNetbiosName "DONMANOLO" `
    -ForestMode "WinThreshold" `
    -DomainMode "WinThreshold" `
    -InstallDns:$true `
    -SafeModeAdministratorPassword (ConvertTo-SecureString "Rutencio2026" -AsPlainText -Force) `
    -Force:$true
Nota: al finalizar, el servidor se reinicia automáticamente para aplicar la promoción. Es indispensable que la NIC del servidor tenga IP estática (192.168.1.100) y que su propio DNS apunte a sí mismo antes de ejecutar este script.
SCRIPT 04

Crear y linkear GPOs

Crea las políticas de grupo (GPOs) para cada OU y las vincula. Los operarios no pueden acceder al Panel de Control ni a unidades USB (clave de registro NoDrives con bitmask 67108863 que bloquea las letras A–Z). Las áreas administrativas y de soporte TI quedan habilitadas explícitamente.

$domain = "donmanolo.local"

# GPO Operarios
$gpo1 = New-GPO -Name "GPO_Operarios"
Set-GPRegistryValue -Name "GPO_Operarios" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -ValueName "NoDrives" -Type DWord -Value 67108863
Set-GPRegistryValue -Name "GPO_Operarios" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -ValueName "NoControlPanel" -Type DWord -Value 1
New-GPLink -Name "GPO_Operarios" -Target "OU=Operarios,OU=Usuarios,DC=donmanolo,DC=local"

# GPO Capacitacion
$gpo2 = New-GPO -Name "GPO_Capacitacion"
Set-GPRegistryValue -Name "GPO_Capacitacion" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" -ValueName "NoControlPanel" -Type DWord -Value 1
New-GPLink -Name "GPO_Capacitacion" -Target "OU=Capacitacion,OU=Usuarios,DC=donmanolo,DC=local"

# GPO Administracion
$gpo3 = New-GPO -Name "GPO_Administracion"
Set-GPRegistryValue -Name "GPO_Administracion" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" -ValueName "NoControlPanel" -Type DWord -Value 0
New-GPLink -Name "GPO_Administracion" -Target "OU=Administracion,OU=Usuarios,DC=donmanolo,DC=local"

# GPO Soporte TI
$gpo4 = New-GPO -Name "GPO_Soporte_TI"
Set-GPRegistryValue -Name "GPO_Soporte_TI" -Key "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System" -ValueName "NoControlPanel" -Type DWord -Value 0
New-GPLink -Name "GPO_Soporte_TI" -Target "OU=Soporte_TI,OU=Usuarios,DC=donmanolo,DC=local"

Write-Host "✅ GPOs creadas y linkeadas" -ForegroundColor Green
SCRIPT 05

Crear carpetas DFS con permisos NTFS

Crea las carpetas compartidas del servidor de archivos, las publica como shares SMB y aplica permisos NTFS según el grupo de AD de cada área. Los operarios tienen solo lectura, capacitación y administración pueden modificar, soporte TI y gerencia tienen control total, y la carpeta Compartido es accesible para todos los usuarios del dominio.

# Crear carpetas base y compartir
$carpetas = @("Operarios","Capacitacion","Administracion","Soporte_TI","Gerencia","Compartido")
foreach ($c in $carpetas) {
    New-Item -Path "C:\DFS\$c" -ItemType Directory -Force
    New-SmbShare -Name $c -Path "C:\DFS\$c" -FullAccess "DONMANOLO\Admins. del dominio"
    Write-Host "✅ $c creado y compartido" -ForegroundColor Cyan
}

# Permisos NTFS por grupo
$permisos = @{
    "Operarios"     = @{grupo="GG_Operarios";      acceso="ReadAndExecute"}
    "Capacitacion"  = @{grupo="GG_Capacitacion";   acceso="Modify"}
    "Administracion"= @{grupo="GG_Administracion"; acceso="Modify"}
    "Soporte_TI"    = @{grupo="GG_Soporte_TI";     acceso="FullControl"}
    "Gerencia"      = @{grupo="GG_Admins_Dominio";  acceso="FullControl"}
    "Compartido"    = @{grupo="Usuarios del dominio"; acceso="Modify"}
}

foreach ($carpeta in $permisos.Keys) {
    $path = "C:\DFS\$carpeta"
    $grupo = "DONMANOLO\" + $permisos[$carpeta].grupo
    $acceso = $permisos[$carpeta].acceso
    $acl = Get-Acl $path
    $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($grupo,$acceso,"ContainerInherit,ObjectInherit","None","Allow")
    $acl.AddAccessRule($rule)
    Set-Acl $path $acl
    Write-Host "✅ Permisos $acceso aplicados a $carpeta" -ForegroundColor Cyan
}

# Permisos SMB para acceso de usuarios de dominio
Grant-SmbShareAccess -Name "Operarios" -AccountName "DONMANOLO\GG_Operarios" -AccessRight Change -Force

Write-Host "✅ DFS completo" -ForegroundColor Green
SCRIPT 06

Configurar DHCP Scopes por VLAN

Autoriza el servidor DHCP en Active Directory y crea los scopes correspondientes a cada VLAN del proyecto según el direccionamiento VLSM definido: Operarios (VLAN 10), WLAN_REPO (VLAN 20), Capacitación (VLAN 50) y la pool de servidores (VLAN 70). Cada scope incluye gateway y servidor DNS apuntando al propio SRV-DONMANOLO.

# Autorizar servidor DHCP en AD
Add-DhcpServerInDC -DnsName "SRV-DONMANOLO.donmanolo.local" -IPAddress 192.168.1.100

# OPERARIOS — VLAN 10 (192.168.0.0/25)
Add-DhcpServerv4Scope -Name "OPERARIOS" -StartRange 192.168.0.10 -EndRange 192.168.0.126 -SubnetMask 255.255.255.128 -State Active
Set-DhcpServerv4OptionValue -ScopeId 192.168.0.0 -Router 192.168.0.1 -DnsServer 192.168.1.100 -Force

# WLAN_REPO — VLAN 20 (192.168.1.0/25)
Add-DhcpServerv4Scope -Name "WLAN_REPO" -StartRange 192.168.1.10 -EndRange 192.168.1.126 -SubnetMask 255.255.255.128 -State Active
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -Router 192.168.1.1 -DnsServer 192.168.1.100 -Force

# CAPACITACION — VLAN 50 (192.168.1.192/28)
Add-DhcpServerv4Scope -Name "CAPACITACION" -StartRange 192.168.1.194 -EndRange 192.168.1.206 -SubnetMask 255.255.255.240 -State Active
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.192 -Router 192.168.1.193 -DnsServer 192.168.1.100 -Force

# serverPool — VLAN 70 Servidores (192.168.2.0/23)
Add-DhcpServerv4Scope -Name "serverPool" -StartRange 192.168.2.1 -EndRange 192.168.3.254 -SubnetMask 255.255.254.0 -State Active
Set-DhcpServerv4OptionValue -ScopeId 192.168.2.0 -Router 192.168.2.1 -DnsServer 192.168.1.100 -Force

Write-Host "✅ DHCP Scopes configurados" -ForegroundColor Green