¿Te has preguntado alguna vez cómo los profesionales de IT practican y experimentan con diferentes configuraciones sin arriesgar sus sistemas de producción? ¿Cómo puedes tener un entorno Windows 10 completamente funcional para practicar todos los comandos y scripts de este curso sin instalar nada en tu máquina principal?
En este capítulo especial, aprenderás a crear un entorno de pruebas profesional usando Vagrant y VirtualBox. Este entorno te permitirá ejecutar todos los ejemplos prácticos del curso de manera segura, aislada y completamente funcional.
Ventajas del Entorno Virtual
Casos de Uso Reales
Vagrant
VirtualBox
Windows 10
Software Requerido
Recursos Mínimos
# Verificar Vagrant
vagrant --version
# Verificar VirtualBox
VBoxManage --version
# Verificar recursos del sistema
systeminfo | findstr /C:"Total Physical Memory"
Paso 1: Instalar VirtualBox
# Verificar instalación
VBoxManage --version
# Crear directorio para VMs (opcional)
mkdir C:\VirtualMachines
Paso 2: Instalar Vagrant
# Verificar Vagrant
vagrant --version
# Verificar plugins disponibles
vagrant plugin list
Paso 3: Descargar el Repositorio
# Usando Git
git clone https://github.com/jersonmartinez/Curso_Administracion_Windows_Consola.git
# O descargar ZIP desde GitHub
# https://github.com/jersonmartinez/Curso_Administracion_Windows_Consola/archive/refs/heads/master.zip
cd Curso_Administracion_Windows_Consola
cd vagrant
Estructura del Directorio
vagrant/
├── Vagrantfile # Configuración principal
├── env.vagrant.example # Variables de entorno (ejemplo)
├── .env.vagrant # Variables de entorno (personalizado)
├── cleanup.bat # Script de limpieza
├── test-environment.bat # Script de prueba del entorno
├── provision/ # Scripts de provisión
│ ├── create-user.ps1 # Crear usuario y RDP
│ ├── install-guest-additions.ps1 # Instalar Guest Additions
│ ├── configure-windows.ps1 # Configurar Windows
│ └── install-dev-tools.ps1 # Instalar herramientas de desarrollo
├── README.md # Documentación principal
└── RDP.md # Guía de conexión RDP
Archivos Principales Explicados
1. Vagrantfile - El Cerebro del Proyecto
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Windows 10 Lab Environment for Batch Script Testing
# This Vagrantfile creates a Windows 10 VM optimized for console administration
Vagrant.configure("2") do |config|
# Load environment variables from .env.vagrant file
env_vars = {}
env_file = File.join(File.dirname(__FILE__), ".env.vagrant")
if File.exist?(env_file)
File.readlines(env_file).each do |line|
next if line.strip.start_with?("#") || line.strip.empty?
k, v = line.strip.split('=', 2)
env_vars[k] = v if k && v
end
end
# Box configuration
config.vm.box = env_vars["VAGRANT_BOX"] || "gusztavvargadr/windows-10"
config.vm.box_version = env_vars["VAGRANT_BOX_VERSION"] || "2506.0.0"
¿Qué hace cada sección?
2. .env.vagrant - Configuración Personalizada
# Box configuration
VAGRANT_BOX=gusztavvargadr/windows-10
VAGRANT_BOX_VERSION=2506.0.0
# VM configuration
VAGRANT_VM_NAME=Win10-BatchLab
VAGRANT_VM_RAM=16384
VAGRANT_VM_CPUS=4
VAGRANT_VM_DISK_SIZE=120
# User credentials
VAGRANT_WIN_USER=batchtester
VAGRANT_WIN_PASS=P@ssw0rd123
# Network configuration
VAGRANT_RDP_PORT=3389
VAGRANT_HOST_ONLY_IP=192.168.56.10
# Scripts configuration
VAGRANT_SCRIPTS_PATH=../scripts
VAGRANT_SCRIPTS_DESTINATION=C:/BatchScripts
Variables importantes:
3. Scripts de Provisión - Automatización Completa
create-user.ps1 - Creación de Usuario
# Create User and Enable RDP for Windows 10 Lab
param(
[string]$Username = $env:VAGRANT_WIN_USER,
[string]$Password = $env:VAGRANT_WIN_PASS
)
Write-Host "Creating user account and configuring RDP..." -ForegroundColor Green
try {
# Create user account
$securePassword = ConvertTo-SecureString $Password -AsPlainText -Force
New-LocalUser -Name $Username -Password $securePassword -FullName "Batch Script Tester"
# Add user to Administrators group
Add-LocalGroupMember -Group "Administrators" -Member $Username
# Enable Remote Desktop
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0
¿Qué hace?
configure-windows.ps1 - Configuración de Windows
# Configure Windows for Development and Script Testing
Write-Host "Configuring Windows for development environment..." -ForegroundColor Green
try {
# Enable PowerShell execution policy for script development
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force
# Configure Windows Explorer for better development experience
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" -Name "HideFileExt" -Value 0
# Configure UAC for development (less prompts)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Value 0
¿Qué hace?
install-dev-tools.ps1 - Herramientas de Desarrollo
# Install Development Tools for Script Testing
Write-Host "Installing development tools..." -ForegroundColor Green
try {
# Install Chocolatey if not already installed
if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
Set-ExecutionPolicy Bypass -Scope Process -Force
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
}
# Install useful development tools
choco install notepadplusplus -y -ErrorAction SilentlyContinue
choco install 7zip -y -ErrorAction SilentlyContinue
choco install git -y -ErrorAction SilentlyContinue
choco install vscode -y -ErrorAction SilentlyContinue
choco install microsoft-windows-terminal -y -ErrorAction SilentlyContinue
choco install sysinternals -y -ErrorAction SilentlyContinue
¿Qué instala?
Paso 1: Configurar el Entorno
# Navegar al directorio vagrant
cd vagrant
# Copiar archivo de configuración
copy env.vagrant.example .env.vagrant
# Editar configuración (opcional)
notepad .env.vagrant
Paso 2: Iniciar la Máquina Virtual
# Iniciar VM (descarga automática de la imagen)
vagrant up
# Ver estado de la VM
vagrant status
# Ver puertos asignados
vagrant port
Paso 3: Conectarse a la VM
# Conectar vía RDP (método recomendado)
vagrant rdp
# O usar cliente RDP manual
# Host: 127.0.0.1
# Puerto: (mostrado por 'vagrant port')
# Usuario: batchtester
# Contraseña: P@ssw0rd123
Paso 4: Usar el Entorno
Al entrar encontrarás:
Información de Conexión
Parámetro | Valor | Notas |
Host | 127.0.0.1 | Localhost |
Puerto | 3389 | Verificar con vagrant port |
Usuario | batchtester | Usuario administrador |
Contraseña | P@ssw0rd123 | Contraseña segura |
Dominio | (vacío) | No requerido |
Windows (mstsc)
# Abrir cliente RDP
mstsc
# O desde línea de comandos
mstsc /v:127.0.0.1:3389 /u:batchtester
Configuración recomendada:
macOS (Microsoft Remote Desktop)
Linux (Remmina)
# Ubuntu/Debian
sudo apt install remmina remmina-plugin-rdp
# Abrir Remmina
remmina
Gestión de la VM
vagrant up # Iniciar VM
vagrant halt # Apagar VM
vagrant reload # Reiniciar VM
vagrant destroy -f # Eliminar VM completamente
vagrant status # Estado de la VM
vagrant provision # Re-ejecutar provisión
Conexión
vagrant rdp # Conectar vía RDP
vagrant port # Ver puertos asignados
vagrant ssh # Conectar vía SSH (si disponible)
Mantenimiento
cleanup.bat # Limpiar archivos temporales
test-environment.bat # Probar funcionalidad del entorno
Troubleshooting
1. VM no inicia
# Verificar requisitos
vagrant --version
VBoxManage --version
# Limpiar y recrear
vagrant destroy -f
vagrant up
2. Error de puerto RDP
# Verificar puerto asignado
vagrant port
# Usar el puerto mostrado en lugar de 3389
# Ejemplo: 127.0.0.1:53389
3. Problemas de rendimiento
4. Error de Guest Additions
5. Errores de instalación de herramientas
6. Error "Cannot remove the last Administrator"
Logs y Debugging
vagrant up --debug # Modo debug
vagrant provision # Re-ejecutar provisión
Para Aprendizaje
Para Desarrollo
Para Administración
C:\BatchScripts\
├── test\ # Scripts de prueba
│ └── sample-test.bat # Script de muestra
├── logs\ # Archivos de log
├── temp\ # Archivos temporales
├── backup\ # Copias de seguridad
└── [scripts del curso] # Scripts del curso organizados
Configuraciones de Seguridad
Buenas Prácticas
El contenido del curso mantiene la línea práctica, por lo que es necesario tener un entorno de pruebas reconstruíble, de modo tal que no afecte tu equipo físico.
Cómo Usar el Entorno con el Curso
Actualizaciones y Mantenimiento
Actualizar el Entorno
# Aplicar nuevas configuraciones
vagrant provision
# Reiniciar y re-provisionar
vagrant reload --provision
# Actualizar box
vagrant box update
Backup y Restauración
# Exportar configuración
vagrant package --output curso-windows-lab.box
# Importar configuración
vagrant box add curso-windows-lab curso-windows-lab.box
Listo: tienes un laboratorio profesional, automatizado e idéntico cada vez que lo generas. Es tu “taller digital” para aprender, romper, arreglar y dominar la administración de Windows desde la consola con tranquilidad.
Lo que has logrado:
Próximos pasos:
Recursos adicionales:
Repositorios
Fuentes y Referencias
Scripts de provisión: se disparan durante vagrant up
Autor: Jerson Martínez
With supporting text below as a natural lead-in to additional content.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.