{"id":23009586,"url":"https://github.com/devolutions/devolutions-labs","last_synced_at":"2025-08-14T04:32:40.791Z","repository":{"id":37085386,"uuid":"338434689","full_name":"Devolutions/devolutions-labs","owner":"Devolutions","description":"Self-contained Hyper-V Active Directory Lab Environment","archived":false,"fork":false,"pushed_at":"2024-08-20T11:22:29.000Z","size":1706,"stargazers_count":47,"open_issues_count":1,"forks_count":5,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-08-20T13:26:52.914Z","etag":null,"topics":["architecture"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Devolutions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-12T21:13:54.000Z","updated_at":"2024-08-20T11:22:30.000Z","dependencies_parsed_at":"2023-09-25T23:39:26.370Z","dependency_job_id":"846ec083-1167-46de-8fda-877b02c866f7","html_url":"https://github.com/Devolutions/devolutions-labs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devolutions%2Fdevolutions-labs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devolutions%2Fdevolutions-labs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devolutions%2Fdevolutions-labs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Devolutions%2Fdevolutions-labs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Devolutions","download_url":"https://codeload.github.com/Devolutions/devolutions-labs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229800399,"owners_count":18126028,"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":["architecture"],"created_at":"2024-12-15T09:15:03.463Z","updated_at":"2025-08-14T04:32:40.769Z","avatar_url":"https://github.com/Devolutions.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Devolutions Labs\n\n## Prerequisites\n\nThis Hyper-V lab is designed to work properly on a Windows host with 32GB of RAM, alongside common development tools, and with minimal disk usage.\n\nIf you have never set up PowerShell, use the following to change the default execution policy and update it from an elevated shell:\n\n```powershell\nSet-ExecutionPolicy Unrestricted -Force\nInstall-PackageProvider Nuget -Force\nInstall-Module -Name PowerShellGet -Force\n```\n\nIf you do not have a package manager already (winget, choco), use the following code snippet to install one:\n\n```powershell\nif (-Not (Get-Command -Name winget -CommandType Application -ErrorAction SilentlyContinue)) {\n\tiex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))\n}\n```\n\nYou can now install Hyper-V including the management tools (very important!). Manually reboot once this is done:\n\n```powershell\nEnable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -NoRestart\n```\n\nOn Windows Server, the command is slightly different:\n\n```powershell\nInstall-WindowsFeature -Name Hyper-V -IncludeManagementTools\n```\n\nIn order to use Hyper-V from an unelevated shell, add yourself to the local Hyper-V Administrators group:\n\n```powershell\n$CurrentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name\nif (-Not (Get-LocalGroupMember -Group \"Hyper-V Administrators\" -Member $CurrentUser -ErrorAction SilentlyContinue)) {\n\tAdd-LocalGroupMember -Group \"Hyper-V Administrators\" -Member @($CurrentUser)\n}\n```\n\nWhile optional, it is highly recommended to use Windows Terminal instead of the old Windows console host. Install it quickly using chocolatey:\n\n```powershell\nchoco install -y --no-progress microsoft-windows-terminal\n```\n\nLast but not least, install PowerShell 7 using an elevated Windows PowerShell terminal:\n\n```powershell\n\u0026([ScriptBlock]::Create((irm \"https://aka.ms/install-powershell.ps1\"))) -UseMSI -Quiet\n```\n\nAt this point, it is advised to reboot.\n\nFrom this point forward, always use PowerShell 7, as Windows PowerShell compatibility is not guaranteed.\n\n## Host Initialization\n\nOpen an elevated PowerShell prompt, and move to the \"powershell\" directory of this repository containing all the scripts.\n\nMake sure the script files are unblocked for execution if they've been downloaded from a browser (Mark-of-the-Web):\n\n```powershell\nGet-ChildItem . -Recurse | Unblock-File\n```\n\nRun the host_init.ps1 script to initialize the host environment:\n\n```powershell\n.\\host_init.ps1\n```\n\nYou may need to reboot the host for the Hyper-V feature installation to complete.\n\n## Golden Image\n\nDownload the latest Windows Server .iso file (*_windows_server_2025_*.iso). This is the regular Windows Server ISO which is only available to those with the right Visual Studio (MSDN) subscription, not the evaluation ISO available publicly. Ask someone on your team for a download link (hint: the person maintaining these scripts). Copy the iso file to \"C:\\Hyper-V\\ISOs\", then create the golden virtual machine image:\n\n```powershell\n.\\golden.ps1\n```\n\nThe process takes about an hour to complete, and creates a clean virtual hard disk image containing everything we need for all the virtual machines in the lab.\n\n## Virtual Machines\n\nLaunch the script to build the isolated lab of virtual machines:\n\n```powershell\n.\\build.ps1\n```\n\nAll virtual machines are created in order using the golden image. The entire process takes about an hour to complete.\n\n## Host Synchronization\n\nLast but not least, run the host synchronization script to make it possible to reach the virtual machines with the proper hostnames. The script also imports the root certificate authority from the lab, such that HTTPS will work properly inside the browser of the host.\n\n```powershell\n.\\host_sync.ps1\n```\n\n## Remote Desktop Manager\n\nLaunch Remote Desktop Manager, then run the rdm_init.ps1 script to create and initialize a new data source called \"IT-HELP-LAB\"\n\n```powershell\n.\\rdm_init.ps1\n```\n\nYou will need to restart Remote Desktop Manager after running the script to see the new data source in the list. This part usually doesn't work well, so if \"IT-HELP-LAB\" is missing from the list, simply create an SQLite data source of the same name using \"%LocalAppData%\\Devolutions\\RemoteDesktopManager\\IT-HELP-LAB.db\" as database file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevolutions%2Fdevolutions-labs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevolutions%2Fdevolutions-labs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevolutions%2Fdevolutions-labs/lists"}