├── .gitignore ├── Artifacts ├── AUTHORING.md ├── README.md ├── linux-apt-package │ ├── Artifactfile.json │ ├── README.md │ └── linux-apt-package.sh ├── linux-bootstrap-chef │ ├── Artifactfile.json │ └── chefArtifact.png ├── linux-change-password │ └── Artifactfile.json ├── linux-change-sshkey │ └── Artifactfile.json ├── linux-deploy-app-from-storage │ ├── Artifactfile.json │ ├── BlobDownloadService.js │ ├── deploy_from_azure_container_v1.sh │ └── download_azure_container.js ├── linux-deprovision │ ├── Artifactfile.json │ └── depro.sh ├── linux-install-docker-container │ ├── Artifactfile.json │ ├── dockerArtifact.png │ └── linux_install_docker_container.sh ├── linux-install-docker │ ├── Artifactfile.json │ ├── dockerArtifact.png │ └── linux_install_docker_v1.sh ├── linux-install-mongodb │ ├── Artifactfile.json │ ├── linux_install_mongodb_v1.sh │ └── mongoDBArtifact.png ├── linux-install-nodejs │ ├── Artifactfile.json │ ├── linux_install_nodejs_v1.sh │ └── nodeArtifact.png ├── linux-install-nvm │ ├── Artifactfile.json │ └── linux_install_nvm_v1.sh ├── linux-java │ ├── Artifactfile.json │ └── linux_install_jdk.sh ├── linux-mono-devel │ ├── Artifactfile.json │ ├── Readme.md │ └── install-mono-devel.sh ├── linux-npm-package │ ├── Artifactfile.json │ ├── README.md │ └── linux-npm-package.sh ├── linux-powershell │ ├── Artifactfile.json │ └── linux-powershell.sh ├── linux-run-bash │ └── Artifactfile.json ├── linux-secure-mariadb │ ├── Artifactfile.json │ ├── README.md │ ├── linux-secure-mariadb.sh │ └── mariaDBArtifact.png ├── linux-swapfile │ ├── Artifactfile.json │ └── linux_swapfile.sh ├── linux-vsts-build-agent │ ├── Artifactfile.json │ └── agent-install.py ├── linux-yum-package │ ├── Artifactfile.json │ ├── README.md │ └── linux-yum-package.sh ├── windows-7zip │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-ConfigurationManagerCurrentBranch(EVAL) │ ├── README.md │ ├── Reset-SqlAdmin.psm1 │ ├── artifactfile.json │ └── setupCMCB.ps1 ├── windows-ConfigurationManagerTechnicalPreview │ ├── README.md │ ├── Reset-SqlAdmin.psm1 │ ├── artifactfile.json │ └── setupCMCB.ps1 ├── windows-CreateDomain │ ├── artifactfile.json │ ├── createDomain.png │ └── setupDomain.ps1 ├── windows-ServiceFabricSDK │ ├── InstallServiceFabricSDKAndTools.ps1 │ ├── README.md │ └── artifactfile.json ├── windows-add-local-admin │ ├── Artifactfile.json │ ├── artifact-funcs.ps1 │ ├── artifact-main.ps1 │ └── artifact.ps1 ├── windows-appxremove │ ├── Artifactfile.json │ └── remove-appx-packages.ps1 ├── windows-atom │ ├── Artifactfile.json │ ├── ChocolateyPackageInstaller.ps1 │ └── startChocolatey.ps1 ├── windows-awscli │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-azuredevops-multiple-agents │ ├── artifactfile.json │ └── run.ps1 ├── windows-azurepowershell │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-beyond-compare │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-bootstrap-chef │ ├── Artifactfile.json │ └── chefArtifact.png ├── windows-certificate-from-keyvault │ ├── Artifactfile.json │ └── InstallCertificate.ps1 ├── windows-change-password │ └── Artifactfile.json ├── windows-chocolatey │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-chocolateyfeed │ ├── Artifactfile.json │ ├── Artifactfile.ps1 │ └── ChocolateyFeedInstaller.ps1 ├── windows-chrome │ ├── Artifactfile.json │ ├── Google_Chrome_icon.png │ └── install-choco-package.ps1 ├── windows-clone-git-repo │ ├── Artifactfile.json │ ├── GitEnlister.ps1 │ ├── README.md │ └── StartChocolatey.ps1 ├── windows-create-url-shortcut │ ├── Artifactfile.json │ └── CreateUrlShortcut.ps1 ├── windows-deploymentgroup │ ├── Artifactfile.json │ └── InstallAndConfigureDeploymentGroupAgent.ps1 ├── windows-desired-state-configuration-az-automation │ ├── Artifactfile.json │ ├── DscMetaConfigs.ps1 │ ├── README.md │ └── RegisterDscNodeConfiguration.ps1 ├── windows-development-certificate │ ├── Artifactfile.json │ └── InstallCertificate.ps1 ├── windows-docker │ ├── Artifactfile.json │ ├── Artifactfile.ps1 │ ├── ChocolateyPackageInstaller.ps1 │ └── docker-logo.png ├── windows-domain-join-new │ ├── Artifactfile.json │ └── artifact.ps1 ├── windows-domain-join │ ├── Artifactfile.json │ └── domainJoinArtifact.png ├── windows-dotnet45 │ ├── Artifactfile.json │ ├── dotnet.png │ └── install-choco-package.ps1 ├── windows-download-artifacts-drop │ ├── ArtifactFile.json │ ├── Common.psm1 │ └── DownloadArtifactsDrop.ps1 ├── windows-download-sas-blob │ ├── Artifactfile.json │ └── artifact.ps1 ├── windows-eclipse │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-enable-local-admins │ ├── Artifactfile.json │ └── EnableLocalAdmins.ps1 ├── windows-execute-powershell-script │ ├── ArtifactFile.json │ ├── Common.psm1 │ └── ExecutePowerShellScript.ps1 ├── windows-fiddler │ └── Artifactfile.json ├── windows-firefox │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-firewall │ ├── Artifactfile.json │ ├── artifact-main.ps1 │ └── artifact.ps1 ├── windows-git │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-gvim-cream │ ├── Artifactfile.json │ ├── Install-gVim.ps1 │ ├── Readme.md │ └── vim.ico ├── windows-iis │ ├── Artifactfile.json │ ├── artifact-main.ps1 │ └── artifact.ps1 ├── windows-install-certificate │ ├── Artifactfile.json │ └── certificate-install.ps1 ├── windows-install-powershell-module │ ├── Artifactfile.json │ └── Install-PowerShellModule.ps1 ├── windows-install-windows-ms-updates │ ├── Artifactfile.json │ └── artifact.ps1 ├── windows-install-windows-updates │ ├── Artifactfile.json │ └── artifact.ps1 ├── windows-intellij │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-jhipster │ ├── Artifactfile.json │ ├── Artifactfile.ps1 │ ├── ChocolateyPackageInstaller.ps1 │ └── YarnPackageInstaller.ps1 ├── windows-mongodb │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-node │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-noop │ └── Artifactfile.json ├── windows-notepadplusplus │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-nvm │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-powershell3 │ ├── Artifactfile.json │ ├── Windows6.1-KB2506143-x64.msu │ ├── Windows6.1-KB2506143-x86.msu │ ├── install.cmd │ └── powershell.png ├── windows-powershellcore │ ├── Artifactfile.json │ ├── Install-PowerShellCore.ps1 │ └── Powershell_black_64.png ├── windows-putty │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-remote-desktop-connection-manager │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-restart │ └── artifactfile.json ├── windows-ruckzuck │ ├── Artifactfile.json │ └── startRuckzuck.ps1 ├── windows-run-powershell │ ├── Artifactfile.json │ └── powershell.png ├── windows-selenium │ ├── Artifactfile.json │ ├── Demo Sample Solution │ │ ├── vsarDTLSeleniumDemo.sln │ │ └── vsarDTLSeleniumDemo │ │ │ ├── App.config │ │ │ ├── Program.cs │ │ │ ├── packages.config │ │ │ └── vsarDTLSeleniumDemo.csproj │ ├── README.md │ ├── install-choco-package.ps1 │ └── selenium-logo.png ├── windows-seleniumgrid-hub │ ├── Artifactfile.json │ ├── GridDeployer.ps1 │ ├── GridDeployerUtility.ps1 │ ├── README.md │ └── SeleniumGridSetupService.exe ├── windows-seleniumgrid-node │ ├── Artifactfile.json │ ├── GridDeployer.ps1 │ ├── GridDeployerUtility.ps1 │ ├── README.md │ └── SeleniumGridSetupService.exe ├── windows-settimezone │ ├── README.md │ └── artifactfile.json ├── windows-slack │ ├── Artifactfile.json │ ├── ChocolateyPackageInstaller.ps1 │ ├── README.md │ └── startChocolatey.ps1 ├── windows-ssms │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-sublime-text │ ├── Artifactfile.json │ ├── README.md │ └── install-choco-package.ps1 ├── windows-sysinternals │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-sysprep │ ├── Artifactfile.json │ ├── CleanRegistry.bat │ ├── OldSysprep.ps1 │ ├── PrepareForSysprep.ps1 │ ├── Sysprep.ps1 │ └── Test-Sysprep.ps1 ├── windows-test-paramtypes │ ├── artifact.ps1 │ └── artifactfile.json ├── windows-ubuntu │ ├── Artifactfile.json │ ├── InstallUbuntu.ps1 │ └── ubuntu_orange_hex_su.png ├── windows-visualstudio │ ├── Artifactfile.json │ └── artifact.ps1 ├── windows-vscode │ ├── Artifactfile.json │ ├── install-vscode.ps1 │ ├── vscode.inf │ └── vscode.png ├── windows-vscode64 │ ├── Artifactfile.json │ ├── install-vscode.ps1 │ └── vscode.svg ├── windows-vsts-build-agent │ ├── Artifactfile.json │ └── vsts-agent-install.ps1 ├── windows-vsts-download-and-run-script │ ├── Artifactfile.json │ └── DownloadVstsDropAndExecuteScript.ps1 ├── windows-webdeploy │ ├── Artifactfile.json │ └── install-choco-package.ps1 ├── windows-winrm │ ├── artifactfile.json │ ├── config-winrm.ps1 │ └── makecert.exe └── windows-wsl │ ├── Artifactfile.json │ └── EnableWSL.ps1 ├── CODEOWNERS ├── Environments ├── README.md ├── ServiceFabric-LabCluster │ ├── Create-ClusterCertificate.ps1 │ ├── README.md │ ├── azuredeploy.json │ └── metadata.json ├── SharePoint-AllVersions │ ├── CHANGELOG.md │ ├── README.md │ ├── azuredeploy.json │ ├── azuredeploy.parameters.json │ ├── dsc │ │ ├── ConfigureDCVM.ps1 │ │ ├── ConfigureDCVM.zip │ │ ├── ConfigureSPLegacy.ps1 │ │ ├── ConfigureSPLegacy.zip │ │ ├── ConfigureSPSE.ps1 │ │ ├── ConfigureSPSE.zip │ │ ├── ConfigureSQLVM.ps1 │ │ └── ConfigureSQLVM.zip │ ├── main.bicep │ └── metadata.json ├── SharePoint-SingleFarm-FullConfig │ ├── CHANGELOG.md │ ├── README.md │ ├── azuredeploy.json │ ├── azuredeploy.parameters.json │ ├── dsc │ │ ├── ConfigureDCVM.ps1 │ │ ├── ConfigureDCVM.zip │ │ ├── ConfigureFELegacy.ps1 │ │ ├── ConfigureFELegacy.zip │ │ ├── ConfigureFESE.ps1 │ │ ├── ConfigureFESE.zip │ │ ├── ConfigureSPLegacy.ps1 │ │ ├── ConfigureSPLegacy.zip │ │ ├── ConfigureSPSE.ps1 │ │ ├── ConfigureSPSE.zip │ │ ├── ConfigureSQLVM.ps1 │ │ └── ConfigureSQLVM.zip │ └── metadata.json ├── SharePoint-singleFarm-fullConfig │ └── main.bicep ├── WebApp-MySQL │ ├── Readme.md │ ├── azuredeploy.json │ └── metadata.json ├── WebApp-PostgresSQL │ ├── Readme.md │ ├── azuredeploy.json │ └── metadata.json ├── WebApp-SQL │ ├── Readme.md │ ├── azuredeploy.json │ └── metadata.json └── WebApp │ ├── Readme.md │ ├── azuredeploy.json │ └── metadata.json ├── LICENSE.txt ├── README.md ├── SECURITY.md ├── Tools └── ConvertDtlLabToIsolatedNetwork │ └── Convert-DtlLabToIsolatedNetwork.ps1 ├── samples ├── ClassroomLabs │ ├── Modules │ │ └── Library │ │ │ ├── .gitignore │ │ │ ├── .vscode │ │ │ └── launch.json │ │ │ ├── Az.LabServices.psm1 │ │ │ ├── BulkOperations │ │ │ ├── Az.LabServices.BulkOperations.psm1 │ │ │ ├── Examples │ │ │ │ ├── AADGroupMembers.csv │ │ │ │ ├── Create-AzLabAccounts.ps1 │ │ │ │ ├── Create-AzLabs.ps1 │ │ │ │ ├── CustomRoleAssignments.csv │ │ │ │ ├── Get-RegistrationLinks.ps1 │ │ │ │ ├── PickALab.ps1 │ │ │ │ ├── PickLabAndProperties.ps1 │ │ │ │ ├── PickProperties.ps1 │ │ │ │ ├── Publish-AzLabs.ps1 │ │ │ │ ├── PublishAll.ps1 │ │ │ │ ├── PublishAllJson.ps1 │ │ │ │ ├── PublishById.ps1 │ │ │ │ ├── PublishByTag.ps1 │ │ │ │ ├── PublishStaging.ps1 │ │ │ │ ├── Remove-AzLabAccounts.ps1 │ │ │ │ ├── Remove-AzLabs.ps1 │ │ │ │ ├── Reset-StudentAvailableHours.ps1 │ │ │ │ ├── Validate-AzLabs.ps1 │ │ │ │ ├── charms.csv │ │ │ │ ├── hogwarts.csv │ │ │ │ └── hogwarts.json │ │ │ └── Readme.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── HowTo.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ ├── Scenarios │ │ │ ├── AllFeatures.ps1 │ │ │ ├── CreateWorkshop.ps1 │ │ │ ├── PrintVmsByUser.ps1 │ │ │ └── StopVms.ps1 │ │ │ ├── Tests │ │ │ ├── Cleanup.ps1 │ │ │ ├── Fast-Schedule.tests.ps1 │ │ │ ├── Fast-SharedGallery.tests.ps1 │ │ │ ├── Fast-User.tests.ps1 │ │ │ ├── Lab.tests.ps1 │ │ │ ├── LabAccount.tests.ps1 │ │ │ ├── Readme.md │ │ │ ├── Utils.psm1 │ │ │ └── VM.tests.ps1 │ │ │ └── Utilities │ │ │ ├── Assign-LabLiaisonRoleToLabAccounts.ps1 │ │ │ ├── Create-AadGroups.ps1 │ │ │ ├── Get-LabMetrics.ps1 │ │ │ ├── Import-LabLiaisonRole.ps1 │ │ │ ├── Publish-LabServicesData.ps1 │ │ │ └── Reset-StudentQuotasRunbook.ps1 │ ├── Scripts │ │ ├── ActiveDirectoryJoin │ │ │ ├── Join-AzLabADStudent_AddStudent.ps1 │ │ │ ├── Join-AzLabADStudent_EnrollMDM.ps1 │ │ │ ├── Join-AzLabADStudent_JoinVm.ps1 │ │ │ ├── Join-AzLabADStudent_RenameVm.ps1 │ │ │ ├── Join-AzLabADTemplate.ps1 │ │ │ ├── README.md │ │ │ ├── Set-AzLabADVms.ps1 │ │ │ ├── Set-AzLabCapacity.ps1 │ │ │ ├── Utils.ps1 │ │ │ └── img │ │ │ │ ├── Azure AD DS.png │ │ │ │ └── On-prem AD DS Server.png │ │ ├── BigDataAnalytics │ │ │ ├── Hortonworks-Scheduled-Task.xml │ │ │ ├── PowerShell-Run.png │ │ │ ├── README.md │ │ │ ├── Run-Task.png │ │ │ ├── Start-Hortonworks-DockerContainers.ps1 │ │ │ └── Task-Scheduler.png │ │ ├── BringImageToSharedImageGallery │ │ │ ├── BringImageToSharedImageGallery.ps1 │ │ │ └── Readme.md │ │ ├── CustomContributorRole │ │ │ ├── AzLabsCustomContributorRole.json │ │ │ ├── ImportCustomContributorRole.ps1 │ │ │ └── Readme.md │ │ ├── EthicalHacking │ │ │ ├── Create-EthicalHacking-LabsAccount.ps1 │ │ │ ├── Create-EthicalHackingLabAccountWithPrompts.ps1 │ │ │ ├── README.md │ │ │ └── Setup-EthicalHacking.ps1 │ │ ├── FedoraDockerContainer │ │ │ ├── Dockerfile │ │ │ ├── Images │ │ │ │ ├── DockerCmd1.png │ │ │ │ ├── DockerCmd2.png │ │ │ │ ├── DockerCmd3.png │ │ │ │ ├── DockerDiagram.png │ │ │ │ ├── RemoteFedoraDesktop.png │ │ │ │ ├── X2GoLogin.png │ │ │ │ ├── X2GoNewSession.png │ │ │ │ └── X2GoSessionPreferences.png │ │ │ ├── README.md │ │ │ └── entrypoint.sh │ │ ├── GenericPreparation │ │ │ ├── Prepare-MicrosoftStoreApplications.ps1 │ │ │ ├── Prepare-OneDrive.ps1 │ │ │ ├── Prepare-Updates.ps1 │ │ │ └── Readme.md │ │ ├── HyperV │ │ │ ├── README.md │ │ │ └── SetupForNestedVirtualization.ps1 │ │ ├── LinuxGraphicalDesktopSetup │ │ │ ├── GNOME_MATE │ │ │ │ ├── ReadMe.md │ │ │ │ └── Ubuntu │ │ │ │ │ ├── x2go-mate.sh │ │ │ │ │ └── xrdp-gnome.sh │ │ │ └── XFCE_Xubuntu │ │ │ │ ├── ReadMe.md │ │ │ │ └── Ubuntu │ │ │ │ ├── x2go-xfce4.sh │ │ │ │ └── x2go-xubuntu.sh │ │ └── Readme.md │ └── SdkSamples │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── SDKSample.sln │ │ └── SDKSample │ │ ├── App.config │ │ ├── DefaultVnetScenario.cs │ │ ├── PeeredVnetScenario.cs │ │ ├── Program.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ ├── SDKSample.csproj │ │ ├── Utilities.cs │ │ └── packages.config ├── DevTestLabs │ ├── AzureFunctions │ │ ├── CSharp │ │ │ ├── ApplyWindowsUpdateArtifact.cs │ │ │ ├── AzureFunctions.csproj │ │ │ ├── AzureFunctions.sln │ │ │ ├── GlobalSuppressions.cs │ │ │ ├── Helpers │ │ │ │ ├── Authentication.cs │ │ │ │ ├── Content.cs │ │ │ │ ├── DevTestLabs.cs │ │ │ │ └── Settings.cs │ │ │ ├── UpdateInternalSupportPage.cs │ │ │ ├── host.json │ │ │ └── local.settings.json │ │ ├── LabSuccessfullyUpdated.png │ │ ├── PowerShell │ │ │ ├── ApplyWindowsUpdateArtifact.ps1 │ │ │ └── UpdateInternalSupportPage.ps1 │ │ ├── VirtualMachineNotRunning.png │ │ ├── VirtualMachineSuccess.png │ │ └── readme.md │ ├── GatewaySample │ │ ├── .gitignore │ │ ├── README.md │ │ ├── arm │ │ │ ├── environment │ │ │ │ ├── Readme.md │ │ │ │ └── WindowsJumpboxToTwoLinuxVMs │ │ │ │ │ ├── azuredeploy.json │ │ │ │ │ └── metadata.json │ │ │ ├── gateway │ │ │ │ ├── Deploy-AzureResourceGroup.ps1 │ │ │ │ ├── Readme.md │ │ │ │ ├── azuredeploy-function.json │ │ │ │ ├── azuredeploy-gateway.json │ │ │ │ ├── azuredeploy-gateway.ps1 │ │ │ │ ├── azuredeploy.json │ │ │ │ └── azuredeploy.parameters.json │ │ │ └── lab │ │ │ │ ├── Readme.md │ │ │ │ ├── azuredeploy.json │ │ │ │ └── azuredeploy.parameters.json │ │ ├── src │ │ │ ├── RDGatewayAPI │ │ │ │ ├── Data │ │ │ │ │ ├── PagedEntities.cs │ │ │ │ │ ├── TokenEntity.cs │ │ │ │ │ └── UserEntity.cs │ │ │ │ ├── Extensions.cs │ │ │ │ ├── Functions │ │ │ │ │ ├── CreateToken.cs │ │ │ │ │ ├── HealthCheck.cs │ │ │ │ │ ├── ReportTokens.cs │ │ │ │ │ ├── ReportUsers.cs │ │ │ │ │ └── TrackToken.cs │ │ │ │ ├── RDGatewayAPI.csproj │ │ │ │ └── host.json │ │ │ └── devtestlab-gateway.sln │ │ └── tools │ │ │ ├── Connect-VirtualMachine.ps1 │ │ │ ├── Create-SigningCertificate.ps1 │ │ │ └── Set-DevTestLabGateway.ps1 │ ├── Modules │ │ └── Library │ │ │ ├── .vscode │ │ │ └── launch.json │ │ │ ├── Az.DevTestLabs2.psm1 │ │ │ ├── CONTRIBUTING.md │ │ │ ├── HowTo.md │ │ │ ├── LICENSE.md │ │ │ ├── README.md │ │ │ └── Tests │ │ │ ├── Lab-AddingUsers.tests.ps1 │ │ │ ├── Lab-AllowedVmSizes.tests.ps1 │ │ │ ├── Lab-Pipeline.tests.ps1 │ │ │ ├── Lab-SharedImageGallery-images.tests.ps1 │ │ │ ├── Lab-SharedImageGallery.tests.ps1 │ │ │ ├── RunPesterTests.ps1 │ │ │ ├── Scenario-AllFeatures.ps1 │ │ │ ├── Scenario-MultipleLabsFromCsv.ps1 │ │ │ ├── Scenario-MultipleVMsFromCsv.ps1 │ │ │ ├── Vm-ExtendedStatus.tests.ps1 │ │ │ ├── Vm-Pipeline.tests.ps1 │ │ │ └── Vm-Properties.tests.ps1 │ ├── ProvisionDemoLab │ │ ├── ProvisionDemoLab.ps1 │ │ ├── README.md │ │ ├── azuredeploy.json │ │ └── azuredeploy.parameters.json │ ├── QuickStartTemplates │ │ ├── 101-dtl-create-blockchain-lab │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-lab-shared-gallery-configured │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-lab │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-builtin-user │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-pwd-customimage-with-expiration │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-pwd-customimage │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-pwd-galleryimage │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-pwd-sharedimage │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-ssh-customimage │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 101-dtl-create-vm-username-ssh-galleryimage │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-customimage-from-linux-vm │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-customimage-from-vhd │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-customimage-from-windows-vm │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-formula │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-announcement │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-artifact-repository │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-cost-threshold │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-internal-support │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-marketplace-images │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-policies │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-seleniumgrid │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── SeleniumGridSetupService │ │ │ │ ├── SeleniumGridSetupService.sln │ │ │ │ └── SeleniumGridSetupService │ │ │ │ │ ├── App.config │ │ │ │ │ ├── InputConfig.cs │ │ │ │ │ ├── Program.cs │ │ │ │ │ ├── ProjectInstaller.Designer.cs │ │ │ │ │ ├── ProjectInstaller.cs │ │ │ │ │ ├── ProjectInstaller.resx │ │ │ │ │ ├── Properties │ │ │ │ │ └── AssemblyInfo.cs │ │ │ │ │ ├── SeleniumGridSetupService.Designer.cs │ │ │ │ │ ├── SeleniumGridSetupService.cs │ │ │ │ │ └── SeleniumGridSetupService.csproj │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-create-lab-with-shutdown-webhook │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 201-dtl-enable-autostart │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 301-dtl-add-lab-user │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ ├── metadata.json │ │ │ └── readme.md │ │ ├── 301-dtl-create-lab-with-existing-vnet │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ ├── 301-dtl-create-lab-with-remote-desktop-settings │ │ │ ├── .ci_skip │ │ │ ├── README.md │ │ │ ├── azuredeploy.json │ │ │ ├── azuredeploy.parameters.json │ │ │ └── metadata.json │ │ └── README.md │ ├── Scripts │ │ ├── AddAllowedVmSizes │ │ │ ├── AddAllowedVMSizes.ps1 │ │ │ └── README.md │ │ ├── AddLabMarketplaceImages │ │ │ ├── AddMarketplaceImages.ps1 │ │ │ └── README.md │ │ ├── CopyVirtualMachines │ │ │ ├── CopyAzVHDFromVMToLab.ps1 │ │ │ ├── CopyClassicVHDFromVMToLab.ps1 │ │ │ ├── CopyRmVHDFromVMToLab.ps1 │ │ │ └── CopyVHDFromVMToLab.ps1 │ │ ├── GetAutoShutdownPolicyStatus │ │ │ ├── GetAutoShutdownPolicyStatus.ps1 │ │ │ └── README.md │ │ ├── ImageFactory │ │ │ ├── Configuration │ │ │ │ ├── GoldenImages │ │ │ │ │ ├── Win2012R2 │ │ │ │ │ │ └── VS2015 Enterprise with Azure SDK.json │ │ │ │ │ └── Win2016 │ │ │ │ │ │ ├── Datacenter.json │ │ │ │ │ │ └── SQLServer 2016 Express.json │ │ │ │ └── Labs.json │ │ │ └── Scripts │ │ │ │ ├── CleanDeploymentHistory.ps1 │ │ │ │ ├── CleanUpFactory.ps1 │ │ │ │ ├── CreateImageFromVHD.json │ │ │ │ ├── DistributeImages.ps1 │ │ │ │ ├── DistributionHelpers.psm1 │ │ │ │ ├── GenerateImageList.ps1 │ │ │ │ ├── MakeGoldenImageVMs.ps1 │ │ │ │ ├── MakeVM.ps1 │ │ │ │ ├── OutputImageList.ps1 │ │ │ │ ├── RetireImages.ps1 │ │ │ │ ├── RunImageFactory.ps1 │ │ │ │ ├── SnapImagesFromVMs.ps1 │ │ │ │ ├── UpdateBuildAgent.ps1 │ │ │ │ └── ValidateLabsJson.ps1 │ │ ├── ImportVirtualMachines │ │ │ ├── ImportVirtualMachines.ps1 │ │ │ ├── ImportVirtualMachines_ps6.ps1 │ │ │ └── README.md │ │ ├── ResetVmPermissions │ │ │ ├── FixRoleAssignments.ps1 │ │ │ └── README.md │ │ ├── UniversityRepo │ │ │ ├── DeepLearning │ │ │ │ └── azuredeploy.json │ │ │ ├── Readme.md │ │ │ ├── Roles │ │ │ │ ├── Readme.md │ │ │ │ └── University_DevTest Labs User.json │ │ │ ├── ScenarioScripts │ │ │ │ ├── Add-AzureDtlVM.ps1 │ │ │ │ ├── Add-AzureDtlVMAutoVar.ps1 │ │ │ │ ├── Add-GroupPermissionsDevTestLab.ps1 │ │ │ │ ├── Common.ps1 │ │ │ │ ├── DeallocateStoppedVM.ps1 │ │ │ │ ├── Manage-AzureDtlFixedPool.ps1 │ │ │ │ ├── Remove-AzureDtlLabVMs.ps1 │ │ │ │ ├── Remove-AzureDtlVM.ps1 │ │ │ │ ├── Remove-GroupPermissionsDevTestLab.ps1 │ │ │ │ ├── Test-AzureDtlVMs.ps1 │ │ │ │ ├── dtl_multivm_customimage.json │ │ │ │ └── dtl_shutdown.json │ │ │ ├── ShutdownScripts │ │ │ │ ├── LoadIdleScript.ps1 │ │ │ │ ├── ShutdownOnIdleV2.ps1 │ │ │ │ ├── ShutdownOnIdleV2.xml │ │ │ │ └── ShutdownOnIdleV2CheckLatestVersion.xml │ │ │ └── SimplifiedJSPortal │ │ │ │ ├── App.html │ │ │ │ ├── Readme.md │ │ │ │ └── js │ │ │ │ ├── dtljs.js │ │ │ │ └── spin.min.js │ │ ├── UpdateDtlTags │ │ │ ├── README.md │ │ │ └── Update-DevTestLabsTags.ps1 │ │ ├── UpdateRemoteDesktopSettings │ │ │ ├── README.md │ │ │ └── Set-DTL_RemoteDesktopSettings.ps1 │ │ └── UploadVHD │ │ │ └── UploadVHDToDTL.ps1 │ └── SdkSamples │ │ ├── DtlClient.sln │ │ └── DtlClient │ │ ├── App.config │ │ ├── CustomLoginCredentials.cs │ │ ├── DtlClient.csproj │ │ ├── Program.cs │ │ ├── Properties │ │ └── AssemblyInfo.cs │ │ └── packages.config └── README.md ├── schemas ├── 2015-01-01 │ └── dtlArtifacts.json └── 2016-11-28 │ └── dtlArtifacts.json └── tasks ├── Node ├── .gitattributes ├── .gitignore ├── README.md ├── RELEASENOTES.md ├── package-lock.json ├── package.json ├── scripts │ ├── bundle.js │ ├── clean.js │ └── copy.js ├── src │ ├── docs │ │ └── overview.md │ ├── images │ │ ├── azure-dtl1024.png │ │ ├── azure-dtl128.png │ │ ├── azure-dtl256.png │ │ ├── azure-dtl32.png │ │ ├── azure-dtl512.png │ │ └── azure-dtl64.png │ ├── modules │ │ ├── task-models │ │ │ └── models.ts │ │ └── task-utils │ │ │ ├── deployutil.ts │ │ │ ├── envutil.ts │ │ │ ├── polyfill.ts │ │ │ ├── resourceutil.ts │ │ │ └── testutil.ts │ ├── screenshots │ │ └── azure-dtl.png │ ├── tasks │ │ ├── AzureDtlCreateCustomImage │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ ├── AzureDtlCreateEnvironment │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ ├── AzureDtlCreateVM │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ ├── AzureDtlDeleteCustomImage │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ ├── AzureDtlDeleteEnvironment │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ ├── AzureDtlDeleteVM │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ │ └── AzureDtlUpdateEnvironment │ │ │ ├── icon.png │ │ │ ├── task.json │ │ │ └── task.ts │ └── vss-extension.json ├── tsconfig.json └── webpack.config.js └── PowerShell ├── .gitignore ├── AzureDtlCreateCustomImage ├── icon.png ├── new-azuredtl-customimage.json ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── AzureDtlCreateEnvironment ├── icon.png ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── AzureDtlCreateVM ├── icon.png ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── AzureDtlDeleteEnvironment ├── icon.png ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── AzureDtlDeleteVM ├── icon.png ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── AzureDtlPopulateEnvironment ├── icon.png ├── task-funcs.ps1 ├── task.json └── task.ps1 ├── ReadMe.md ├── docs └── overview.md ├── images ├── azure-dtl1024.png ├── azure-dtl128.png ├── azure-dtl256.png ├── azure-dtl32.png ├── azure-dtl512.png └── azure-dtl64.png ├── screenshots ├── azure-dtl-createcustomimage.png ├── azure-dtl-createenvironment.png ├── azure-dtl-createvm.png ├── azure-dtl-deleteenvironment.png ├── azure-dtl-deletevm.png └── azure-dtl.png └── vss-extension.json /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # This .gitignore file was automatically created by Microsoft(R) Visual Studio. 3 | ################################################################################ 4 | 5 | **/bin/Debug/ 6 | **/obj/Debug/ 7 | **/bin/Release/ 8 | **/obj/Release/ 9 | **/.vs/ 10 | packages/ 11 | *.suo 12 | *.csproj.user 13 | **/obj/* 14 | **/Properties/PublishProfiles/* 15 | *.cred 16 | debug.log -------------------------------------------------------------------------------- /Artifacts/linux-bootstrap-chef/chefArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-bootstrap-chef/chefArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-deploy-app-from-storage/deploy_from_azure_container_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### 4 | # Arguments: 5 | # 6 | # $1 Container name 7 | # $2 Destination 8 | # $3 Connection string 9 | # $4 Deployment script 10 | # 11 | ### 12 | 13 | isApt=`command -v apt-get` 14 | isYum=`command -v yum` 15 | 16 | if [ -n "$isApt" ] ; then 17 | echo "Using APT package manager" 18 | 19 | apt-get -y update 20 | 21 | curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - 22 | apt-get -y install nodejs 23 | apt-get -y install npm 24 | 25 | nde="nodejs" 26 | 27 | elif [ -n "$isYum" ] ; then 28 | echo "Using YUM package manager" 29 | 30 | yum -y update 31 | yum clean all 32 | 33 | yum install -y epel-release 34 | yum install -y nodejs npm 35 | 36 | nde="node" 37 | fi 38 | 39 | npm install azure-storage 40 | npm install mkdirp 41 | 42 | set -e 43 | 44 | # clean deployment folder prior to download 45 | rm -d -f -r $2 46 | 47 | # download the container into the destination folder 48 | eval "$nde ./download_azure_container.js '$1' '$2' '$3'" 49 | 50 | # run the install script if one is provided 51 | if [ -n "$4" ]; then 52 | echo "invoking $2/$4" 53 | sh "$2/$4" 54 | fi -------------------------------------------------------------------------------- /Artifacts/linux-deprovision/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "de-provision", 4 | "description": "Uses the Microsoft Azure Linux Agent (waagent) to de-provision a Linux VM for saving as an image. This artifact does not work on the Core OS or FreeBSD flavors of Linux.", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Linux" 8 | ], 9 | "targetOsType": "Linux", 10 | "runCommand": { 11 | "commandToExecute": "['sh depro.sh']" 12 | }, 13 | "postDeployActions": [ 14 | { 15 | "action": "waitForShutdown" 16 | }, 17 | { 18 | "action": "deallocate" 19 | } 20 | ] 21 | } -------------------------------------------------------------------------------- /Artifacts/linux-install-docker-container/dockerArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-install-docker-container/dockerArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-install-docker-container/linux_install_docker_container.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### 4 | # Arguments: 5 | # 6 | # $1 Container name 7 | # $2 Docker run options 8 | # $3 Image name 9 | # $4 Additional image arguments 10 | # 11 | ### 12 | 13 | # Check if docker is already installed. 14 | docker -v 15 | installationStatus=$(echo $?) 16 | 17 | if [ $installationStatus -eq 127 ] ; then 18 | wget -qO- https://get.docker.com/ | sh 19 | fi 20 | 21 | if [ -z "$1" ] ; then 22 | NAME_ARG= 23 | else 24 | NAME_ARG=" --name $1" 25 | fi 26 | 27 | # Docker run syntax: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 28 | # |__1-2__| |_3_| |_______ 4_______| 29 | 30 | cmd="docker run $NAME_ARG $2 -d $3 $4" 31 | 32 | echo "Running command: $cmd" 33 | eval $cmd 34 | -------------------------------------------------------------------------------- /Artifacts/linux-install-docker/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Docker Community Edition", 4 | "publisher": "Microsoft", 5 | "description": "Install Docker CE on Linux. -- NOTE: Docker CE will not install in RHEL, as RHEL is only supported by Docker EE. Check https://store.docker.com for information on Docker EE.", 6 | "tags": [ 7 | "Docker", 8 | "Linux" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/linux-install-docker/dockerArtifact.png", 11 | "targetOsType": "Linux", 12 | "runCommand": { 13 | "commandToExecute": "['sh linux_install_docker_v1.sh']" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/linux-install-docker/dockerArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-install-docker/dockerArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-install-docker/linux_install_docker_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Check if docker is already installed. 4 | docker -v 5 | installationStatus=$(echo $?) 6 | 7 | if [ $installationStatus -eq 127 ] ; then 8 | wget -qO- https://get.docker.com/ | sh 9 | fi 10 | -------------------------------------------------------------------------------- /Artifacts/linux-install-mongodb/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "MongoDB", 4 | "publisher": "Microsoft", 5 | "description": "Install MongoDB on Linux", 6 | "tags": [ 7 | "MongoDB", 8 | "Linux" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/linux-install-mongodb/mongoDBArtifact.png", 11 | "targetOsType": "Linux", 12 | "runCommand": { 13 | "commandToExecute": "['sh linux_install_mongodb_v1.sh']" 14 | }, 15 | "postDeployActions": [ 16 | { 17 | "action": "deallocate" 18 | }, 19 | { 20 | "action": "waitForShutdown" 21 | }, 22 | { 23 | "action": "restart" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /Artifacts/linux-install-mongodb/linux_install_mongodb_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Starting MongoDb installation." 4 | 5 | isApt=`command -v apt-get` 6 | isYum=`command -v yum` 7 | 8 | # Some of the previous commands will fail with an exit code other than zero (intentionally), 9 | # so we do not set error handling to stop (set e) until after they've run. 10 | set -e 11 | 12 | if [ -n "$isApt" ] ; then 13 | echo "Using APT package manager." 14 | 15 | echo "Updating every installed package." 16 | apt-get -y update 17 | 18 | echo "Installing MongoDb." 19 | apt-get -y install mongodb 20 | elif [ -n "$isYum" ] ; then 21 | echo "Using YUM package manager." 22 | 23 | echo "Preparing MongoDb installation configuration." 24 | releasever=7 25 | cat >/etc/yum.repos.d/mongodb.repo <<-EOF 26 | [MongoDB] 27 | name=MongoDB Repository 28 | baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/ 29 | gpgcheck=0 30 | enabled=1 31 | EOF 32 | 33 | echo "Installing MongoDb." 34 | yum install -y mongodb-org 35 | fi 36 | 37 | echo "The artifact was applied successfully." -------------------------------------------------------------------------------- /Artifacts/linux-install-mongodb/mongoDBArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-install-mongodb/mongoDBArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-install-nodejs/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Node.js", 4 | "publisher": "Microsoft", 5 | "description": "Install Node.js on Linux", 6 | "tags": [ 7 | "Node", 8 | "Linux" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/linux-install-nodejs/nodeArtifact.png", 11 | "targetOsType": "Linux", 12 | "runCommand": { 13 | "commandToExecute": "['sh linux_install_nodejs_v1.sh']" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/linux-install-nodejs/linux_install_nodejs_v1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Installing NodeJs" 4 | 5 | isApt=`command -v apt-get` 6 | isYum=`command -v yum` 7 | 8 | # Some of the previous commands will fail with an exit code other than zero (intentionally), 9 | # so we do not set error handling to stop (set e) until after they've run 10 | set -e 11 | 12 | if [ -n "$isApt" ] ; then 13 | echo "Using APT package manager" 14 | 15 | apt-get -y update 16 | 17 | curl --silent --location https://deb.nodesource.com/setup_4.x | bash - 18 | apt-get -y install nodejs 19 | exit 0 20 | 21 | elif [ -n "$isYum" ] ; then 22 | echo "Using YUM package manager" 23 | 24 | yum -y update 25 | yum clean all 26 | 27 | yum install -y epel-release 28 | yum install -y nodejs npm 29 | exit 0 30 | fi 31 | 32 | exit 1 33 | -------------------------------------------------------------------------------- /Artifacts/linux-install-nodejs/nodeArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-install-nodejs/nodeArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-install-nvm/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "NVM", 4 | "publisher": "Ross Bohr", 5 | "description": "Install NVM on Linux", 6 | "tags": [ 7 | "Node", 8 | "NodeJS", 9 | "NVM", 10 | "Javascript", 11 | "Linux" 12 | ], 13 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/nodejs.png", 14 | "targetOsType": "Linux", 15 | "parameters": { 16 | "targetUser": { 17 | "type": "string", 18 | "displayName": "Target linux user", 19 | "allowEmpty": false, 20 | "description": "The name of the linux user for which NVM will be installed." 21 | } 22 | }, 23 | "runCommand": { 24 | "commandToExecute": "[concat('sh linux_install_nvm_v1.sh ', parameters('targetUser'))]" 25 | } 26 | } -------------------------------------------------------------------------------- /Artifacts/linux-install-nvm/linux_install_nvm_v1.sh: -------------------------------------------------------------------------------- 1 | # Script to install NVM on Linux package on Azure DevTest lab Linux VMs. 2 | # 3 | # NOTE: Intended for use by the Azure DevTest Lab artifact system. 4 | # 5 | # Usage: 6 | # 7 | # linux_install_nvm_v1.sh TARGET-USER 8 | # 9 | 10 | #!/bin/bash 11 | 12 | #Get the input parameter value. 13 | TARGET_USER=$1 14 | 15 | # Check if nvm is already installed. 16 | echo "Checking if NVM is already installed." 17 | echo "For user $TARGET_USER" 18 | runuser -l $TARGET_USER -c 'nvm -v' 19 | installationStatus=$(echo $?) 20 | 21 | if [ $installationStatus -eq 127 ] ; then 22 | echo "Installing NVM..." 23 | runuser -l $TARGET_USER -c 'wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash' 24 | echo "Installed NVM for user $TARGET_USER." 25 | else 26 | echo "NVM is already installed." 27 | fi 28 | 29 | echo "Done." -------------------------------------------------------------------------------- /Artifacts/linux-java/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "JDK", 4 | "publisher": "ALM Rangers", 5 | "description": "Install Java Development Kit on Debian-based and Red Hat based distributions.", 6 | "tags": [ 7 | "JDK", 8 | "Linux", 9 | "JAVA" 10 | ], 11 | "iconUri": "https://upload.wikimedia.org/wikipedia/en/thumb/3/30/Java_programming_language_logo.svg/128px-Java_programming_language_logo.svg.png", 12 | "targetOsType": "Linux", 13 | 14 | "runCommand": { 15 | "commandToExecute": "['sh linux_install_jdk.sh']" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Artifacts/linux-java/linux_install_jdk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # script to install Java on Ubuntu (APT) systems or YUM-based systems. 4 | # 5 | # Update the package system prior to installing Java to ensure we can get what we need. 6 | # 7 | # Version 0.1 8 | # Author Darren Rich 9 | # Original version found on VSTS: https://almrangers.visualstudio.com/ 10 | 11 | echo "Installing Java" 12 | 13 | isApt=`command -v apt-get` 14 | isYum=`command -v yum` 15 | 16 | # Some of the previous commands will fail with an exit code other than zero (intentionally), 17 | # so we do not set error handling to stop (set e) until after they've run 18 | set -e 19 | 20 | if [ -n "$isApt" ] ; then 21 | echo "Using APT package manager" 22 | 23 | sudo apt-get -y install default-jdk 24 | exit 0 25 | elif [ -n "$isYum" ] ; then 26 | echo "Using YUM package manager" 27 | 28 | yum install -y java-1.8.0-openjdk 29 | exit 0 30 | fi 31 | 32 | exit 1 33 | -------------------------------------------------------------------------------- /Artifacts/linux-mono-devel/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Mono Runtime", 4 | "publisher": "Fernando Aguilar", 5 | "targetOsType": "Linux", 6 | "description": "Installs Mono runtime on Linux", 7 | "tags": [ 8 | "Mono", 9 | "Linux", 10 | "Ubuntu", 11 | "Fedora", 12 | "Debian", 13 | "CentOS" 14 | ], 15 | "iconUri": "https://www.mono-project.com/archived/images/8/8d/Mono-gorilla-aqua.100px.png", 16 | "runCommand": { 17 | "commandToExecute": "['sh install-mono-devel.sh']" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Artifacts/linux-mono-devel/Readme.md: -------------------------------------------------------------------------------- 1 | # Artifact: Mono Runtime 2 | 3 | This artifacts install Mono Develoment Runtime on Linux. 4 | 5 | Mono is an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime. 6 | 7 | ## Supported distros 8 | 9 | This artifact works on the following operating systems: 10 | 11 | - Ubuntu: 16.04 - 18.04 12 | - Debian: 7, 8 13 | - Centos: 6, 7 14 | - Fedora: 27, 26 15 | 16 | ## Troubleshooting 17 | 18 | More info in the [DevTest Labs blog post](https://blogs.msdn.microsoft.com/devtestlab/2016/09/22/tips-and-tricks-on-azure-devtest-labs-artifacts-development-and-debugging/) 19 | -------------------------------------------------------------------------------- /Artifacts/linux-powershell/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "PowerShell on Linux", 4 | "description": "Installs PowerShell on Linux either on CentOS 7 or Ubuntu 14.04 or 16.04 LTS.", 5 | "publisher": "PowerShell Magazine", 6 | "tags": [ 7 | "powershell", 8 | "Linux" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-run-powershell/powershell.png", 11 | "targetOsType": "Linux", 12 | "parameters": { 13 | "packageUrl": { 14 | "type": "string", 15 | "displayName": "Package URL", 16 | "allowEmpty": false, 17 | "description": "The PowerShell on Linux package URL based on the distribution type. The supported list of distributions and URLs are available at https://github.com/PowerShell/PowerShell#get-powershell" 18 | } 19 | }, 20 | "runCommand": { 21 | "commandToExecute": "[concat('bash linux-powershell.sh ', parameters('packageUrl'))]" 22 | } 23 | } -------------------------------------------------------------------------------- /Artifacts/linux-powershell/linux-powershell.sh: -------------------------------------------------------------------------------- 1 | # Script to install PowerShell on Linux package on Azure DevTest lab Linux VMs. 2 | # 3 | # NOTE: Intended for use by the Azure DevTest Lab artifact system. 4 | # 5 | # Usage: 6 | # 7 | # linux-powershell.sh PACKAGE-URL 8 | # 9 | 10 | #!/bin/bash 11 | 12 | isApt=`command -v apt-get` 13 | isYum=`command -v yum` 14 | 15 | set -e 16 | cd /tmp 17 | URL=$1 18 | FILE_NAME="${URL##*/}" 19 | echo "Downloading $FILE_NAME" 20 | wget $URL 21 | 22 | if [ -n "$isYum" ] ; then 23 | echo "Using yum package manager" 24 | yum install -y $FILE_NAME 25 | elif [ -n "$isApt" ] ; then 26 | echo "Using apt package manager" 27 | if [ $(lsb_release -r -s) = "16.04" ]; then 28 | apt-get -q -y install libunwind8 libicu55 29 | dpkg -i $FILE_NAME 30 | elif [ $(lsb_release -r -s) = "14.04" ]; then 31 | apt-get -q -y install libunwind8 libicu52 32 | dpkg -i $FILE_NAME 33 | fi 34 | fi 35 | -------------------------------------------------------------------------------- /Artifacts/linux-secure-mariadb/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Secure MariaDB", 4 | "publisher": "Stefan Johner", 5 | "description": "Secure MariaDB instance on Linux based on mysql_secure_installation", 6 | "tags": [ 7 | "MariaDB", 8 | "Linux", 9 | "Security", 10 | "Database" 11 | ], 12 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/linux-secure-mariadb/mariaDBArtifact.png", 13 | "targetOsType": "Linux", 14 | "parameters": { 15 | "password": { 16 | "type": "securestring", 17 | "displayName": "Root password", 18 | "description": "The new root password which is set for MariaDB instance", 19 | "allowEmpty": false 20 | } 21 | }, 22 | "runCommand": { 23 | "commandToExecute": "[concat('sh linux-secure-mariadb.sh ', '-p ', parameters('password'))]" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Artifacts/linux-secure-mariadb/README.md: -------------------------------------------------------------------------------- 1 | # Linux Secure MariaDB Artifact 2 | This Azure DevTest Labs artifact allows the user to secure MariaDB installations already present on a Azure DevTest Labs VM (for example installed via Apt/Yum Package Manager Artifact). This artifact applies to any Linux distribution. 3 | 4 | The script is based on [Twitters implementation of mysql_secure_installation.sh](https://github.com/twitter/mysql/blob/master/scripts/mysql_secure_installation.sh) and basically does the following: 5 | 1. Set root password and make sure that nobody can access the server without a password 6 | 2. Remove anonymous users 7 | 3. Disallow root login remotely 8 | 4. Remove test database and access to it 9 | 5. Reload privilege tables 10 | 11 | ## Usage 12 | The script is intended for use in the Azure DevTest Labs artifact system, and the parameters for the artifact are fed directly 13 | into the script. However, you can run it from any bash shell using the following format: 14 | 15 | bash> ./linux-secure-mariadb.sh [-p password] 16 | 17 | ## Compatibility 18 | The Artifact has been tested with the following images 19 | * Debian 9 "Stretch" 20 | * Ubuntu 16.04 21 | * CentOS 7.4 22 | -------------------------------------------------------------------------------- /Artifacts/linux-secure-mariadb/mariaDBArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/linux-secure-mariadb/mariaDBArtifact.png -------------------------------------------------------------------------------- /Artifacts/linux-swapfile/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Swap File", 4 | "description": "Configure swap file on Linux", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Linux", 8 | "Swapfile" 9 | ], 10 | "targetOsType": "Linux", 11 | "parameters": { 12 | "size": { 13 | "type": "string", 14 | "displayName": "Size", 15 | "description": "The size of the swap file. Defaults to bytes, or use the suffixes K, M, or G which correspond to KiB, MiB, and GiB respectively. For example: 5G = 5 GiB, 100M = 100 MiB.", 16 | "allowEmpty": false, 17 | "defaultValue": "1G" 18 | } 19 | }, 20 | "runCommand": { 21 | "commandToExecute": "[concat('sh linux_swapfile.sh ', parameters('size'))]" 22 | } 23 | } -------------------------------------------------------------------------------- /Artifacts/linux-swapfile/linux_swapfile.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ### 4 | # Arguments: 5 | # 6 | # $1 Swap file size 7 | # 8 | ### 9 | 10 | set -e 11 | 12 | # Generate a file name based on the current date to avoid naming conflicts. 13 | SIZE="$1" 14 | FILENAME="$(date +%s | sha256sum | base64 | head -c 32)" 15 | FILEPATH="/mnt/$FILENAME" 16 | 17 | # In previous versions of this script, we used fallocate. But that started failing on newer 18 | # OS versions. So, although fallocate can be faster, we are changing to use dd instead. The 19 | # nomenclature is slightly different. So, we need to make sure the user is aware of it. 20 | # For example, to create a 1 GB swap file, the caller will need to specify 1073741824 (bytes) 21 | # or 1G. Note that case here is important. 22 | dd if=/dev/zero of=$FILEPATH bs=$SIZE count=1 23 | 24 | chmod 600 $FILEPATH 25 | mkswap $FILEPATH 26 | swapon $FILEPATH 27 | 28 | echo “$FILEPATH none swap sw 0 0” >> /etc/fstab 29 | -------------------------------------------------------------------------------- /Artifacts/windows-7zip/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "7-Zip", 4 | "publisher": "Microsoft", 5 | "description": "Installs 7-Zip using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "7-Zip" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/7zip.svg", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', '7zip', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-CreateDomain/createDomain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-CreateDomain/createDomain.png -------------------------------------------------------------------------------- /Artifacts/windows-CreateDomain/setupDomain.ps1: -------------------------------------------------------------------------------- 1 | Param( 2 | [string]$DomainName = 'contoso', 3 | [string]$DomainFQDN = 'contoso.com', 4 | [string]$SafeModePW 5 | ) 6 | 7 | cd $($PSScriptRoot) 8 | 9 | # Check if System is Domain-Joined 10 | if ((gwmi win32_computersystem).partofdomain -eq $false) 11 | { 12 | #Create new Domain 13 | Install-windowsfeature AD-domain-services 14 | Import-Module ADDSDeployment 15 | Install-ADDSForest -CreateDnsDelegation:$false ` 16 | -DatabasePath "$($env:windir)\NTDS" ` 17 | -DomainMode "Win2012R2" ` 18 | -DomainName $DomainFQDN ` 19 | -DomainNetbiosName $DomainName ` 20 | -ForestMode "Win2012R2" ` 21 | -InstallDns:$true ` 22 | -LogPath "$($env:windir)\NTDS" ` 23 | -NoRebootOnCompletion:$false ` 24 | -SysvolPath "$($env:windir)\SYSVOL" ` 25 | -Force:$true ` 26 | -SafeModeAdministratorPassword (ConvertTo-SecureString $SafeModePW -AsPlainText -Force) 27 | } 28 | -------------------------------------------------------------------------------- /Artifacts/windows-ServiceFabricSDK/README.md: -------------------------------------------------------------------------------- 1 | # Service Fabric SDK and Tools 2 | 3 | Installs the latest version of Service Fabric SDK and tools. 4 | 5 | For Visual Studio 2015, the 'Microsoft Azure Service Fabric SDK and Tools' for Visual Studio 2015 will be installed using Web Platform Installer. 6 | 7 | For Visual Studio 2017, the core 'Microsoft Azure Service Fabric SDK' will be installed using Web Platform Installer. The 'Service Fabric Tools' component for the installed instance(s) of Visual Studio 2017 will be enabled. 8 | 9 | ## Prerequisites 10 | 11 | - Visual Studio 2015 or Visual Studio 2017 must be installed on the VM. See [Visual Studio Downloads](https://www.visualstudio.com/downloads/) for details how to install Visual Studio. 12 | - PowerShell version 5.1 or newer must be installed on the VM. 13 | 14 | ## Parameters 15 | 16 | - **Visual Studio Version**. Numerical version of Visual Studio. For Visual Studio 2015, version is '14'. For Visual Studio 2017 is '15'. 17 | -------------------------------------------------------------------------------- /Artifacts/windows-add-local-admin/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2015-01-01/dtlArtifacts.json", 3 | "title": "Add user to Administrators Group", 4 | "description": "Adds the given Active Directory (AD) account to the local Administrators group of the target virtual machine. The virtual machine must already be joined to the same domain as the AD account before this artifact is run.", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-domain-join/domainJoinArtifact.png", 10 | "targetOsType": "Windows", 11 | "parameters": { 12 | "domainJoinUsername": { 13 | "type": "string", 14 | "displayName": "Domain user account", 15 | "description": "The Active Directory (AD) account (e.g. CORP\\user or user@corp.contoso.com) that will be added to the local Administrators group of the target virtual machine." 16 | } 17 | }, 18 | "runCommand": { 19 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact-main.ps1', ' -domainJoinUsername ', parameters('domainJoinUsername'), '\"')]" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Artifacts/windows-add-local-admin/artifact-funcs.ps1: -------------------------------------------------------------------------------- 1 | function Handle-LastError 2 | { 3 | [CmdletBinding()] 4 | param( 5 | ) 6 | 7 | $message = $error[0].Exception.Message 8 | if ($message) 9 | { 10 | Write-Host -Object "ERROR: $message" -ForegroundColor Red 11 | } 12 | 13 | # IMPORTANT NOTE: Throwing a terminating error (using $ErrorActionPreference = "Stop") still 14 | # returns exit code zero from the PowerShell script when using -File. The workaround is to 15 | # NOT use -File when calling this script and leverage the try-catch-finally block and return 16 | # a non-zero exit code from the catch block. 17 | exit -1 18 | } -------------------------------------------------------------------------------- /Artifacts/windows-appxremove/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Remove Appx Packages", 4 | "publisher": "Microsoft", 5 | "description": "Removes Windows Appx packages for all users", 6 | "tags": [ 7 | "Windows", 8 | "Sysprep", 9 | "AppxPackage" 10 | ], 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass \"& ./remove-appx-packages.ps1\"" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Artifacts/windows-atom/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Atom", 4 | "publisher": "Microsoft", 5 | "description": "Installs Atom using the Chocolatey package manager", 6 | "tags": [ 7 | "Atom" 8 | ], 9 | "iconUri": "https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/Atom_editor_logo.svg/1118px-Atom_editor_logo.svg.png", 10 | "targetOsType": "Windows", 11 | "parameters": { 12 | "installUsername": { 13 | "type": "string", 14 | "displayName": "Install User Name", 15 | "description": "User with admin rights to install Atom" 16 | }, 17 | "installPassword": { 18 | "type": "securestring", 19 | "displayName": "Install Password", 20 | "description": "Password for the install user" 21 | } 22 | }, 23 | "runCommand": { 24 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1 -PackageList ', 'atom', ' -UserName ', parameters('installUsername'), ' -Password ', parameters('installPassword'), '\"')]" 25 | } 26 | } -------------------------------------------------------------------------------- /Artifacts/windows-awscli/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "AWS Command Line Interface", 4 | "description": "Installs AWS Command Line Interface using the Chocolatey package manager", 5 | "publisher": "Hosam Kamel", 6 | "tags": [ 7 | "Windows", 8 | "AWS" 9 | ], 10 | "iconUri": "https://community.chocolatey.org/content/packageimages/awscli.2.2.24.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'awscli', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-azurepowershell/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Azure PowerShell", 4 | "description": "Installs the latest version of Windows Azure PowerShell. NOTE: Requires PowerShell 5.0+ and a restart before applying. This artifact may also require a reboot after completion. Review the artifacts results for instructions.", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows", 8 | "AzureSDK", 9 | "PowerShell" 10 | ], 11 | "iconUri": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_64.png", 12 | "targetOsType": "Windows", 13 | "runCommand": { 14 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'azurepowershell', '\"')]" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Artifacts/windows-beyond-compare/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Beyond Compare", 4 | "publisher": "andremarques023", 5 | "description": "Installs Beyond Compare using the Chocolatey package manager.", 6 | "tags": [ 7 | "Windows", 8 | "Beyond Compare" 9 | ], 10 | "iconUri": "https://www.scootersoftware.com/images/media_BeyondCompareIcon512x512.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'beyondcompare', '\"')]" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Artifacts/windows-bootstrap-chef/chefArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-bootstrap-chef/chefArtifact.png -------------------------------------------------------------------------------- /Artifacts/windows-chrome/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Chrome", 4 | "publisher": "estebang", 5 | "description": "Installs Chrome using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Chrome", 9 | "Google" 10 | ], 11 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-chrome/Google_Chrome_icon.png", 12 | "targetOsType": "Windows", 13 | "runCommand": { 14 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'googlechrome', '\"')]" 15 | } 16 | } -------------------------------------------------------------------------------- /Artifacts/windows-chrome/Google_Chrome_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-chrome/Google_Chrome_icon.png -------------------------------------------------------------------------------- /Artifacts/windows-desired-state-configuration-az-automation/RegisterDscNodeConfiguration.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param ( 3 | [string] 4 | $Machine = $env:COMPUTERNAME, 5 | [string] 6 | $ConfigName, 7 | $ConfigMode, 8 | [Int32] 9 | $ConfigMinutes, 10 | [Int32] 11 | $RefreshMinutes, 12 | [Boolean] 13 | $Reboot, 14 | $AfterReboot, 15 | [Boolean] 16 | $AllowOverwrite, 17 | [string] 18 | $RegistrationUrl, 19 | [string] 20 | $RegistrationKey 21 | ) 22 | 23 | function Finish-Transcript ($logFilePath){ 24 | Stop-Transcript 25 | Get-Content -Path $logFilePath | Write-Output 26 | } 27 | 28 | $logfile = "C:\Artifacts\dsc.log" 29 | 30 | Start-Transcript $logfile 31 | Write-Output "Starting DSC configuration for machine: $($env:COMPUTERNAME)" 32 | 33 | 34 | try { 35 | & .\DscMetaConfigs.ps1 36 | Set-DscLocalConfigurationManager -Path ./DscMetaConfigs -Verbose 37 | } 38 | catch { 39 | Write-Error $Error[0].Exception 40 | Write-Error $Error[0].PSMessageDetails 41 | Finish-Transcript $logfile 42 | exit -1 43 | } 44 | Write-Output "Ending DSC configuration." 45 | Finish-Transcript $logfile 46 | -------------------------------------------------------------------------------- /Artifacts/windows-development-certificate/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Self Signed Certificate", 4 | "publisher": "Vince Adams", 5 | "description": "Installs a self signed certificate for use with development", 6 | "tags": [ 7 | "Windows", 8 | "Certificate", 9 | "Development" 10 | ], 11 | "parameters": { 12 | "dnsName": { 13 | "type": "string", 14 | "displayName": "DNS Name", 15 | "description": "DNS to bind the certificate to i.e. *.localdev.com" 16 | } 17 | }, 18 | "targetOsType": "Windows", 19 | "runCommand": { 20 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./InstallCertificate.ps1 -dnsName ', parameters('dnsName'), '\"')]" 21 | } 22 | } -------------------------------------------------------------------------------- /Artifacts/windows-docker/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Docker", 4 | "description": "Activate Windows Container support on Windows 10 / Windows Server 2016 VMs. In addition Docker for Windows is installed if the VM supports nested virtualization (Dv3 and Ev3 size).", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows", 8 | "Docker" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-docker/docker-logo.png", 11 | "targetOsType": "Windows", 12 | "parameters": {}, 13 | "runCommand": { 14 | "commandToExecute": "['powershell.exe -executionpolicy bypass -File Artifactfile.ps1']" 15 | }, 16 | "postDeployActions": [ 17 | { 18 | "action": "deallocate" 19 | }, 20 | { 21 | "action": "waitForShutdown" 22 | }, 23 | { 24 | "action": "restart" 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /Artifacts/windows-docker/docker-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-docker/docker-logo.png -------------------------------------------------------------------------------- /Artifacts/windows-domain-join/domainJoinArtifact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-domain-join/domainJoinArtifact.png -------------------------------------------------------------------------------- /Artifacts/windows-dotnet45/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Microsoft .NET Framework 4.5", 4 | "description": "Installs Microsoft .NET Framework 4.5 using the Chocolatey package manager", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows", 8 | ".NET" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-dotnet45/dotnet.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'dotnet4.5', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-dotnet45/dotnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-dotnet45/dotnet.png -------------------------------------------------------------------------------- /Artifacts/windows-download-sas-blob/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Download file from URI", 4 | "publisher": "Microsoft", 5 | "description": "Downloads a file from a URI and saves it to a specified location on the virtual machine", 6 | "tags": [ 7 | ], 8 | "iconUri": "", 9 | "targetOsType": "Windows", 10 | "parameters": { 11 | "URI": { 12 | "type": "string", 13 | "displayName": "File URI", 14 | "description": "The URI of the file to download. It must be publicly accessible, or a SAS URI granting read-access." 15 | }, 16 | "FileDestination": { 17 | "type": "string", 18 | "displayName": "Destination file path", 19 | "description": "The destination on the target virtual machine, including filename, to which the file should be downloaded" 20 | } 21 | }, 22 | "runCommand": { 23 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact.ps1', ' -Uri ', parameters('URI'), ' -Path ''', parameters('FileDestination'), '''\"')]" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Artifacts/windows-eclipse/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Eclipse", 4 | "description": "Installs Eclipse using the Chocolatey package manager", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows", 8 | "Eclipse" 9 | ], 10 | "iconUri": "https://community.chocolatey.org/content/packageimages/eclipse.4.20.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'eclipse', '\"')]" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Artifacts/windows-enable-local-admins/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Enable local administrators", 4 | "publisher": "Microsoft", 5 | "description": "Enables local administrator accounts (if disabled).", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "parameters": {}, 11 | "runCommand": { 12 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass -File EnableLocalAdmins.ps1" 13 | } 14 | } -------------------------------------------------------------------------------- /Artifacts/windows-fiddler/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "[Deprecated] Fiddler4", 4 | "publisher": "Microsoft", 5 | "description": "This artifact is deprecated. This package has been unlisted/removed from the chocolatey repo at the request of Telerik and for legal purposes will not get any more updates. Telerik owns the IP and does not have a public download url at this time.", 6 | "tags": [ 7 | "Windows", 8 | "Fiddler" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/chocolatey/chocolatey-coreteampackages/e4a49519947c3cff55c17a0b08266c56b0613e64/icons/fiddler.svg", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "cmd /c echo This artifact is deprecated. This package has been unlisted/removed from the chocolatey repo at the request of Telerik and for legal purposes will not get any more updates. Telerik owns the IP and does not have a public download url at this time." 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-firefox/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Firefox", 4 | "publisher": "mikaelkrief", 5 | "description": "Installs Firefox using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Firefox" 9 | ], 10 | "iconUri": "https://community.chocolatey.org/content/packageimages/Firefox.90.0.2.svg", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'firefox', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-firewall/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Windows Firewall operations", 4 | "description": "Artifact to execute basic Windows firewall commands", 5 | "publisher": "Milan Musec", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "parameters": { 11 | "firewallOperation": { 12 | "type": "string", 13 | "displayName": "Firewall Operation:", 14 | "description": "Select firewall operation", 15 | "allowedValues": [ 16 | "Get Firewall Status", 17 | "Enable ICMP (ping)", 18 | "Enable RDP Port (tcp/3389)", 19 | "Enable SSH Port (tcp/22)", 20 | "Enable HTTP/HTTPS Port (tcp/80,443)", 21 | "Enable Firewall", 22 | "Disable Firewall" 23 | ] 24 | } 25 | }, 26 | "runCommand": { 27 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact-main.ps1', ' -firewallOperation ''', parameters('firewallOperation'), '''\"')]" 28 | } 29 | } -------------------------------------------------------------------------------- /Artifacts/windows-git/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "git", 4 | "publisher": "Microsoft", 5 | "description": "Installs git using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Git" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/git.svg", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'git', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-gvim-cream/vim.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-gvim-cream/vim.ico -------------------------------------------------------------------------------- /Artifacts/windows-iis/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2015-01-01/dtlArtifacts.json", 3 | "title": "Internet Information Services (IIS)", 4 | "description": "Adds the IIS role to the machine", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "iconUri": "https://www-iis.azureedge.net/v-2016-08-29-001/images/iis-new-logo.png", 10 | "targetOsType": "Windows", 11 | "runCommand": { 12 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass \"& ./artifact-main.ps1\"" 13 | } 14 | } -------------------------------------------------------------------------------- /Artifacts/windows-install-powershell-module/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Install PowerShell Module", 4 | "publisher": "Ross Bohr", 5 | "description": "Installs the specified PowerShell module from the PowerShell gallery. Requires PowerShellGet (https://docs.microsoft.com/en-us/powershell/gallery/installing-psget). PowerShell version 5.1 or newer must also be installed.", 6 | "tags": [ 7 | "PowerShell", 8 | "Module", 9 | "Install", 10 | "Gallery", 11 | "Windows" 12 | ], 13 | "iconUri": "https://www.powershellgallery.com/Content/Images/packageDefaultIcon.png", 14 | "targetOsType": "Windows", 15 | "parameters": { 16 | "moduleName": { 17 | "type": "string", 18 | "displayName": "PowerShell Module Name", 19 | "description": "The name of the PowerShell Module (e.g. \"AzureRM\")" 20 | } 21 | }, 22 | "runCommand": { 23 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./Install-PowerShellModule.ps1', ' -moduleName ''', parameters('moduleName'), '''\"')]" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Artifacts/windows-install-windows-ms-updates/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Installs the latest Windows and Microsoft Updates", 4 | "description": "Installs the latest patches, security fixes and updates via the Windows Update PowerShell Module, optionally including Microsoft updates.", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "parameters": { 11 | "includeMicrosoftUpdates": { 12 | "type": "bool", 13 | "displayName": "Include Microsoft updates", 14 | "description": "Include updates for all Microsoft products", 15 | "defaultValue": false, 16 | "allowEmpty": true 17 | } 18 | }, 19 | "runCommand": { 20 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./artifact.ps1 -IncludeMicrosoftUpdates:$', parameters('includeMicrosoftUpdates'), '\"')]" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Artifacts/windows-install-windows-updates/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Installs the latest Windows Updates", 4 | "description": "Installs the latest patches, security fixes and updates via the Windows Update PowerShell Module", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "runCommand": { 11 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass \"& ./artifact.ps1\"" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Artifacts/windows-intellij/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "IntelliJ IDEA (Community Edition)", 4 | "description": "Installs IntelliJ IDEA (Community Edition) using the Chocolatey package manager", 5 | "publisher": "Hosam Kamel", 6 | "tags": [ 7 | "Windows", 8 | "IntelliJ" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/AnthonyMastrean/chocolateypackages/17c712c0bf345eb3dcb8326049a8198230228008/public/icons/intellijidea.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'intellijidea-community', '\"')]" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Artifacts/windows-jhipster/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "JHipster", 4 | "publisher": "Microsoft", 5 | "description": "Installs JHipster; a development platform to generate, develop and deploy Spring Boot + Angular Web applications and Spring microservices. For more information: https://jhipster.github.io/", 6 | "tags": [ 7 | "Windows", 8 | "JHipster" 9 | ], 10 | "iconUri": "https://jhipster.github.io/images/logo/logo-jhipster2x.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./Artifactfile.ps1\"')]" 14 | }, 15 | "postDeployActions": [ 16 | { 17 | "action": "deallocate" 18 | }, 19 | { 20 | "action": "waitForShutdown" 21 | }, 22 | { 23 | "action": "restart" 24 | } 25 | ] 26 | } -------------------------------------------------------------------------------- /Artifacts/windows-mongodb/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "MongoDB", 4 | "publisher": "Microsoft", 5 | "description": "Installs MongoDB using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "MongoDB" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/dtgm/chocolatey-packages/8f7101024b11677be45a74b45114000b428a9c9b/icons/mongodb.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'mongodb', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-node/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Node JS", 4 | "publisher": "Microsoft", 5 | "description": "Installs Node JS using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Node", 9 | "NodeJS", 10 | "Javascript" 11 | ], 12 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/nodejs.png", 13 | "targetOsType": "Windows", 14 | "runCommand": { 15 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'nodejs', '\"')]" 16 | } 17 | } -------------------------------------------------------------------------------- /Artifacts/windows-noop/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "No-Op", 4 | "publisher": "Microsoft", 5 | "description": "Artifact used to work around Custom Script extension upgrade limitations on sysprepped images.", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "runCommand": { 11 | "commandToExecute": "cmd /c echo No operation has been applied to this virtual machine. This artifact is used to work around Custom Script extension upgrade limitations on sysprepped images." 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Artifacts/windows-notepadplusplus/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Notepad++", 4 | "publisher": "Microsoft", 5 | "description": "Installs Notepad++ using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Notepad++" 9 | ], 10 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/notepadplusplus.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'notepadplusplus', '\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-nvm/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "NVM", 4 | "publisher": "Ross Bohr", 5 | "description": "Installs NVM using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Node", 9 | "NodeJS", 10 | "NVM", 11 | "Javascript" 12 | ], 13 | "iconUri": "https://cdn.rawgit.com/ferventcoder/chocolatey-packages/02c21bebe5abb495a56747cbb9b4b5415c933fc0/icons/nodejs.png", 14 | "targetOsType": "Windows", 15 | "runCommand": { 16 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'nvm', '\"')]" 17 | } 18 | } -------------------------------------------------------------------------------- /Artifacts/windows-powershell3/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "PowerShell 3.0 and Windows Management Framework 3.0", 4 | "publisher": "Microsoft", 5 | "description": "Windows Management Framework 3.0 includes new installation or updates to Windows PowerShell, Windows Remote Management (WinRM), Windows Management Instrumentation (WMI), Windows Management Instrumentation (WMI), and Server Manager CIM Provider.", 6 | "tags": [ 7 | "Windows", 8 | "PowerShell" 9 | ], 10 | "iconUri": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/Artifacts/windows-powershell3/powershell.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "install.cmd" 14 | }, 15 | "postDeployActions": [ 16 | { 17 | "action": "deallocate" 18 | }, 19 | { 20 | "action": "waitForShutdown" 21 | }, 22 | { 23 | "action": "restart", 24 | "delayStart": 60 25 | } 26 | ] 27 | } -------------------------------------------------------------------------------- /Artifacts/windows-powershell3/Windows6.1-KB2506143-x64.msu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-powershell3/Windows6.1-KB2506143-x64.msu -------------------------------------------------------------------------------- /Artifacts/windows-powershell3/Windows6.1-KB2506143-x86.msu: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-powershell3/Windows6.1-KB2506143-x86.msu -------------------------------------------------------------------------------- /Artifacts/windows-powershell3/powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-powershell3/powershell.png -------------------------------------------------------------------------------- /Artifacts/windows-powershellcore/Powershell_black_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-powershellcore/Powershell_black_64.png -------------------------------------------------------------------------------- /Artifacts/windows-putty/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "PuTTY", 4 | "publisher": "Microsoft", 5 | "description": "Installs PuTTY using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "PuTTY" 9 | ], 10 | "targetOsType": "Windows", 11 | "runCommand": { 12 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'putty', '\"')]" 13 | } 14 | } -------------------------------------------------------------------------------- /Artifacts/windows-remote-desktop-connection-manager/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Remote Desktop Connection Manager", 4 | "publisher": "Vince Adams", 5 | "description": "Installs Remote Desktop Connection Manager using the Chocolatey package manager.\r\nThis application has a vulnerability that won't be fixed because it is no longer supported. https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-0765.", 6 | "tags": [ 7 | "Windows", 8 | "rdcman", 9 | "Remote Desktop Connection Manager" 10 | ], 11 | "iconUri": "https://community.chocolatey.org/Content/Images/packageDefaultIcon.png", 12 | "targetOsType": "Windows", 13 | "runCommand": { 14 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'rdcman', '\"')]" 15 | } 16 | } -------------------------------------------------------------------------------- /Artifacts/windows-restart/artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Restart", 4 | "publisher": "Microsoft", 5 | "description": "Restarts the virtual machine.", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "runCommand": { 11 | "commandToExecute": "cmd /c echo Restarting this virtual machine." 12 | }, 13 | "postDeployActions": [ 14 | { 15 | "action": "deallocate" 16 | }, 17 | { 18 | "action": "waitForShutdown" 19 | }, 20 | { 21 | "action": "restart" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /Artifacts/windows-ruckzuck/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Install RuckZuck Packages", 4 | "publisher": "Roger Zander", 5 | "description": "Update existing software or install packages from the RuckZuck.tools repository", 6 | "tags": [ 7 | "Windows", 8 | "RuckZuck", 9 | "SysAdmin" 10 | ], 11 | "targetOsType": "Windows", 12 | "parameters": { 13 | "packages": { 14 | "type": "string", 15 | "displayName": "Packages", 16 | "description": "Comma delimited list of package names to be installed or empty to update existing software, for example: 7-Zip,Fiddler. A complete list of public packages can be found at http://ruckzuck.tools/Repository.aspx.", 17 | "allowEmpty": true 18 | } 19 | }, 20 | "runCommand": { 21 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startRuckZuck.ps1 -PackageList ''', parameters('packages'), '''\"')]" 22 | } 23 | } -------------------------------------------------------------------------------- /Artifacts/windows-ruckzuck/startRuckzuck.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | #semicolon-separated list of RuckZuck packages. 4 | [string] $PackageList 5 | ) 6 | 7 | Set-Location $($PSScriptRoot) 8 | 9 | if((Test-Path "$($env:temp)\RZUpdate.exe") -eq $false) 10 | { 11 | (New-Object System.Net.WebClient).DownloadFile("https://ruckzuck.azurewebsites.net/DL/RZUpdate.exe", "$($env:temp)\RZUpdate.exe") 12 | } 13 | 14 | #Check if Package-List is empty.. 15 | if([string]::IsNullOrEmpty($PackageList)) 16 | { 17 | #Update all existing Software 18 | $proc = Start-Process -FilePath "$($env:temp)\RZUpdate.exe" -ArgumentList "/Update" -PassThru 19 | $proc.WaitForExit() 20 | $ExitCode = $proc.ExitCode 21 | Exit($ExitCode) 22 | } 23 | else 24 | { 25 | #Install all Products from the Package-List 26 | try 27 | { 28 | $proc = Start-Process -FilePath "$($env:temp)\RZUpdate.exe" -ArgumentList "$($PackageList)" -PassThru 29 | $proc.WaitForExit() 30 | $ExitCode = $proc.ExitCode 31 | Exit($ExitCode) 32 | } 33 | catch{} 34 | } -------------------------------------------------------------------------------- /Artifacts/windows-run-powershell/powershell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-run-powershell/powershell.png -------------------------------------------------------------------------------- /Artifacts/windows-selenium/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Selenium", 4 | "publisher": "ALM Rangers", 5 | "description": "Installs Firefox, Chrome, Selenium Driver for Chrome and IE using the Chocolatey package manager (Firefox already has it)", 6 | "tags": [ 7 | "Windows", 8 | "Firefox", 9 | "Chrome", 10 | "Selenium-Chrome", 11 | "Selenium-IE" 12 | ], 13 | "iconUri": "https://github.com/Azure/azure-devtestlab/raw/master/Artifacts/windows-selenium/selenium-logo.png", 14 | "targetOsType": "Windows", 15 | "runCommand": { 16 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ''', 'firefox,googlechrome,selenium-chrome-driver,selenium-ie-driver', '''\"')]" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Artifacts/windows-selenium/Demo Sample Solution/vsarDTLSeleniumDemo.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25123.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vsarDTLSeleniumDemo", "vsarDTLSeleniumDemo\vsarDTLSeleniumDemo.csproj", "{CAA88352-FE59-414B-8F65-A373096FC5FF}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {CAA88352-FE59-414B-8F65-A373096FC5FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {CAA88352-FE59-414B-8F65-A373096FC5FF}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {CAA88352-FE59-414B-8F65-A373096FC5FF}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {CAA88352-FE59-414B-8F65-A373096FC5FF}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /Artifacts/windows-selenium/Demo Sample Solution/vsarDTLSeleniumDemo/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Artifacts/windows-selenium/Demo Sample Solution/vsarDTLSeleniumDemo/Program.cs: -------------------------------------------------------------------------------- 1 | using OpenQA.Selenium; 2 | using OpenQA.Selenium.Firefox; 3 | using OpenQA.Selenium.IE; 4 | using OpenQA.Selenium.Chrome; 5 | 6 | 7 | namespace vsarSeleniumDemo 8 | { 9 | class Program 10 | { 11 | static void Main(string[] args) 12 | { 13 | // Internet Explorer test 14 | 15 | IWebDriver IEDriver = new InternetExplorerDriver(@"C:\tools\selenium"); 16 | IEDriver.Url = "http://azure.microsoft.com"; 17 | 18 | // Chomre Driver Test 19 | 20 | IWebDriver chromeDriver = new ChromeDriver(@"C:\tools\selenium"); 21 | chromeDriver.Url = "http://azure.microsoft.com"; 22 | 23 | // FireFox Driver Test 24 | 25 | IWebDriver firefoxDriver = new FirefoxDriver(); 26 | firefoxDriver.Url = "http://azure.microsoft.com"; 27 | 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Artifacts/windows-selenium/Demo Sample Solution/vsarDTLSeleniumDemo/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /Artifacts/windows-selenium/selenium-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-selenium/selenium-logo.png -------------------------------------------------------------------------------- /Artifacts/windows-seleniumgrid-hub/README.md: -------------------------------------------------------------------------------- 1 | # Selenium-grid hub 2 | 3 | A simple artifact to setup a selenium-grid hub on your azure DevTestLab virtual machine. 4 | 5 | ## Inputs 6 | 7 | - Download link for the selenium standalone server .jar file. 8 | - Optional .json configuration file for the hub. 9 | 10 | ## Features 11 | 12 | - Easy to use with minimal inputs. 13 | - The hub will be brought back up with the last used configuration in case of a system restart or in case the VM is stopped and started again. 14 | - The artifact can be re-applied to the VM to change configuration if necessary. 15 | 16 | ## Prerequisites 17 | 18 | - Currently only Windows OS is supported. 19 | - Java must be installed on the VM (DevTestLabs has an windows-chocolatey installer artifact that can be used to install Java Runtime Environment). 20 | 21 | ## Limitations 22 | 23 | - The hub must be run on the default 4444 port. -------------------------------------------------------------------------------- /Artifacts/windows-seleniumgrid-hub/SeleniumGridSetupService.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-seleniumgrid-hub/SeleniumGridSetupService.exe -------------------------------------------------------------------------------- /Artifacts/windows-seleniumgrid-node/SeleniumGridSetupService.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-seleniumgrid-node/SeleniumGridSetupService.exe -------------------------------------------------------------------------------- /Artifacts/windows-settimezone/README.md: -------------------------------------------------------------------------------- 1 | This is an [Azure Dev Test Labs artifact](https://docs.microsoft.com/en-us/azure/lab-services/devtest-lab-artifact-author) for setting the time zone on Windows VMs. 2 | 3 | Choose a time zone from the drop down list by its ID. (Unfortunately, the `allowedValues` in a DevTestLabs artifact doesn't allow for a different display name.) 4 | 5 | If you're not sure what time zone ID to choose, examine the output of `tzutil.exe /l` for a list. 6 | 7 | Please note though, you should generally not change the time zone for *servers*. Leave that set to UTC and handle time zone conversions in your application code. Reserve using this artifact for setting the time zone on VMs intended for testing desktop client-side applications. 8 | -------------------------------------------------------------------------------- /Artifacts/windows-slack/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Slack", 4 | "publisher": "Microsoft", 5 | "description": "Installs Slack using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "Slack" 9 | ], 10 | "iconUri": "https://a.slack-edge.com/4a5c4/marketing/img/icons/icon_slack_hash_colored.svg", 11 | "targetOsType": "Windows", 12 | "parameters": { 13 | "installUsername": { 14 | "type": "string", 15 | "displayName": "Install User Name", 16 | "description": "The local user name for which the artifact will be installed" 17 | }, 18 | "installPassword": { 19 | "type": "securestring", 20 | "displayName": "Install Password", 21 | "description": "User password" 22 | } 23 | }, 24 | "runCommand": { 25 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./startChocolatey.ps1 -PackageList ', 'slack', ' -UserName ', parameters('installUsername'), ' -Password ', parameters('installPassword'), '\"')]" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Artifacts/windows-slack/README.md: -------------------------------------------------------------------------------- 1 | #Slack Azure DevTest Labs Artifact 2 | ##Information 3 | 4 | This artifact installs Slack for Windows (https://slack.com/) via Chocolatey package manager. 5 | Slack is a messaging app for teams that is on a mission to make your working life simpler, more pleasant, and more productive. 6 | 7 | Information about the Chocolatey package and the version of the distributive available on https://www.myget.org/feed/almrangers/package/nuget/slackmsix64 8 | 9 | ##Usage 10 | For manual installation run the following command 11 | 12 | > powershell.exe -ExecutionPolicy bypass -File startChocolatey.ps1 -PackageList slackmsix64 -Username {userName} -Password {password} 13 | 14 | {userName} and {password} - This is credentials of the user for which you want to install the package. After executing this command, you must relogin. 15 | -------------------------------------------------------------------------------- /Artifacts/windows-ssms/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "SSMS", 4 | "publisher": "Microsoft", 5 | "description": "Installs Sql server management studio using the Chocolatey package manager.", 6 | "tags": [ 7 | "Windows", 8 | "SSMS" 9 | ], 10 | "iconUri": "https://community.chocolatey.org/content/packageimages/sql-server-management-studio.15.0.18386.0.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ''', 'sql-server-management-studio', '''\"')]" 14 | } 15 | } -------------------------------------------------------------------------------- /Artifacts/windows-sublime-text/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Sublime Text", 4 | "publisher": "Microsoft", 5 | "description": "Installs SublimeText using the Chocolatey package manager", 6 | "tags": [ 7 | "Windows", 8 | "SublimeText" 9 | ], 10 | "iconUri": "https://upload.wikimedia.org/wikipedia/en/thumb/d/d2/Sublime_Text_3_logo.png/150px-Sublime_Text_3_logo.png", 11 | "targetOsType": "Windows", 12 | "runCommand": { 13 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'sublimetext3', '\"')]" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Artifacts/windows-sublime-text/README.md: -------------------------------------------------------------------------------- 1 | #Sublime Text Azure DevTest Labs Artifact 2 | ##Information 3 | 4 | This artifact installs Sublime Text 3 (https://www.sublimetext.com/3) via Chocolatey package manager. 5 | Information about the Chocolatey package and version of the distributive available on https://chocolatey.org/packages/SublimeText3 6 | 7 | ##Usage 8 | For manual installation run the following command 9 | 10 | > powershell.exe -ExecutionPolicy bypass -File startChocolatey.ps1 -PackageList sublimetext3 11 | -------------------------------------------------------------------------------- /Artifacts/windows-sysinternals/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Sysinternals", 4 | "publisher": "Microsoft", 5 | "description": "Installs Sysinternals using the Chocolatey package manager. It is installed under %ALLUSERSPROFILE%\\chocolatey\\lib\\sysinternals\\tools. All Sysinternals tools are immediately accessible from the command line after install (e.g. Start -> Run, \"procexp.exe\").", 6 | "tags": [ 7 | "Windows", 8 | "Sysinternals" 9 | ], 10 | "targetOsType": "Windows", 11 | "runCommand": { 12 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'sysinternals', '\"')]" 13 | } 14 | } -------------------------------------------------------------------------------- /Artifacts/windows-sysprep/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Sysprep", 4 | "description": "Runs sysprep on Windows machines. Running this artifact will render your machine unusable. Apply this artifact last if used in conjunction with other artifacts.", 5 | "publisher": "Microsoft", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "targetOsType": "Windows", 10 | "parameters": {}, 11 | "runCommand": { 12 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass \"& ./OldSysprep.ps1\"" 13 | }, 14 | "postDeployActions": [ 15 | { 16 | "action": "waitForShutdown" 17 | }, 18 | { 19 | "action": "deallocate" 20 | } 21 | ] 22 | } -------------------------------------------------------------------------------- /Artifacts/windows-sysprep/OldSysprep.ps1: -------------------------------------------------------------------------------- 1 | $newProcess = new-object System.Diagnostics.ProcessStartInfo "sysprep.exe" 2 | $newProcess.WorkingDirectory = "${env:SystemDrive}\windows\system32\sysprep" 3 | $newProcess.Arguments = "/generalize /oobe /shutdown" 4 | Write-Host $newProcess.Arguments 5 | $newProcess.Verb = "runas"; 6 | $process = [System.Diagnostics.Process]::Start($newProcess); 7 | -------------------------------------------------------------------------------- /Artifacts/windows-ubuntu/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Windows Ubuntu", 4 | "publisher": "Steve Kurtz", 5 | "description": "Installs specified Ubuntu distribution", 6 | "tags": [ 7 | "WSL", 8 | "Ubuntu" 9 | ], 10 | "targetOsType": "Windows", 11 | "parameters": { 12 | "distro": { 13 | "type": "string", 14 | "displayName": "Ubuntu Distro", 15 | "description": "Specifies the specific distro (e.g., 1804)", 16 | "defaultValue": "1804" 17 | } 18 | }, 19 | "runCommand": { 20 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./InstallUbuntu.ps1 -distro ''', parameters('distro'), '''\"')]" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Artifacts/windows-ubuntu/ubuntu_orange_hex_su.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-ubuntu/ubuntu_orange_hex_su.png -------------------------------------------------------------------------------- /Artifacts/windows-vscode/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Visual Studio Code (32-bit)", 4 | "publisher": "rchaganti", 5 | "description": "[Obsolete] Kept for backward compatibility. Use Visual Studio Code (64-bit) for new labs.", 6 | "tags": ["Windows", "VSCode", "Visual Studio"], 7 | "iconUri": "https://github.com/Azure/azure-devtestlab/raw/master/Artifacts/windows-vscode/vscode.png", 8 | "targetOsType": "Windows", 9 | "runCommand": { 10 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-vscode.ps1\"')]" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Artifacts/windows-vscode/vscode.inf: -------------------------------------------------------------------------------- 1 | [Setup] 2 | Lang=english 3 | Dir=C:\Program Files (x86)\Microsoft VS Code 4 | Group=Visual Studio Code 5 | NoIcons=0 6 | Tasks=desktopicon,addcontextmenufiles,addcontextmenufolders,addtopath 7 | -------------------------------------------------------------------------------- /Artifacts/windows-vscode/vscode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-vscode/vscode.png -------------------------------------------------------------------------------- /Artifacts/windows-webdeploy/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "WebDeploy", 4 | "publisher": "ALM Rangers", 5 | "description": "Installs WebDeploy using the Chocolatey package manager.", 6 | "tags": [ 7 | "Windows", 8 | "Git" 9 | ], 10 | "targetOsType": "Windows", 11 | "runCommand": { 12 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./install-choco-package.ps1 -Packages ', 'webdeploy', '\"')]" 13 | }, 14 | "postDeployActions": [ 15 | { 16 | "action": "deallocate" 17 | }, 18 | { 19 | "action": "waitForShutdown" 20 | }, 21 | { 22 | "action": "restart" 23 | } 24 | ] 25 | } 26 | -------------------------------------------------------------------------------- /Artifacts/windows-winrm/artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Configure WinRM", 4 | "publisher": "Microsoft", 5 | "description": "Configures WinRM on the virtual machine. If using \"Shared IP address\" for your Lab VM, you will need to also add a NAT rule on the Load Balancer to allow traffic through. Alternatively, use \"Public IP address\" instead.", 6 | "tags": [ 7 | "Windows" 8 | ], 9 | "iconUri": "https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/Powershell_64.png", 10 | "targetOsType": "Windows", 11 | "parameters": { 12 | "hostName": { 13 | "type": "string", 14 | "displayName": "Host Name", 15 | "description": "Specifies the FQDN of the machine or domain." 16 | } 17 | }, 18 | "runCommand": { 19 | "commandToExecute": "[concat('powershell.exe -ExecutionPolicy bypass \"& ./config-winrm.ps1 -HostName ''', parameters('hostName'), '''\"')]" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Artifacts/windows-winrm/makecert.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Artifacts/windows-winrm/makecert.exe -------------------------------------------------------------------------------- /Artifacts/windows-wsl/Artifactfile.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/Azure/azure-devtestlab/master/schemas/2016-11-28/dtlArtifacts.json", 3 | "title": "Windows WSL", 4 | "publisher": "Steve Kurtz", 5 | "description": "Enables the WSL Windows feature", 6 | "tags": [ 7 | "WSL" 8 | ], 9 | "targetOsType": "Windows", 10 | "parameters": {}, 11 | "runCommand": { 12 | "commandToExecute": "powershell.exe -ExecutionPolicy bypass -File EnableWSL.ps1" 13 | }, 14 | "postDeployActions": [ 15 | { 16 | "action": "deallocate" 17 | }, 18 | { 19 | "action": "waitForShutdown" 20 | }, 21 | { 22 | "action": "restart" 23 | } 24 | ] 25 | } -------------------------------------------------------------------------------- /Artifacts/windows-wsl/EnableWSL.ps1: -------------------------------------------------------------------------------- 1 |  2 | Write-Output "Enabling Windows Subsystem for Linux Feature" 3 | Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | /Artifacts/windows-download-artifacts-drop/* @bradselw @plequere-ms 2 | /Artifacts/windows-execute-powershell-script/* @bradselw @plequere-ms 3 | /samples/DevTestLabs/Modules/Library/ @lucabol @petehauge @rogerbestmsft 4 | -------------------------------------------------------------------------------- /Environments/ServiceFabric-LabCluster/README.md: -------------------------------------------------------------------------------- 1 | # Service Fabric Lab Cluster (Windows/Linux) 2 | 3 | This environment template supports to operation modes: 4 | 5 | * **Windows** - This mode allows you to deploy a secure 5 node, Single Node Type Service Fabric Cluster running Windows Server 2016 Datacenter on a Standard_D2 Size VMSS with Azure Diagnostics turned on. 6 | 7 | * **Linux** - This mode allows you to deploy a secure 5 node, Single Node Type Service fabric Cluster running Ubuntu 16.04 on Standard_D2 Size VMs with Windows Azure diagnostics turned on. 8 | 9 | To create the required certificate information for a Service Fabric Secure Cluster please use the [Create-ClusterCertificate.ps1](https://github.com/Azure/azure-devtestlab/tree/master/Environments/ServiceFabric-LabCluster/Create-ClusterCertificate.ps1) PowerShell script. -------------------------------------------------------------------------------- /Environments/ServiceFabric-LabCluster/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Service Fabric Lab Cluster", 3 | "githubUsername": "Microsoft", 4 | "description": "A secure 5 node, single nodetype Service fabric Cluster.", 5 | "summary": "This template allows you to deploy a secure 5 node, Single Node Type Service fabric Cluster running Ubuntu 16.04 or Windows Server 2016 on Standard_D2_v2 Size VMs with Windows Azure diagnostics turned on." 6 | } -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUsername": { 6 | "value": "GEN-UNIQUE-10" 7 | }, 8 | "adminPassword": { 9 | "value": "GEN-PASSWORD" 10 | }, 11 | "otherAccountsPassword": { 12 | "value": "GEN-PASSWORD" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/dsc/ConfigureDCVM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-AllVersions/dsc/ConfigureDCVM.zip -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/dsc/ConfigureSPLegacy.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-AllVersions/dsc/ConfigureSPLegacy.zip -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/dsc/ConfigureSPSE.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-AllVersions/dsc/ConfigureSPSE.zip -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/dsc/ConfigureSQLVM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-AllVersions/dsc/ConfigureSQLVM.zip -------------------------------------------------------------------------------- /Environments/SharePoint-AllVersions/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "SharePoint Subscription / 2019 / 2016 with a lightweight configuration", 3 | "description": "Deploy SharePoint Subscription / 2019 / 2016 with a lightweight configuration. Each version is independent and may or may not be deployed.", 4 | "summary": "Deploy SharePoint Subscription / 2019 / 2016 with a lightweight configuration. Each version is independent and may or may not be deployed.", 5 | "githubUsername": "Yvand", 6 | "dateUpdated": "2024-12-27" 7 | } -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUsername": { 6 | "value": "GEN-UNIQUE-10" 7 | }, 8 | "adminPassword": { 9 | "value": "GEN-PASSWORD" 10 | }, 11 | "otherAccountsPassword": { 12 | "value": "GEN-PASSWORD" 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureDCVM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureDCVM.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureFELegacy.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureFELegacy.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureFESE.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureFESE.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSPLegacy.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSPLegacy.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSPSE.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSPSE.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSQLVM.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/Environments/SharePoint-SingleFarm-FullConfig/dsc/ConfigureSQLVM.zip -------------------------------------------------------------------------------- /Environments/SharePoint-SingleFarm-FullConfig/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "SharePoint Subscription / 2019 / 2016 with an extensive configuration", 3 | "description": "Create a DC, a SQL Server 2022, and from 1 to 5 server(s) hosting a SharePoint Subscription / 2019 / 2016 farm with an extensive configuration, including trusted authentication, user profiles with personal sites, an OAuth trust (using a certificate), a dedicated IIS site for hosting high-trust add-ins, etc... The latest version of key softwares (including Fiddler, vscode, np++, 7zip, ULS Viewer) is installed. SharePoint machines have additional fine-tuning to make them immediately usable (remote administration tools, custom policies for Edge and Chrome, shortcuts, etc...).", 4 | "summary": "Create a SharePoint Server farm with an extensive configuration. Key softwares (inc. Fiddler, vscode, np++, 7zip and ULS Viewer) and fine tuning make the farm immediately useful for most scenarios", 5 | "githubUsername": "Yvand", 6 | "dateUpdated": "2024-12-27" 7 | } -------------------------------------------------------------------------------- /Environments/WebApp-MySQL/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure Web App with MySQL 2 | 3 | Azure Web Apps enable you to build and host web applications in the programming language of your choice without managing infrastructure. It offers auto-scaling and high availability and enable automated deployments from [GitHub](https://github.com), [Azure DevOps](https://azure.microsoft.com/en-ca/services/devops), or any Git repo. 4 | 5 | To learn more about Web Apps refer to [App Service overview](https://docs.microsoft.com/en-us/azure/app-service/overview) documentation. 6 | 7 | This template allows you to create a Web App with MySQL. 8 | -------------------------------------------------------------------------------- /Environments/WebApp-MySQL/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Web App with MySQL", 3 | "description": "This template creates an Azure Web App with MySQL", 4 | "githubUsername": "Microsoft", 5 | "summary": "Deploys an Azure Web App with a MySQL instance as an environment in a DevTest Lab." 6 | } -------------------------------------------------------------------------------- /Environments/WebApp-PostgresSQL/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure Web App with Postgres SQL 2 | 3 | Azure Web Apps enable you to build and host web applications in the programming language of your choice without managing infrastructure. It offers auto-scaling and high availability and enable automated deployments from [GitHub](https://github.com), [Azure DevOps](https://azure.microsoft.com/en-ca/services/devops), or any Git repo. 4 | 5 | To learn more about Web Apps refer to [App Service overview](https://docs.microsoft.com/en-us/azure/app-service/overview) documentation. 6 | 7 | This template allows you to create a Web App with PostgressSQL. 8 | -------------------------------------------------------------------------------- /Environments/WebApp-PostgresSQL/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Web App with PostgreSQL", 3 | "description": "This template creates an Azure Web App with PostgreSQL. WARNING PostgreSQL WILL NEED TO BE ENABLED IN YOUR SUBSCRIPTION.", 4 | "githubUsername": "Microsoft", 5 | "summary": "Deploys an Azure Web App with a PostgreSQL instance as an environment in a DevTest Lab." 6 | } -------------------------------------------------------------------------------- /Environments/WebApp-SQL/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure Web App with SQL Server 2 | 3 | Azure Web Apps enable you to build and host web applications in the programming language of your choice without managing infrastructure. It offers auto-scaling and high availability and enable automated deployments from [GitHub](https://github.com), [Azure DevOps](https://azure.microsoft.com/en-ca/services/devops), or any Git repo. 4 | 5 | To learn more about Web Apps refer to [App Service overview](https://docs.microsoft.com/en-us/azure/app-service/overview) documentation. 6 | 7 | This template allows you to create a Web App with SQL. 8 | -------------------------------------------------------------------------------- /Environments/WebApp-SQL/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Web App with SQL Database", 3 | "description": "This template creates an Azure Web App with Azure SQL Database.", 4 | "githubUsername": "Microsoft", 5 | "summary": "Deploys an Azure Web App with a SQL database as an environment in a DevTest Lab." 6 | } -------------------------------------------------------------------------------- /Environments/WebApp/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure Web App 2 | 3 | Azure Web Apps enable you to build and host web applications in the programming language of your choice without managing infrastructure. It offers auto-scaling and high availability and enable automated deployments from [GitHub](https://github.com), [Azure DevOps](https://azure.microsoft.com/en-ca/services/devops), or any Git repo. 4 | 5 | To learn more about Web Apps refer to [App Service overview](https://docs.microsoft.com/en-us/azure/app-service/overview) documentation. 6 | 7 | This template allows you to create a Web App. 8 | -------------------------------------------------------------------------------- /Environments/WebApp/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Web App", 3 | "description": "This template creates an Azure Web App without a data store.", 4 | "githubUsername": "Microsoft", 5 | "summary": "Deploys an Azure Web App as an environment in a DevTest Lab." 6 | } -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) Microsoft Corporation 2 | All rights reserved. 3 | 4 | 5 | MIT License 6 | 7 | 8 | Permission is hereby granted, free of charge, to any person obtaining a copy 9 | of this software and associated documentation files (the "Software"), to deal 10 | in the Software without restriction, including without limitation the rights 11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | copies of the Software, and to permit persons to whom the Software is 13 | furnished to do so, subject to the following conditions: 14 | 15 | 16 | The above copyright notice and this permission notice shall be included in all 17 | copies or substantial portions of the Software. 18 | 19 | 20 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 21 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 22 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 23 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 24 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 25 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 26 | SOFTWARE. 27 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/.gitignore: -------------------------------------------------------------------------------- 1 | /Tests/*.test.ps1.xml -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/AADGroupMembers.csv: -------------------------------------------------------------------------------- 1 | AADGroupName,EMail 2 | AzureLabs_Class1,exampleuser1@contoso.com 3 | AzureLabs_Class1,exampleuser2@contoso.com 4 | AzureLabs_Class1,exampleuser3@contoso.com 5 | AzureLabs_Class1,exampleuser4@contoso.com 6 | AzureLabs_Class1,exampleuser5@contoso.com 7 | AzureLabs_Class1,exampleuser6@contoso.com 8 | AzureLabs_Class2,exampleuser1@contoso.com 9 | AzureLabs_Class2,exampleuser2@contoso.com 10 | AzureLabs_Class2,exampleuser7@contoso.com 11 | AzureLabs_Class2,exampleuser8@contoso.com 12 | AzureLabs_Class2,exampleuser9@contoso.com 13 | AzureLabs_Class2,exampleuser10@contoso.com 14 | AzureLabs_Class2,exampleuser11@contoso.com -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/CustomRoleAssignments.csv: -------------------------------------------------------------------------------- 1 | ResourceGroupName,LabAccountName,LabAccountCustomRoleEmails 2 | hogwarts-rg2,Muggle,customuser1@contoso.com 3 | hogwarts-rg2,Wizardy,customuser2@contoso.com -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PickALab.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile 6 | ) 7 | 8 | Import-Module ../../Az.LabServices.psm1 -Force 9 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 10 | 11 | $CsvConfigFile | Import-LabsCsv | Show-LabMenu -PickLab | Publish-Labs -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PickLabAndProperties.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [Parameter(Mandatory = $false, HelpMessage = "Which lab properties to show a prompt for")] 8 | [ValidateNotNullOrEmpty()] 9 | [string[]] 10 | $Properties 11 | ) 12 | 13 | Import-Module ../../Az.LabServices.psm1 -Force 14 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 15 | 16 | $CsvConfigFile ` 17 | | Import-LabsCsv ` 18 | | Show-LabMenu -PickLab -Properties $Properties ` 19 | | Publish-Labs -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PickProperties.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [Parameter(Mandatory = $false, HelpMessage = "Which lab properties to show a prompt for")] 8 | [ValidateNotNullOrEmpty()] 9 | [string[]] 10 | $Properties 11 | ) 12 | 13 | Import-Module ../../Az.LabServices.psm1 -Force 14 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 15 | 16 | $CsvConfigFile ` 17 | | Import-LabsCsv ` 18 | | Show-LabMenu -Properties $Properties ` 19 | | Publish-Labs -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PublishAllJson.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $JsonConfigFile, 6 | 7 | [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] 8 | [int] 9 | $ThrottleLimit = 5 10 | ) 11 | 12 | Import-Module ../../Az.LabServices.psm1 -Force 13 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 14 | 15 | Get-Content -Raw -Path $JsonConfigFile | ConvertFrom-Json | Publish-Labs -ThrottleLimit $ThrottleLimit -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PublishById.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "Id for the lab to publish")] 8 | [ValidateNotNullOrEmpty()] 9 | [string] 10 | $AnId 11 | ) 12 | 13 | Import-Module ../../Az.LabServices.psm1 -Force 14 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 15 | 16 | $CsvConfigFile ` 17 | | Import-LabsCsv ` 18 | | Select-Lab -Id $AnId ` 19 | | Set-LabProperty -ResourceGroup Staging -MaxUsers 50 ` 20 | | Publish-Labs -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PublishByTag.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "If a lab contains any of these tags, it will be selected")] 8 | [ValidateNotNullOrEmpty()] 9 | [string[]] 10 | $SomeTags, 11 | 12 | [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] 13 | [int] 14 | $ThrottleLimit = 5 15 | ) 16 | 17 | Import-Module ../../Az.LabServices.psm1 -Force 18 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 19 | 20 | $CsvConfigFile | Import-LabsCsv | Select-Lab -SomeTags $SomeTags | Publish-Labs -ThrottleLimit $ThrottleLimit -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/PublishStaging.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] 8 | [int] 9 | $ThrottleLimit = 5 10 | 11 | ) 12 | 13 | Import-Module ../../Az.LabServices.psm1 -Force 14 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 15 | 16 | $CsvConfigFile | Import-LabsCsv | Set-LabProperty -ResourceGroupName Staging | Publish-Labs -ThrottleLimit $ThrottleLimit -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/Remove-AzLabs.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] 8 | [int] 9 | $ThrottleLimit = 7 10 | ) 11 | 12 | Set-StrictMode -Version Latest 13 | $ErrorActionPreference = 'Stop' 14 | 15 | # Make sure the input file does exist 16 | if (-not (Test-Path -Path $CsvConfigFile)) { 17 | Write-Error "Input CSV File must exist, please choose a valid file location..." 18 | } 19 | 20 | Import-Module ../../Az.LabServices.psm1 -Force 21 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 22 | 23 | $scriptstartTime = Get-Date 24 | Write-Host "Executing Bulk Lab deletion Script, starting at $scriptstartTime" -ForegroundColor Green 25 | 26 | $CsvConfigFile | Import-Csv | Remove-AzLabsBulk -ThrottleLimit $ThrottleLimit 27 | 28 | Write-Host "Completed running Bulk Lab deletion Script, total duration $([math]::Round(((Get-Date) - $scriptstartTime).TotalMinutes, 1)) minutes" -ForegroundColor Green -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/Reset-StudentAvailableHours.ps1: -------------------------------------------------------------------------------- 1 | [CmdletBinding()] 2 | param( 3 | [parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] 4 | [string] 5 | $CsvConfigFile, 6 | 7 | [parameter(Mandatory = $false, ValueFromPipelineByPropertyName = $true)] 8 | [int] 9 | $ThrottleLimit = 5 10 | ) 11 | 12 | Set-StrictMode -Version Latest 13 | $ErrorActionPreference = 'Stop' 14 | 15 | # Make sure the input file does exist 16 | if (-not (Test-Path -Path $CsvConfigFile)) { 17 | Write-Error "Input CSV File must exist, please choose a valid file location..." 18 | } 19 | 20 | Import-Module ../../Az.LabServices.psm1 -Force 21 | Import-Module ../Az.LabServices.BulkOperations.psm1 -Force 22 | 23 | $scriptstartTime = Get-Date 24 | Write-Host "Executing Bulk User Quota Script, starting at $scriptstartTime" -ForegroundColor Green 25 | 26 | $CsvConfigFile | Import-Csv | Reset-AzLabUserQuotaBulk -ThrottleLimit $ThrottleLimit 27 | 28 | Write-Host "Completed running Bulk User Quota script, total duration $([math]::Round(((Get-Date) - $scriptstartTime).TotalMinutes, 1)) minutes" -ForegroundColor Green 29 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/charms.csv: -------------------------------------------------------------------------------- 1 | Frequency,FromDate,ToDate,StartTime,EndTime,WeekDays,TimeZoneId, Notes 2 | Weekly,"1/1/2021", "12/12/2021", "10:00", "12:00", "Monday, Friday", "W. Europe Standard Time", "A recurrent class" 3 | Once,"1/1/2021", "12/12/2021", "10:00", "12:00", "", "W. Europe Standard Time", "A workshop" -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/BulkOperations/Examples/hogwarts.csv: -------------------------------------------------------------------------------- 1 | Id,Tags,ResourceGroupName,Location,LabAccountName,LabName,ImageName,AadGroupId,MaxUsers,UsageQuota,UsageMode,SharedPassword,Size,Title,Descr,TemplateVmState, UserName,Password,LinuxRdp, Emails,LabOwnerEmails, idleGracePeriod, idleOsGracePeriod, idleNoConnectGracePeriod, Invitation, Schedules 2 | id001,District1;SeniorLevel,hogwarts-rg2,westeurope,Muggle,History of Magic,CentOS-Based*,,2,20,Restricted,DISABLED,Basic,History of Magic,Those who don't know history ...,Enabled,test0000,Test00000000,TRUE,exampleuser1@contoso.com;exampleuser2@contoso.com,exampleteacher1@contoso.com;exampleteacher2@contoso.com,,,,History of Magic, 3 | id002,District1;SeniorLevel,hogwarts-rg2,westeurope,Wizardy,Transfiguration,CentOS-Based*,,2,20,Restricted,DISABLED,Standard,Transfiguration,Who are you?,,test0000,Test00000000,TRUE,exampleuser1@contoso.com;exampleuser2@contoso.com,,,,,Transfiguration, 4 | id003,District1;JuniorLevel,hogwarts-rg2,westeurope,Wizardy,Charms,Visual Studio 2019*,,2,20,Restricted,DISABLED,Standard,Charms,Encanted,Disabled,test0000,Test00000000,FALSE,exampleuser1@contoso.com,,15,15,15," ""Charms""", charms 5 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/Scenarios/PrintVmsByUser.ps1: -------------------------------------------------------------------------------- 1 | <# 2 | Prints out a report of all VMs. 3 | #> 4 | [CmdletBinding()] 5 | param($UserEmail = '*') 6 | 7 | Import-Module ..\Az.LabServices.psm1 -Force 8 | 9 | Write-Host "Retrieving VMs in your labs ..." 10 | $labs = Get-AzLabAccount | Get-AzLab 11 | $vms = $labs | Get-AzLabVm 12 | 13 | if($vms) { 14 | Write-Host "Building the username -> email lookup table ..." 15 | $users = @{} 16 | $labs | Get-AzLabUser | ForEach-Object {$users[$_.name] = $_.properties.email} 17 | 18 | $email = @{N = 'Email'; E = { $users.item($_.UserPrincipal)} } 19 | 20 | $vms ` 21 | | Select-Object -Property $email, ResourceGroupName, LabName, Status ` 22 | | Where-Object { $_.Email -like $UserEmail } ` 23 | | Sort-Object -Property Email, ResourceGroupName, LabName, Status -Descending ` 24 | | Format-Table -GroupBy Email -Property ResourceGroupName, LabName, Status ` 25 | | Out-Host 26 | 27 | } else { 28 | Write-Host "No VMs in your labs." 29 | } 30 | 31 | Remove-Module Az.LabServices -Force -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/Tests/Cleanup.ps1: -------------------------------------------------------------------------------- 1 | [cmdletbinding()] 2 | Param() 3 | Import-Module $PSScriptRoot\..\Az.LabServices.psm1 4 | 5 | #. $PSScriptRoot\Utils.ps1 6 | Import-Module $PSScriptRoot\Utils.psm1 7 | Write-Verbose "Loading Utils.psm1" 8 | 9 | $rg = Get-FastResourceGroup 10 | $la = Get-FastLabAccount 11 | $lab = Get-FastLab 12 | 13 | Describe 'Cleanup resources as might get left dangling' { 14 | It 'Can cleanup everything' { 15 | 16 | Get-AzLabAccount -ResourceGroupName $rg.ResourceGroupName | Where-Object {$_.Name.StartsWith('Temp')} | Remove-AzLabAccount 17 | $la | Get-AzLab | Where-Object {$_.Name.StartsWith('Temp')} | Remove-AzLab 18 | $lab | Get-AzLabSchedule | Where-Object {$_.properties.start -lt (Get-Date).AddDays(-7)} | Remove-AzLabSchedule 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/Tests/Fast-SharedGallery.tests.ps1: -------------------------------------------------------------------------------- 1 | [cmdletbinding()] 2 | Param() 3 | Import-Module $PSScriptRoot\..\Az.LabServices.psm1 -Force 4 | 5 | #. $PSScriptRoot\Utils.ps1 6 | Import-Module $PSScriptRoot\Utils.psm1 -Force 7 | Write-Verbose "Loading Utils.psm1" 8 | 9 | Describe 'Shared Gallery' { 10 | 11 | BeforeAll { 12 | $script:la = Get-FastLabAccount 13 | # $script:la = Get-FastLabAccount -RandomName 14 | $script:sg = Get-FastGallery 15 | } 16 | 17 | AfterAll { 18 | } 19 | 20 | It 'Can attach/detach a shared library' { 21 | $script:sg | Should -Not -Be $null 22 | $script:la | Should -Not -Be $null 23 | 24 | $acsg = $script:la | New-AzLabAccountSharedGallery -SharedGallery $script:sg 25 | $acsg | Should -Not -Be $null 26 | } 27 | 28 | It 'Can retrieve images' { 29 | $imgs = $script:la | Get-AzLabAccountSharedImage 30 | $imgs | Should -Not -BeNullOrEmpty 31 | } 32 | 33 | # Also disabling this until I find solution for above. 34 | It 'Can remove a gallery' { 35 | $script:la | Remove-AzLabAccountSharedGallery -SharedGalleryName $script:sg.Name 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Modules/Library/Tests/VM.tests.ps1: -------------------------------------------------------------------------------- 1 | [cmdletbinding()] 2 | Param() 3 | Import-Module $PSScriptRoot\..\Az.LabServices.psm1 -Force 4 | 5 | #. $PSScriptRoot\Utils.ps1 6 | Import-Module $PSScriptRoot\Utils.psm1 -Force 7 | Write-Verbose "Loading Utils.psm1" 8 | 9 | 10 | Describe 'VMs' { 11 | 12 | BeforeAll { 13 | $script:lab = Get-FastLab -RandomName 14 | $script:vms = $script:lab | Get-AzLabVm 15 | $script:vm = $script:vms[0] 16 | } 17 | 18 | AfterAll { 19 | $script:lab | Remove-AzLab 20 | } 21 | 22 | It 'Can start VM' { 23 | $script:vm | Should -Not -BeNullOrEmpty 24 | $script:vm | Start-AzLabVm 25 | 26 | $started = $script:lab | Get-AzLabVm -Status 'Running' 27 | $started | Should -Not -BeNullOrEmpty 28 | $matched = $started | Where-Object Name -eq $script:vm.Name 29 | $matched | Should -Not -BeNullOrEmpty 30 | } 31 | 32 | It 'Can stop VM' { 33 | $script:vm | Stop-AzLabVm 34 | $script:lab | Get-AzLabVm -Status 'Stopped' | Where-Object { $_.Name -eq $script:vm.Name} | Should -Not -BeNullOrEmpty 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/ActiveDirectoryJoin/img/Azure AD DS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/ActiveDirectoryJoin/img/Azure AD DS.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/ActiveDirectoryJoin/img/On-prem AD DS Server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/ActiveDirectoryJoin/img/On-prem AD DS Server.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/BigDataAnalytics/PowerShell-Run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/BigDataAnalytics/PowerShell-Run.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/BigDataAnalytics/Run-Task.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/BigDataAnalytics/Run-Task.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/BigDataAnalytics/Task-Scheduler.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/BigDataAnalytics/Task-Scheduler.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/CustomContributorRole/ImportCustomContributorRole.ps1: -------------------------------------------------------------------------------- 1 | # Imports custom role named AzLabsCustomContributorRole at the subscription level. 2 | # Once imported, this role can then be assigned to teachers at the lab level. 3 | # This role gives fine grained control of the permissions that teachers are granted when managing labs. 4 | $index = (Get-Content -path ".\AzLabsCustomContributorRole.json" -Raw).IndexOf("{Your Sub Id}") 5 | if ($index -eq -1) { 6 | New-AzRoleDefinition -InputFile ".\AzLabsCustomContributorRole.json" 7 | } 8 | else { 9 | Write-Error -Message "You must replace {Your Sub Id} in AzLabsCustomContributorRole.json with your Azure subscription id." 10 | } 11 | 12 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Dockerfile: -------------------------------------------------------------------------------- 1 | from fedora:32 2 | 3 | RUN dnf clean all && dnf -y update \ 4 | && dnf -y install openssh-server passwd\ 5 | && dnf -y groupinstall "Xfce Desktop" \ 6 | && dnf -y install x2goserver \ 7 | && dnf clean all 8 | 9 | COPY entrypoint.sh /entrypoint.sh 10 | 11 | ENTRYPOINT ["/entrypoint.sh"] 12 | CMD ["/usr/sbin/sshd", "-D"] 13 | 14 | EXPOSE 22 15 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd1.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd2.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerCmd3.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerDiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/DockerDiagram.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/RemoteFedoraDesktop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/RemoteFedoraDesktop.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoLogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoLogin.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoNewSession.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoNewSession.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoSessionPreferences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/ClassroomLabs/Scripts/FedoraDockerContainer/Images/X2GoSessionPreferences.png -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/FedoraDockerContainer/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | : ${USERNAME:=testuser} 4 | : ${USERPASS:=Fedora#123} 5 | 6 | __create_rundir() { 7 | mkdir -p /var/run/sshd 8 | chmod 1777 /dev/shm 9 | } 10 | 11 | __create_user() { 12 | # Create a user 13 | useradd $USERNAME 14 | echo -e "$USERPASS\n$USERPASS" | (passwd --stdin $USERNAME) 15 | echo user password: $USERPASS 16 | usermod -a -G x2gouser $USERNAME 17 | usermod -a -G wheel $USERNAME 18 | } 19 | 20 | __create_hostkeys() { 21 | ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N '' 22 | } 23 | 24 | __setup_ssh() { 25 | 26 | echo 'root:Fedora#2020' | chpasswd 27 | sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 28 | sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd 29 | echo 'export NOTVISIBLE="in users profile"' >> ~/.bashrc 30 | root@containerID$ echo "export VISIBLE=now" >> /etc/profile 31 | 32 | ssh-keygen -A -N '' 33 | rm -f /run/nologin 34 | } 35 | 36 | # Call all functions 37 | __create_rundir 38 | __create_hostkeys 39 | __setup_ssh 40 | __create_user 41 | 42 | exec "$@" -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/GenericPreparation/Readme.md: -------------------------------------------------------------------------------- 1 | # Azure Lab Services VM preparation 2 | 3 | This folder contains scripts useful for setting up an Azure Lab Services VM for the first time. They are fully described in [this article](https://docs.microsoft.com/en-us/azure/lab-services/classroom-labs/how-to-prepare-windows-template). 4 | 5 | 1. Prepare-Updates.ps1: This script installs updates for a Windows 10 machine and turns off automatic updates to avoid class disruption. 6 | 2. This script prepares a the OneDrive install for a Windows 10 machine for a generic class. 7 | 3. This script prepares a computer for class by aiding in the deletion of unneeded Microsoft Store applications. The remaining Microsoft Store applications are updated. -------------------------------------------------------------------------------- /samples/ClassroomLabs/Scripts/HyperV/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | This script will help prepare your template virtual machine for a classroom lab to use Hyper-V nested virtualization. 3 | 4 | ## Notes 5 | - Script must be executed using administrator privileges. 6 | - If running this script on a client O.S. like Windows 10 which does not support DHCP Server, use the "Default Switch" in the network settings. 7 | 8 | # Directions 9 | 1. Connect to template machine for your class. 10 | 2. Clone repository or download files in this folder onto the template machine. 11 | 3. Open a PowerShell window. Make sure that the window notes it is running under administrator privileges. 12 | 4. Run `SetupForNestedVirtualization.ps1`. 13 | 5. The script may ask you to restart the machine and re-run it. A note that the script is completed will show if no further action is needed. 14 | -------------------------------------------------------------------------------- /samples/ClassroomLabs/SdkSamples/SDKSample.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26228.4 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDKSample", "SDKSample\SDKSample.csproj", "{111C59E4-66A1-42D8-BC6A-4740FFD186B3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/CSharp/AzureFunctions.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | net6.0 4 | v2 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | PreserveNewest 14 | 15 | 16 | PreserveNewest 17 | Never 18 | 19 | 20 | -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/CSharp/GlobalSuppressions.cs: -------------------------------------------------------------------------------- 1 |  2 | // This file is used by Code Analysis to maintain SuppressMessage 3 | // attributes that are applied to this project. 4 | // Project-level suppressions either have no target or are given 5 | // a specific target and scoped to a namespace, type, member, etc. 6 | 7 | [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Style", "IDE0060:Remove unused parameter", Justification = "", Scope = "member", Target = "~M:AzureFunctions.UpdateInternalSupportPage.Run(Microsoft.AspNetCore.Http.HttpRequest,System.String,System.String,System.String,Microsoft.Extensions.Logging.ILogger)~System.Threading.Tasks.Task{Microsoft.AspNetCore.Mvc.IActionResult}")] 8 | 9 | -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/CSharp/host.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0" 3 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/CSharp/local.settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "IsEncrypted": false, 3 | "Values": { 4 | "AzureWebJobsStorage": "UseDevelopmentStorage=true", 5 | "FUNCTIONS_WORKER_RUNTIME": "dotnet", 6 | "AzureFunctionUrl_ApplyUpdates": "http://localhost:7071/api/subscriptions/{SUBSCRIPTIONID}/resourceGroups/{RESOURCEGROUPNAME}/providers/Microsoft.DevTestLab/labs/{LABNAME}/virtualmachines/{VIRTUALMACHINENAME}", 7 | "AzureFunctionUrl_UpdateSupportPage": "http://localhost:7071/api/subscriptions/{SUBSCRIPTIONID}/resourceGroups/{RESOURCEGROUPNAME}/providers/Microsoft.DevTestLab/labs/{LABNAME}", 8 | "ServicePrincipal_AppId": "", 9 | "ServicePrincipal_Key": "", 10 | "ServicePrincipal_Tenant": "", 11 | "WindowsUpdateAllowedDays": 7 12 | } 13 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/LabSuccessfullyUpdated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/AzureFunctions/LabSuccessfullyUpdated.png -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/VirtualMachineNotRunning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/AzureFunctions/VirtualMachineNotRunning.png -------------------------------------------------------------------------------- /samples/DevTestLabs/AzureFunctions/VirtualMachineSuccess.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/AzureFunctions/VirtualMachineSuccess.png -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/GatewaySample/README.md -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/arm/environment/WindowsJumpboxToTwoLinuxVMs/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Windows Jumpbox To Two Linux VMs", 3 | "description": "This template deploys a Windows VM with two Linux VMs on an DTL subnet.", 4 | "githubUsername": "Microsoft", 5 | "summary": "Deploys a trio of VMs as an environment in a DevTest Lab." 6 | } 7 | -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/arm/gateway/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/GatewaySample/arm/gateway/Readme.md -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/arm/gateway/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "adminUserName": { 6 | "value": "" 7 | }, 8 | "adminPassword": { 9 | "value": "" 10 | }, 11 | "signCertificate": { 12 | "value": "" 13 | }, 14 | "signCertificatePassword": { 15 | "value": "" 16 | }, 17 | "signCertificateThumbprint": { 18 | "value": "" 19 | }, 20 | "sslCertificate": { 21 | "value": "" 22 | }, 23 | "sslCertificatePassword": { 24 | "value": "" 25 | }, 26 | "sslCertificateThumbprint": { 27 | "value": "" 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/arm/lab/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/GatewaySample/arm/lab/Readme.md -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/arm/lab/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "labName": { 6 | "value": "" 7 | }, 8 | "rdGatewayHostname": { 9 | "value": "" 10 | }, 11 | "rdGatewayIP": { 12 | "value": "" 13 | }, 14 | "rdGatewayAPIKey": 15 | { 16 | "value": "" 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/src/RDGatewayAPI/RDGatewayAPI.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | net461 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | PreserveNewest 18 | 19 | 20 | PreserveNewest 21 | Never 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /samples/DevTestLabs/GatewaySample/src/RDGatewayAPI/host.json: -------------------------------------------------------------------------------- 1 | { 2 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/ProvisionDemoLab/ProvisionDemoLab.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/ProvisionDemoLab/ProvisionDemoLab.ps1 -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-blockchain-lab/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTest Labs instance for Azure Blockchain as a Service 2 | 3 | 4 | 5 | 6 | 7 | Azure DevTest Labs allows you to create a lab either for general purpose or for Blockchain as a Service specifically. This template creates a new DevTest Labs instance for Azure Blockchain as a Service, which adds the Blockchain as a Service artifact repository to the lab. For more info about Blockchain as a Service, please check out this page. 8 | 9 | You can also create a DevTest Labs instance for Blockchain as a Service by search for "blockchain" or "devtest labs" in the Azure Marketplace from the Azure portal. 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-blockchain-lab/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-blockchain-lab/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab in Azure DevTest Labs", 3 | "description": "This template creates a new DevTest Lab / DTL instance", 4 | "summary": "This template creates a new DevTest Lab instance", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab-shared-gallery-configured/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab-shared-gallery-configured/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab-shared-gallery-configured/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new DevTestLab instance. 8 | 9 | When deploying via PowerShell, if you use -DeploymentMode parameter, it is recommended to use the "Incremental" option. The "Complete" option will delete the target resource group first. If a lab or other resources are in that resource group, you could lose them or encounter errors. 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab-shared-gallery-configured/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab" 7 | }, 8 | "existingSharedImageGalleryId":{ 9 | "value":"/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/mySharedGalleryRg/providers/Microsoft.Compute/galleries/mySharedGallery" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab-shared-gallery-configured/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab in Azure DevTest Labs with Shared Image Gallery Configured", 3 | "description": "This template creates a new DevTest Lab / DTL instance", 4 | "summary": "This template creates a new DevTest Lab instance", 5 | "githubUsername": "azabbasi", 6 | "dateUpdated": "2019-05-23" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new DevTestLab instance. 8 | 9 | When deploying via PowerShell, if you use -DeploymentMode parameter, it is recommended to use the "Incremental" option. The "Complete" option will delete the target resource group first. If a lab or other resources are in that resource group, you could lose them or encounter errors. 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-lab/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab in Azure DevTest Labs", 3 | "description": "This template creates a new DevTest Lab / DTL instance", 4 | "summary": "This template creates a new DevTest Lab instance", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-builtin-user/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-builtin-user/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-builtin-user/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is generally used with non-sysprepped VHDs containing a built-in user account. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - No new user account is created during the VM creation. 11 | - We assume that the original custom image already contains a built-in user account. 12 | - We assume that this built-in account can be used to log into the VM after creation. 13 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-builtin-user/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newVMName": { 6 | "value": "MyVM1builtin" 7 | }, 8 | "existingLabName": { 9 | "value": "MyLab1" 10 | }, 11 | "existingCustomImageId": { 12 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.DevTestLab/labs/MyLab1/customImages/MyCustomImage1" 13 | }, 14 | "newVMSize": { 15 | "value": "Standard_A4" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-builtin-user/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new VM in a lab", 3 | "description": "This template creates a new VM in a DevTestLab / DTL instance", 4 | "summary": "This template creates a new VM in a DevTestLab instance", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage-with-expiration/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage-with-expiration/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage-with-expiration/README.md: -------------------------------------------------------------------------------- 1 | # Creates a new virtual machine in a Lab with a specified expiration date. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is generally used for creating a virtual machine using a custom image (pointing to a sysprepped VHD file) . 8 | 9 | This template creates a new virtual machine in a Lab with a expiration date. 10 | - A new user account is created using the username/password combination on the virtual machine. 11 | - The user account is added to the local administrators group. 12 | - A expiration date is set for the VM. 13 | - VM will be deleted within 24 hours of expiration date. 14 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage-with-expiration/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newVMName": { 6 | "value": "MyVM1pwdcus" 7 | }, 8 | "existingLabName": { 9 | "value": "MyLab1" 10 | }, 11 | "existingCustomImageId": { 12 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.DevTestLab/labs/MyLab1/customImages/MyCustomImage1" 13 | }, 14 | "newVMSize": { 15 | "value": "Standard_A4" 16 | }, 17 | "userName": { 18 | "value": "SomeAdmin" 19 | }, 20 | "password": { 21 | "value": "SomePassword!" 22 | }, 23 | "expirationDate": { 24 | "value": "2016-10-01T12:00:00+00:00" 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage-with-expiration/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new VM in Azure DevTest Labs with new user account and set expiration for the VM", 3 | "description": "This template creates a new VM in a DevTest Lab / DTL instance using a custom image", 4 | "summary": "This template creates a new VM in a DevTest Lab instance and creates a new user account on the VM. The VM will be deleted within 24 hrs after expiration date.", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-07-15" 7 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is generally used with sysprepped VHDs. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - A new user account is created using the username/password combination specified. 11 | - This user account is added to the local administrators group. 12 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newVMName": { 6 | "value": "MyVM1pwdcus" 7 | }, 8 | "existingLabName": { 9 | "value": "MyLab1" 10 | }, 11 | "existingCustomImageId": { 12 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.DevTestLab/labs/MyLab1/customImages/MyCustomImage1" 13 | }, 14 | "newVMSize": { 15 | "value": "Standard_A4" 16 | }, 17 | "userName": { 18 | "value": "SomeAdmin" 19 | }, 20 | "password": { 21 | "value": "SomePassword!" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-customimage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new VM in Azure DevTest Labs with new user account", 3 | "description": "This template creates a new VM in a DevTest Lab / DTL instance using a custom image", 4 | "summary": "This template creates a new VM in a DevTest Lab instance and creates a new user account on the VM", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-galleryimage/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-galleryimage/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-galleryimage/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is used with an Azure gallery image. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - A new user account is created using the username/password combination specified. 11 | - This user account is added to the local administrators group. 12 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-galleryimage/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newVMName": { 6 | "value": "MyVM1pwdgal" 7 | }, 8 | "existingLabName": { 9 | "value": "MyLab1" 10 | }, 11 | "newVMSize": { 12 | "value": "Standard_A4" 13 | }, 14 | "userName": { 15 | "value": "SomeAdmin" 16 | }, 17 | "password": { 18 | "value": "SomePassword!" 19 | }, 20 | "offer": { 21 | "value": "WindowsServer" 22 | }, 23 | "publisher": { 24 | "value": "MicrosoftWindowsServer" 25 | }, 26 | "sku": { 27 | "value": "2012-R2-Datacenter" 28 | }, 29 | "osType": { 30 | "value": "Windows" 31 | }, 32 | "version": { 33 | "value": "latest" 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-galleryimage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new VM in a lab and creates new user account on VM using gallery image", 3 | "description": "This template creates a new VM in a DevTestLab / DTL instance and creates new user account on VM", 4 | "summary": "This template creates a new VM in a DevTestLab instance and creates a new user account on VM", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-02-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-sharedimage/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-sharedimage/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-sharedimage/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template assumes there is already a shared image gallery attached to your lab instance using an image from an attached shared image gallery in Azure. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - A new user account is created using the username/password combination specified. 11 | - This user account is added to the local administrators group. 12 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-sharedimage/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newVMName": { 6 | "value": "MyVM1pwdcus" 7 | }, 8 | "existingLabName": { 9 | "value": "MyLab1" 10 | }, 11 | "existingSharedImageId": { 12 | "value": "/subscriptions/11111111-1111-1111-1111-111111111111/resourceGroups/MyLabRg/providers/Microsoft.DevTestLab/labs/MyLab1/sharedGalleries/MySharedGallery/sharedImages/LinuxDef" 13 | }, 14 | "newVMSize": { 15 | "value": "Standard_A4" 16 | }, 17 | "userName": { 18 | "value": "SomeAdmin" 19 | }, 20 | "password": { 21 | "value": "SomePassword!" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-pwd-sharedimage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new VM in Azure DevTest Labs using shared images with new user account", 3 | "description": "This template creates a new VM in a DevTest Lab / DTL instance using a shared image gallery image", 4 | "summary": "This template creates a new VM in a DevTest Lab instance and creates a new user account on the VM", 5 | "githubUsername": "azabbasi", 6 | "dateUpdated": "2019-05-23" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-customimage/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-customimage/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-customimage/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is generally used with Linux VHDs. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - A new user account is created using the username/SSH-key combination specified. 11 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-customimage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new linux VM in Azure DevTest Labs", 3 | "description": "This template creates a new linux VM in a DevTest Lab / DTL instance using a custom image", 4 | "summary": "This template creates a new linux VM in a DevTest Lab instance and creates a new user account on the VM", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-galleryimage/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-galleryimage/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-galleryimage/README.md: -------------------------------------------------------------------------------- 1 | # Create a new virtual machine in a DevTestLab instance. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is generally used with Linux VHDs. 8 | 9 | This template creates a new virtual machine in a DevTestLab instance. 10 | - A new user account is created using the username/SSH-key combination specified. 11 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/101-dtl-create-vm-username-ssh-galleryimage/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new linux VM in a lab using gallery image", 3 | "description": "This template creates a new linux VM in a DevTestLab / DTL instance", 4 | "summary": "This template creates a new linux VM in a DevTestLab instance", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-02-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-linux-vm/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-linux-vm/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-linux-vm/README.md: -------------------------------------------------------------------------------- 1 | # Create a new Custom Image from a Linux VM. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is used to create a Custom Image from an existing VM in the lab. 8 | - The Custom Image will be created in the same lab in which the VM exists. 9 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-linux-vm/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "existingLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "existingVMResourceId": { 9 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.DevTestLab/labs/MyLab1/virtualMachines/MyVM1pwdgal" 10 | }, 11 | "imageName": { 12 | "value": "MyCustomImage1FromLinuxVM" 13 | }, 14 | "imageDescription": { 15 | "value": "Some description for the custom image" 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-linux-vm/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new custom image in Azure DevTest Labs", 3 | "description": "This template creates a new custom image from an existing DevTest Lab / DTL VM", 4 | "summary": "This template creates a new custom image from an existing DevTest Lab Linux VM", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-11-11" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/README.md: -------------------------------------------------------------------------------- 1 | # Create a new Custom Image from a VHD. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is used to create a Custom Image from an existing VHD in the lab. 8 | - The Custom Image will be created in the same lab in which the VHD exists. 9 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "existingLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "existingVhdUri": { 9 | "value": "https://MyStorageAccount1.vhd.blob.core.windows.net/uploads/MyImage1.vhd" 10 | }, 11 | "imageOsType": { 12 | "value": "windows" 13 | }, 14 | "isVhdSysPrepped": { 15 | "value": true 16 | }, 17 | "imageName": { 18 | "value": "MyCustomImageFromVM1" 19 | }, 20 | "imageDescription": { 21 | "value": "Some description for the custom image" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-vhd/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new custom image in Azure DevTest Labs", 3 | "description": "This template creates a new custom image from an existing DevTest Lab / DTL VHD", 4 | "summary": "This template creates a new custom image from an existing DevTest Lab VHD", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-01-06" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-windows-vm/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-windows-vm/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-windows-vm/README.md: -------------------------------------------------------------------------------- 1 | # Create a new Custom Image from a Windows VM. 2 | 3 | 4 | 5 | 6 | 7 | This deployment template is used to create a Custom Image from an existing Windows VM in the lab. 8 | - The Custom Image will be created in the same lab in which the VM exists. 9 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-windows-vm/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "existingLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "existingVMResourceId": { 9 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.DevTestLab/labs/MyLab1/virtualMachines/MyVM1pwdgal" 10 | }, 11 | "windowsOsState": { 12 | "value": "SysprepApplied" 13 | }, 14 | "imageName": { 15 | "value": "MyCustomImage1FromWindowsVM" 16 | }, 17 | "imageDescription": { 18 | "value": "Some description for the custom image" 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-customimage-from-windows-vm/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new custom windows image in Azure DevTest Labs", 3 | "description": "This template creates a new custom image from an existing DevTest Lab / DTL VM", 4 | "summary": "This template creates a new custom image from an existing DevTest Lab VM it also allows the user to specify wether they would like to sysprep the VM or not", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-03-04" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-formula/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-formula/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-formula/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "existingLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "formulaName": { 9 | "value": "MyWindowsVMFormula1" 10 | }, 11 | "vmOffer": { 12 | "value": "WindowsServer" 13 | }, 14 | "vmPublisher":{ 15 | "value": "MicrosoftWindowsServer" 16 | }, 17 | "vmSku":{ 18 | "value": "2012-R2-Datacenter" 19 | }, 20 | "vmSize":{ 21 | "value": "Standard_A4" 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-formula/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new formula for an existing DTL instance in Azure DevTest Labs", 3 | "description": "This templates creates a new formula for an existing DTL instance in Azure DevTest Labs.", 4 | "summary": "This template creates a new formula for an existing DTL instance in Azure DevTest Labs.", 5 | "githubUsername": "emaher", 6 | "dateUpdated": "2016-10-06" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-announcement/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-announcement/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-announcement/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and sets the lab announcement. 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-announcement/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "announcementTitle": { 9 | "value": "Important Information" 10 | }, 11 | "announcementMarkdown": { 12 | "value": "# Important Information for All Lab Users\nFor more information how to use Azure Lab Service read online [documentation](https://docs.microsoft.com/en-us/azure/lab-services/)." 13 | }, 14 | "announcementExpiration":{ 15 | "value": "2100-01-01T17:00:00+00:00" 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-announcement/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with announcement", 3 | "description": "This template creates a lab in Azure DevTest Labs with an announcement and expiration date.", 4 | "summary": "This template creates a lab in Azure DevTest Labs with an announcement and expiration date.", 5 | "githubUsername": "EMaher", 6 | "dateUpdated": "2018-08-14" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-artifact-repository/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-artifact-repository/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-artifact-repository/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new DevTestLab instance and adds a custom artifact repository to that instance.. 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-artifact-repository/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "labName": { 6 | "value": "MyLab1" 7 | }, 8 | "artifactRepoUri": { 9 | "value": "https://MyProject1.visualstudio.com/DefaultCollection/_git/ProjectArtifacts" 10 | }, 11 | "artifactRepoType": { 12 | "value": "VsoGit" 13 | }, 14 | "artifactRepoSecurityToken": { 15 | "value": "1111111111111111111111111111111111111111111111111111" 16 | } 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-artifact-repository/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with a an artifact repository in Azure DevTest Labs", 3 | "description": "This template creates a new DevTest Lab / DTL instance. Custom artifact repository is added to the DTL instance.", 4 | "summary": "This template creates a new DevTest Lab instance and add custom artifact repository to it.", 5 | "githubUsername": "emaher", 6 | "dateUpdated": "2016-09-27" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-cost-threshold/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-cost-threshold/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-cost-threshold/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and allows you to specify the cost threshold 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-cost-threshold/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab123" 7 | }, 8 | "costThreshold": { 9 | "value": "500" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-cost-threshold/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with custom cost threshold", 3 | "description": "This template creates a lab in Azure DevTest Labs and specifies custom cost threshold", 4 | "summary": "This template creates a new DevTest Lab instance and sets the cost threshold", 5 | "githubUsername": "workleodig", 6 | "dateUpdated": "2016-2-14" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and sets the internal support page contents. 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/azuredeploy.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "type": "string" 7 | }, 8 | "supportMessageMarkdown": { 9 | "type": "string" 10 | } 11 | }, 12 | "resources": [ 13 | { 14 | "apiVersion": "2018-10-15-preview", 15 | "name": "[parameters('newLabName')]", 16 | "type": "Microsoft.DevTestLab/labs", 17 | "location": "[resourceGroup().location]", 18 | "properties": { 19 | "labStorageType": "Premium", 20 | "support": 21 | { 22 | "enabled": "Enabled", 23 | "markdown": "[parameters('supportMessageMarkdown')]" 24 | } 25 | } 26 | } 27 | ] 28 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "supportMessageMarkdown": { 9 | "value": "Welcome to the lab! \n[My support link](http://microsoft.com) [Documentation](https://docs.microsoft.com/en-us/azure/lab-services/)" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-internal-support/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with internal support information", 3 | "description": "This template creates a lab in Azure DevTest Labs with internal support information.", 4 | "summary": "This template creates a lab in Azure DevTest Labs with internal support information.", 5 | "githubUsername": "EMaher", 6 | "dateUpdated": "2018-08-14" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-marketplace-images/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-marketplace-images/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-marketplace-images/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and specifies a set of allowed marketplace images 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-marketplace-images/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab123" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-marketplace-images/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with a set of allowed marketplace images", 3 | "description": "This template creates a lab in Azure DevTest Labs and specifies a set of marketplace images", 4 | "summary": "This template creates a new DevTest Lab instance and specifies a set of marketplace images", 5 | "githubUsername": "workleodig", 6 | "dateUpdated": "2016-2-14" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-policies/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-policies/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-policies/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and allows you to set policies on it. The following policies can be set: 8 | - VM sizes allowed in the Lab. 9 | - Total number of VMs allowed in the Lab. 10 | - Maximum number of VMs allowed for each user. 11 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-policies/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1pol" 7 | }, 8 | "labVmShutDownTime": { 9 | "value": "21:00" 10 | }, 11 | "timeZoneId": { 12 | "value": "UTC" 13 | }, 14 | "maxAllowedVmsPerUser": { 15 | "value": 2 16 | }, 17 | "maxAllowedVmsPerLab": { 18 | "value": 10 19 | }, 20 | "allowedVmSizes": { 21 | "value": "\"Standard_A2\", \"Standard_A4\"" 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-policies/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with custom policy rules", 3 | "description": "This template creates a lab in Azure DevTest Labs and specifies custom policy rules (including the VM sizes allowed in the Lab, total number of VMs allowed in the Lab and the maximum number of VMs allowed for each user)", 4 | "summary": "This template creates a new DevTest Lab instance and sets custom policy rules on it", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2015-12-08" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/SeleniumGridSetupService/SeleniumGridSetupService.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SeleniumGridSetupService", "SeleniumGridSetupService\SeleniumGridSetupService.csproj", "{DB196FB1-754C-4801-A406-D4A453FDA854}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {DB196FB1-754C-4801-A406-D4A453FDA854}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {DB196FB1-754C-4801-A406-D4A453FDA854}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {DB196FB1-754C-4801-A406-D4A453FDA854}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {DB196FB1-754C-4801-A406-D4A453FDA854}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/SeleniumGridSetupService/SeleniumGridSetupService/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/SeleniumGridSetupService/SeleniumGridSetupService/Program.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Linq; 6 | using System.ServiceProcess; 7 | using System.Text; 8 | using System.Threading.Tasks; 9 | 10 | namespace SeleniumGridSetupService 11 | { 12 | static class Program 13 | { 14 | /// 15 | /// The main entry point for the application. 16 | /// 17 | static void Main(string[] args) 18 | { 19 | ServiceBase[] ServicesToRun; 20 | ServicesToRun = new ServiceBase[] 21 | { 22 | new SeleniumGridSetupService() 23 | }; 24 | ServiceBase.Run(ServicesToRun); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/SeleniumGridSetupService/SeleniumGridSetupService/ProjectInstaller.cs: -------------------------------------------------------------------------------- 1 | // Copyright (c) Microsoft Corporation. All rights reserved. 2 | 3 | using System; 4 | using System.Collections; 5 | using System.Collections.Generic; 6 | using System.ComponentModel; 7 | using System.Configuration.Install; 8 | using System.Linq; 9 | using System.Threading.Tasks; 10 | 11 | namespace SeleniumGridSetupService 12 | { 13 | [RunInstaller(true)] 14 | public partial class ProjectInstaller : System.Configuration.Install.Installer 15 | { 16 | public ProjectInstaller() 17 | { 18 | InitializeComponent(); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema":"http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion":"1.0.0.0", 4 | "parameters":{ 5 | "labName":{ 6 | "value":"" 7 | }, 8 | "VMSize":{ 9 | "value":"" 10 | }, 11 | "VMStorageType":{ 12 | "value":"" 13 | }, 14 | "username":{ 15 | "value":"" 16 | }, 17 | "password":{ 18 | "value":"" 19 | }, 20 | "nodeCount": { 21 | "value": 1 22 | }, 23 | "seleniumServerStandaloneJarFile": { 24 | "value": "" 25 | }, 26 | "hubConfigJsonFile": { 27 | "value": "" 28 | }, 29 | "nodeConfigJsonFile": { 30 | "value": "" 31 | } 32 | } 33 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-seleniumgrid/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Selenium-Grid-Setup-DevTestLabs", 3 | "description": "This template can be used to create azure VMs and Setup a Selenium Grid.", 4 | "summary": "This template can be used to create azure VMs and Setup a Selenium Grid.", 5 | "githubUsername": "ShreyasRMsft", 6 | "dateUpdated": "2017-5-4" 7 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-shutdown-webhook/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-shutdown-webhook/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-shutdown-webhook/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new Azure DevTest Lab and allows you to specify the AutoShutdown policy including the shutdown time and the shutdown notification Webhook URL. 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-shutdown-webhook/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1pol" 7 | }, 8 | "labVmShutDownTime": { 9 | "value": "21:23" 10 | }, 11 | "labVmShutDownURL": { 12 | "value": "http://someurl" 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-create-lab-with-shutdown-webhook/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab with custom policy rules", 3 | "description": "This template creates a lab in Azure DevTest Labs and specifies custom shutdown time and shutdown notification URL", 4 | "summary": "This template creates a new DevTest Lab instance and sets custom policy rules on it", 5 | "githubUsername": "workleodig", 6 | "dateUpdated": "2016-2-13" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/README.md: -------------------------------------------------------------------------------- 1 | # Enable Auto Start 2 | 3 | 4 | 5 | 6 | 7 | This template enables Auto Start for a lab. -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/azuredeploy.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "labName": { 6 | "type": "string" 7 | }, 8 | "regionId": { 9 | "type": "string" 10 | } 11 | }, 12 | "resources": [ 13 | { 14 | "apiVersion": "2018-10-15-preview", 15 | "name": "[concat(parameters('labName'), '/', 'LabVmAutoStart')]", 16 | "location": "[parameters('regionId')]", 17 | "type": "microsoft.devtestlab/labs/schedules", 18 | "properties": { 19 | "status": "Enabled", 20 | "timeZoneId": "Pacific Standard Time", 21 | "weeklyRecurrence": { 22 | "time": "0800", 23 | "weekdays": [ 24 | "Monday", 25 | "Tuesday", 26 | "Wednesday", 27 | "Thursday", 28 | "Friday" 29 | ] 30 | }, 31 | "taskType": "LabVmsStartupTask", 32 | "notificationSettings": { 33 | "status": "Disabled", 34 | "timeInMinutes": 15 35 | } 36 | } 37 | } 38 | ] 39 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "labName": { 6 | "value": "MyLab1" 7 | }, 8 | "regionId": { 9 | "value": "westcentralus" 10 | } 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/201-dtl-enable-autostart/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Enable auto start for the specified lab.", 3 | "description": "This template enables the Auto Start policy for the specified lab.", 4 | "summary": "This template enables the Auto Start policy for the specified lab.", 5 | "githubUsername": "ryanvog", 6 | "dateUpdated": "2017-04-20" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-add-lab-user/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "principalId": { 6 | "value": "11111111-1111-1111-1111-111111111111" 7 | }, 8 | "labName": { 9 | "value": "MyLab" 10 | }, 11 | "roleAssignmentGuid": { 12 | "value": "385d337e-9eaa-42c6-820f-e8413012ae38" 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-add-lab-user/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Add user or group as a 'DevTest Labs User' to a Azure DevTest Labs instance.", 3 | "description": "This template creates a new role assignment which adds the specified user or group as a 'DevTest Lab User' to the specified DevTest Lab instance.", 4 | "summary": "This template creates a new 'DevTest Labs User' role assignment to a lab.", 5 | "githubUsername": "emaher", 6 | "dateUpdated": "2016-11-21" 7 | } 8 | 9 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-existing-vnet/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-existing-vnet/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-existing-vnet/README.md: -------------------------------------------------------------------------------- 1 | # Create a new DevTestLab instance 2 | 3 | 4 | 5 | 6 | 7 | This template creates a new DevTest Lab / DTL instance that leverages an existing virtual network. 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-existing-vnet/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "newLabVirtualNetworkName": { 9 | "value": "MyLabVNet1" 10 | }, 11 | "existingVirtualNetworkId": { 12 | "value": "/subscriptions/1234a3bc-ee4e-4c7a-9709-1868a28b1d4d/resourceGroups/myRG234/providers/Microsoft.Network/virtualNetworks/MyVNet1" 13 | }, 14 | "existingSubnetName": { 15 | "value": "default" 16 | } 17 | } 18 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-existing-vnet/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab in Azure DevTest Labs that leverages an existing virtualk network", 3 | "description": "This template creates a new DevTest Lab / DTL instance that leverages an existing virtualk network", 4 | "summary": "This template creates a new DevTest Lab instance that leverages an existing virtualk network", 5 | "githubUsername": "mithunshanbhag", 6 | "dateUpdated": "2016-03-22" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-remote-desktop-settings/.ci_skip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-remote-desktop-settings/.ci_skip -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-remote-desktop-settings/azuredeploy.parameters.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", 3 | "contentVersion": "1.0.0.0", 4 | "parameters": { 5 | "newLabName": { 6 | "value": "MyLab1" 7 | }, 8 | "experienceLevel": { 9 | "value": 7 10 | }, 11 | "gatewayUrl": { 12 | "value": "customrds.eastus.cloudapp.azure.com" 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/301-dtl-create-lab-with-remote-desktop-settings/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "itemDisplayName": "Create a new lab in Azure DevTest Labs with remote desktop settings", 3 | "description": "This template creates a new DevTest Lab / DTL instance with remote desktop settings", 4 | "summary": "This template creates a new DevTest Lab instance with remote desktop settings", 5 | "githubUsername": "EMaher", 6 | "dateUpdated": "2018-08-14" 7 | } 8 | -------------------------------------------------------------------------------- /samples/DevTestLabs/QuickStartTemplates/README.md: -------------------------------------------------------------------------------- 1 | # Azure DevTest Labs Quick Start Templates 2 | 3 | This folder contains various quick-start Azure Resource Manager templates that showcase how to provision Azure DevTest Labs resources (labs, custom images, formulas, lab VMs, etc.) 4 | 5 | >**IMPORTANT NOTE** 6 | > 7 | >By default, Azure Resource Manager handles deployments as incremental updates to the resource group. One can specify the type of deployment through the **Mode** property by passing "Incremental" or “Complete”. **DO NOT** use Complete mode when deploying ARM templates to create lab VMs, as the Complete Mode will lead to deletion of the lab. 8 | > 9 | >To learn more about the difference in these two types of updates, please see Deploy resources with [Resource Manager templates and Azure PowerShell - increment and complete deployments](https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-template-deploy#incremental-and-complete-deployments). 10 | -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/AddAllowedVmSizes/README.md: -------------------------------------------------------------------------------- 1 | # Add allowed VM Size to lab 2 | 3 | This script provides a way to add a new "allowed virtual machine size" to a DevTest Lab via Azure PowerShell. Before running the script you need to log in to your azure account and select the subscription which contains the lab. 4 | 5 | The script takes two parameters - the first specifies the name of the DevTestLab. The second is an array containing the names of the size(s) to be added. This array of sizes will be added to the list of currently-allowed sizes in the lab. Any previously allowed sizes will continue to be allowed. 6 | 7 | Examples: 8 | 9 | ```powershell 10 | Login-AzureRmAccount 11 | Select-AzureRmSubscription -SubscriptionId ... 12 | 13 | # Add one additional size to the lab 14 | .\AddAllowedVMSizes.ps1 -DevTestLabName 'MyDevTestLab' -SizesToAdd 'Standard_A4' 15 | 16 | # Add multiple additional sizes to the lab 17 | .\AddAllowedVMSizes.ps1 -DevTestLabName 'MyDevTestLab' -SizesToAdd 'Standard_A4', 'Standard_DS3_v2' 18 | ``` -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/AddLabMarketplaceImages/README.md: -------------------------------------------------------------------------------- 1 | # Add Marketplace Image to lab 2 | 3 | This script provides a way to add a new allowed Marketplace Image to a DevTest Lab via Azure PowerShell. Before running the script you need to log in to your azure account and select the subscription which contains the lab. 4 | 5 | The script takes two parameters - the first specifies the name of the DevTestLab. The second is an array containing the display names of the marketplace image(s) to be added. The list of images specified will be added to the list of allowed images in the lab, so any previously allowed marketplace images will continue to be allowed. If the lab currently allows all marketplace images then no action will be taken. 6 | 7 | Examples: 8 | 9 | ```powershell 10 | Login-AzureRmAccount 11 | Select-AzureRmSubscription -SubscriptionId ... 12 | 13 | # Add one additional image to the lab 14 | .\AddMarketplaceImages.ps1 -DevTestLabName 'MyDevTestLab' -ImagesToAdd 'Windows Server 2016 Datacenter' 15 | 16 | # Add multiple additional images to the lab 17 | .\AddMarketplaceImages.ps1 -DevTestLabName 'MyDevTestLab' -ImagesToAdd 'Windows Server 2016 Datacenter', 'Red Hat Enterprise Linux 7.3' 18 | ``` -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/GetAutoShutdownPolicyStatus/README.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | When you manage multiple labs, it is sometimes important to make sure that all your labs have the Auto-Shutdown policy enabled. This can be a tedious exercise if you have many labs to examine. To automate this process, we have introduced a PowerShell script that will look at all your labs and verify they are opted-in to the Auto-Shutdown lab policy. 4 | 5 | The syntax of the script is as follows: 6 | ```powershell 7 | GetAutoShutdownPolicyStatus.ps1 [-SubscriptionIds] [-LabName] [-Verbose] 8 | ``` 9 | 10 | Examples: 11 | ```powershell 12 | # Verify the Auto-shutdown status on all labs in all your subscriptions 13 | GetAutoShutdownPolicyStatus.ps1 14 | 15 | # Verify the Auto-shutdown status on a single subscription and output verbose logging 16 | GetAutoShutdownPolicyStatus.ps1 -SubscriptionIds "" -Verbose 17 | 18 | # Verify the Auto-shutdown status on a single lab 19 | GetAutoShutdownPolicyStatus.ps1 -SubscriptionIds "" -LabName "MyLab" 20 | ``` -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/ImageFactory/Configuration/Labs.json: -------------------------------------------------------------------------------- 1 | { 2 | "Labs": [ 3 | { 4 | "ResourceGroup": "", 5 | "SubscriptionId": "", 6 | "LabName": "", 7 | "ImagePaths": [ 8 | "Win2012R2/VS2015 Enterprise with Azure SDK.json", 9 | "Win2016" 10 | ] 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/ImageFactory/Scripts/OutputImageList.ps1: -------------------------------------------------------------------------------- 1 | param 2 | ( 3 | [Parameter(Mandatory=$true, HelpMessage="The name of the DevTest Lab to clean up")] 4 | [string] $DevTestLabName 5 | ) 6 | 7 | $ErrorActionPreference = 'Stop' 8 | 9 | $modulePath = Join-Path (Split-Path ($Script:MyInvocation.MyCommand.Path)) "DistributionHelpers.psm1" 10 | Import-Module $modulePath 11 | 12 | $sourceLab = Find-AzureRmResource -ResourceType 'Microsoft.DevTestLab/labs' | Where-Object { $_.Name -eq $DevTestLabName} 13 | 14 | if(!$sourceLab) 15 | { 16 | Write-Error "Unable to find a lab named $DevTestLabName in $((Get-AzureRmContext).Subscription.Name)" 17 | } 18 | 19 | $labStorageInfo = GetLabStorageInfo $sourceLab 20 | GetImageInfosForLab $DevTestLabName | Sort-Object -Property osType, imagePath | Select-Object -Property imageName, imagePath, osType, timestamp 21 | -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/UniversityRepo/SimplifiedJSPortal/App.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Simple ClaimVM Api 9 | 10 | 11 | 12 | 13 | 14 |
15 | 18 |
19 |
20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/UpdateDtlTags/README.md: -------------------------------------------------------------------------------- 1 | # Updating Tags for a DevTest Lab 2 | Azure DevTest Labs supports propogation of tags from the lab to the resources created by the lab (Virtual Machines and Environments). There are cases, however, where there is a need to change/update the tags on a lab. DevTest Labs doesn't go update any *existing* resources, the tags are only applied to new resources. 3 | 4 | The script below, "Update-DevTestLabsTags.ps1" provides a way to update existing resources for a lab and propogates either new tags (or tag value changes) to the Lab-related resources. 5 | 6 | The syntax of the script is as follows: 7 | ```powershell 8 | 9 | # This script grabs the Lab's tags and updates the tags on the lab's related resources 10 | .\Update-DevTestLabsTags.ps1 -ResourceGroupName "MyLab-rg" ` 11 | -DevTestLabName "MyLab" 12 | 13 | ``` 14 | -------------------------------------------------------------------------------- /samples/DevTestLabs/Scripts/UploadVHD/UploadVHDToDTL.ps1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/samples/DevTestLabs/Scripts/UploadVHD/UploadVHDToDTL.ps1 -------------------------------------------------------------------------------- /samples/DevTestLabs/SdkSamples/DtlClient.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26228.4 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DtlClient", "DtlClient\DtlClient.csproj", "{111C59E4-66A1-42D8-BC6A-4740FFD186B3}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Debug|Any CPU.Build.0 = Debug|Any CPU 16 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Release|Any CPU.ActiveCfg = Release|Any CPU 17 | {111C59E4-66A1-42D8-BC6A-4740FFD186B3}.Release|Any CPU.Build.0 = Release|Any CPU 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | EndGlobal 23 | -------------------------------------------------------------------------------- /samples/DevTestLabs/SdkSamples/DtlClient/packages.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /tasks/Node/.gitattributes: -------------------------------------------------------------------------------- 1 | build/* linguist-vendored -------------------------------------------------------------------------------- /tasks/Node/.gitignore: -------------------------------------------------------------------------------- 1 | /.vs 2 | /.vscode 3 | 4 | **/node_modules 5 | 6 | **/authfile.json 7 | **/template.json 8 | **/testdata.json 9 | **/.taskkey 10 | **/*.map 11 | **/*.vsix 12 | 13 | dist 14 | out -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl1024.png -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl128.png -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl256.png -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl32.png -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl512.png -------------------------------------------------------------------------------- /tasks/Node/src/images/azure-dtl64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/images/azure-dtl64.png -------------------------------------------------------------------------------- /tasks/Node/src/modules/task-utils/polyfill.ts: -------------------------------------------------------------------------------- 1 | import 'isomorphic-fetch'; 2 | 3 | if (!console.debug) { 4 | const isDebugMode = process.env.NODE_ENV != 'production'; 5 | 6 | console.debug = function (args: any) { 7 | if (isDebugMode) { 8 | console.log(args); 9 | } 10 | } 11 | } 12 | 13 | export function equalsIgnoreCase(s1: string|null|undefined, s2: string|null|undefined): boolean { 14 | return s1 === s2 || (s1 !== null && s1 !== undefined && s2 !== null && s2 !== undefined && s1.toLocaleLowerCase() === s2.toLocaleLowerCase()); 15 | } -------------------------------------------------------------------------------- /tasks/Node/src/screenshots/azure-dtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/screenshots/azure-dtl.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlCreateCustomImage/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlCreateCustomImage/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlCreateEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlCreateEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlCreateVM/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlCreateVM/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlDeleteCustomImage/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlDeleteCustomImage/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlDeleteEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlDeleteEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlDeleteVM/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlDeleteVM/icon.png -------------------------------------------------------------------------------- /tasks/Node/src/tasks/AzureDtlUpdateEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/Node/src/tasks/AzureDtlUpdateEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/.gitignore: -------------------------------------------------------------------------------- 1 | # ignore VSIX files 2 | **/*.vsix -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlCreateCustomImage/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlCreateCustomImage/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlCreateEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlCreateEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlCreateVM/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlCreateVM/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlDeleteEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlDeleteEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlDeleteVM/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlDeleteVM/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlDeleteVM/task-funcs.ps1: -------------------------------------------------------------------------------- 1 | function Handle-LastError 2 | { 3 | [CmdletBinding()] 4 | param( 5 | ) 6 | 7 | $message = $error[0].Exception.Message 8 | if ($message) 9 | { 10 | Write-Error "`n$message" 11 | } 12 | } 13 | 14 | function Show-InputParameters 15 | { 16 | [CmdletBinding()] 17 | param( 18 | ) 19 | 20 | Write-Host "Task called with the following parameters:" 21 | Write-Host " ConnectedServiceName = $ConnectedServiceName" 22 | Write-Host " LabVMId = $LabVMId" 23 | } 24 | 25 | function Invoke-AzureDtlTask 26 | { 27 | [CmdletBinding()] 28 | param( 29 | $LabVMId 30 | ) 31 | 32 | $labVMParts = $LabVMId.Split('/') 33 | $labVMName = $labVMParts.Get($labVMParts.Length - 1) 34 | $labName = $labVMParts.Get($labVMParts.IndexOf('labs') + 1) 35 | 36 | Write-Host "Deleting Lab VM '$labVMName' from Lab '$labName'" 37 | Remove-AzureRmResource -ResourceId "$LabVMId" -Force | Out-Null 38 | } 39 | -------------------------------------------------------------------------------- /tasks/PowerShell/AzureDtlPopulateEnvironment/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/AzureDtlPopulateEnvironment/icon.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl1024.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl128.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl256.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl32.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl512.png -------------------------------------------------------------------------------- /tasks/PowerShell/images/azure-dtl64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/images/azure-dtl64.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl-createcustomimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl-createcustomimage.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl-createenvironment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl-createenvironment.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl-createvm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl-createvm.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl-deleteenvironment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl-deleteenvironment.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl-deletevm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl-deletevm.png -------------------------------------------------------------------------------- /tasks/PowerShell/screenshots/azure-dtl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Azure/azure-devtestlab/544d203c22bc3efc28781ffd6ef6d31b0c7e6ab2/tasks/PowerShell/screenshots/azure-dtl.png --------------------------------------------------------------------------------