Project Board: https://github.com/users/E7H31234L/projects/2
Build disposable Windows VMs for safe testing, Active Directory practice, and development in an isolated home lab environment
Perfect for: IT administrators, security researchers, students learning Windows administration, and developers testing enterprise deployments.
- OS: Ubuntu 20.04+ (tested on 24.04.1 LTS)
- CPU: Intel VT-x/AMD-V virtualization support
- RAM: 16GB+ for concurrent VMs (8GB per VM recommended)
- Storage: 100GB+ free disk space
- Network: Internet connection for ISO downloads
# 1. Install dependencies
sudo apt update && sudo apt install -y qemu-kvm libvirt-daemon-system virt-manager aria2c
# 2. Configure user access
sudo usermod -aG kvm,libvirt $USER
newgrp libvirt
# 3. Verify setup
kvm-ok
sudo systemctl start libvirtd && sudo systemctl enable libvirtd
# 4. Clone repository
git clone https://github.com/E7H31234L/Windows-Home-Lab.git
cd Windows-Home-Lab
# 5. Install dependencies
./scripts/install.sh# Download required ISOs
./scripts/utilities/enhanced-downloader.sh 1 # VirtIO drivers
./scripts/utilities/enhanced-downloader.sh 2 # Windows 11 ISO
# Create base image (do this once)
./scripts/create-base/create-win11-base.sh
# Create disposable VMs
./scripts/create-vm/create-win11-client.sh --name "Test-Win11"
./scripts/create-vm/create-win-server.sh --name "AD-Server-01"
# List and manage VMs
./scripts/utilities/list-vms.shWindows-Home-Lab/
βββ scripts/
β βββ create-base/ # Base image creation
β βββ create-vm/ # Child VM creation
β βββ utilities/ # Management tools
β βββ common/ # Shared functions
βββ config/ # Configuration files
βββ docs/ # Documentation
βββ README.md # This file
βββ LICENSE # MIT License
| Document | Purpose |
|---|---|
| Administration Guide | Complete operational procedures |
| Security Guide | Security best practices |
| Troubleshooting Guide | Issue resolution |
Customize VM settings in config/paths.conf:
- Memory allocation
- CPU cores
- Network configuration
- Storage paths
- β Input validation - Prevents malicious input attacks
- β Error handling - Scripts fail safely instead of silently
- β Permission checks - Validates group membership and sudo access
- β Path sanitization - Secure file path handling
- β Network isolation - VMs use NAT by default
Never run scripts as root - Use sudo with regular user account.
- Active Directory testing - Safe GPO and AD experiments
- Software deployment - Test SCCM/MECM packages
- Security validation - Malware analysis in isolation
- Patch testing - Validate Windows updates before production
- Development environments - Isolated dev/test setups
- Education - Safe Windows administration practice
- Certification prep - MCSA/MCSE study environments
- Cross-platform testing - Windows software on Linux host
- Malware analysis - Disposable analysis environments
- Penetration testing - Safe Windows target environments
- Forensics training - Practice incident response
- Network security - Test Windows security controls
MIT License - See LICENSE file for details.
- KVM/QEMU - Virtualization foundation
- Libvirt - VM management API
- VirtIO - Windows paravirtualized drivers
- Ubuntu Community - Documentation and support
π Ready to build your home lab! Start with the Quick Start guide and explore the Administration Guide for advanced operations.
Remember: With great power comes great responsibility. Use these VMs safely and ethically.