{"id":27603522,"url":"https://github.com/timothywarner/server-2025-learning-lab","last_synced_at":"2025-04-22T19:17:08.988Z","repository":{"id":284363220,"uuid":"954678832","full_name":"timothywarner/server-2025-learning-lab","owner":"timothywarner","description":"Windows Server 2025 Learning Lab","archived":false,"fork":false,"pushed_at":"2025-03-25T14:25:41.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T14:37:58.994Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timothywarner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-25T13:01:25.000Z","updated_at":"2025-03-25T14:25:44.000Z","dependencies_parsed_at":"2025-03-25T14:38:00.894Z","dependency_job_id":"80d241e8-5999-440a-8f96-bbb2c076e2c7","html_url":"https://github.com/timothywarner/server-2025-learning-lab","commit_stats":null,"previous_names":["timothywarner/server-2025-learning-lab"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothywarner%2Fserver-2025-learning-lab","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothywarner%2Fserver-2025-learning-lab/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothywarner%2Fserver-2025-learning-lab/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothywarner%2Fserver-2025-learning-lab/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timothywarner","download_url":"https://codeload.github.com/timothywarner/server-2025-learning-lab/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250306626,"owners_count":21408926,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-22T19:17:08.298Z","updated_at":"2025-04-22T19:17:08.970Z","avatar_url":"https://github.com/timothywarner.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Windows Server 2025 Learning Lab 🚀\n\nA turnkey solution for exploring Windows Server 2025 in Azure. This lab provides a complete Active Directory environment with development tools pre-installed, following Cloud Adoption Framework (CAF) best practices.\n\n## What You Get 🎁\n\n- 2 Domain Controllers (Primary + Secondary)\n  - Enterprise Root CA for SSL/TLS and SSH certificates\n  - Automatic certificate enrollment\n- 2 Member Servers\n  - Development tools server with Windows Admin Center\n  - Legacy app server (IIS + Classic ASP.NET)\n- 2 Client VMs for testing\n- Secure networking with Azure Bastion\n- Pre-installed development environment\n- CAF-aligned naming and security practices\n\n### Pre-installed Developer Tools 🛠️\n\nThe member server comes loaded with:\n- PowerShell 7\n- Git + GitHub CLI\n- Visual Studio Code\n- Node.js LTS\n- Python 3.11\n- Azure CLI + Azure Developer CLI (azd)\n- Bicep\n- Windows Terminal\n- Windows Admin Center v2\n- GitHub Copilot CLI\n\n## Quick Start 🏃‍♂️\n\n### Prerequisites\n\n1. An Azure subscription ([Start with $200 free credit](https://azure.microsoft.com/free))\n2. Azure CLI installed on your machine\n3. PowerShell 7+ or Azure Cloud Shell\n\n### One-Click Deploy\n\n```powershell\n# Clone this repo\ngit clone https://github.com/timothywarner/server-2025-learning-lab\ncd server-2025-learning-lab\n\n# Deploy (PowerShell)\n./deploy.ps1 -DomainName \"yourdomain.local\" -AdminUsername \"labadmin\"\n```\n\nThat's it! The script will:\n1. Create a resource group\n2. Deploy the lab environment with CAF-compliant naming\n3. Configure Active Directory\n4. Install all dev tools\n5. Provide you access information\n\n### Azure Free Account Benefits 🎉\n- [$200 credit for your first 30 days](https://azure.microsoft.com/free)\n- 750 hours of Windows Server 2025 Azure Edition VM compute\n- 55+ services that are always free\n- No charges until you upgrade to pay-as-you-go\n- [Detailed free account FAQ](https://azure.microsoft.com/free/free-account-faq)\n\n### Cost Management 💰\n- Using Azure Edition VMs for cost optimization\n- Implements cost-effective networking with shared Bastion\n- [Plan your costs with the Azure pricing calculator](https://azure.microsoft.com/pricing/calculator/?service=virtual-machines)\n- Remember to stop VMs when not in use!\n- Set up [Azure Cost Management](https://learn.microsoft.com/azure/cost-management-billing/costs/cost-mgt-best-practices) alerts\n\n## Lab Environment Details 🔍\n\n### Network Layout\n```\nVNet (10.0.0.0/16)\n├── AzureBastionSubnet (10.0.0.0/26)\n│   └── Azure Bastion Host\n├── AD Core Subnet (10.0.1.0/24)\n│   ├── DC1 (10.0.1.4) - FSMO + Enterprise Root CA\n│   └── DC2 (10.0.1.5) - Replica + DHCP\n├── Application Subnet (10.0.2.0/24)\n│   ├── Member Server (10.0.2.4) - Dev Tools + WAC\n│   └── Legacy App (10.0.2.5) - IIS + Classic ASP.NET\n└── Client Subnet (10.0.3.0/24)\n    ├── Win11 Client (10.0.3.4)\n    └── Win11 Client2 (10.0.3.5)\n```\n\n### Security Features\n- Enterprise PKI with auto-enrollment\n- No public IP addresses\n- Azure Bastion for secure access\n- NSG rules following least privilege\n- Key Vault for credential management\n- SSH key-based authentication\n- Domain-issued TLS certificates\n\n### Certificate Services\n- Enterprise Root CA on DC1\n- Automatic certificate enrollment\n- Pre-configured templates for:\n  - Web Server certificates\n  - SSH authentication\n  - User authentication\n- Certificate-based SSH authentication\n- Proper TLS for all web services\n\n### Legacy App Features\n- Classic ASP.NET Web Forms application\n- Windows Authentication (Kerberos)\n- SQL Server integration\n- Perfect for testing:\n  - Kerberos delegation\n  - Double-hop authentication\n  - Token size issues\n  - Protocol transition\n\n## Common Tasks 📋\n\n### Connecting to VMs\n```powershell\n# Via Azure Portal\n1. Go to the VM in Azure Portal\n2. Click \"Connect\" -\u003e \"Bastion\"\n3. Enter credentials\n\n# Via PowerShell\nConnect-AzBastionSession -ResourceGroupName \"rg-ws2025-lab\" -VMName \"vm-name\"\n```\n\n### Stopping/Starting the Lab\n```powershell\n# Stop all VMs (PowerShell)\n./scripts/stop-lab.ps1\n\n# Start all VMs\n./scripts/start-lab.ps1\n```\n\n### Accessing Windows Admin Center\n1. Navigate to `https://memberserver:443`\n2. Use your domain credentials\n\n## Learning Resources 📚\n\n- [Windows Server 2025 Documentation](https://docs.microsoft.com/windows-server)\n- [Azure Virtual Machines Best Practices](https://docs.microsoft.com/azure/virtual-machines)\n- [Active Directory Administration](https://docs.microsoft.com/windows-server/identity/ad-ds/get-started/virtual-dc/active-directory-domain-services-overview)\n\n## Troubleshooting 🔧\n\n### Common Issues\n\n1. **Deployment Fails**\n   - Check your subscription quota\n   - Ensure you have contributor access\n   - Verify region availability\n\n2. **Can't Connect to VMs**\n   - Wait 30 minutes after deployment (AD setup)\n   - Verify Bastion is deployed\n   - Check NSG rules\n\n3. **Dev Tools Issues**\n   - Run `choco upgrade all` for updates\n   - Check Windows Admin Center logs\n   - Verify domain connectivity\n\n### Getting Help\n- Open an issue in this repo\n- Check Azure Portal Activity Log\n- Review deployment logs in `C:\\Logs`\n\n## Contributing 🤝\n\nContributions welcome! Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## License 📄\n\nThis project is licensed under the MIT License - see [LICENSE](LICENSE) for details.\n\n---\nMade with ❤️ for the Windows Server community\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothywarner%2Fserver-2025-learning-lab","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimothywarner%2Fserver-2025-learning-lab","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothywarner%2Fserver-2025-learning-lab/lists"}