deploy Lab with windows image

Etudiant vm-03 1 Reputation point
2021-04-09T22:18:02.907+00:00

Hi,
I try to create a lab Windows 10 or Windows Server * in a lab account with PowerShell but he doesn't found any image except when I put :
Image = 'Centos-Based* ' he create a lab with centos-based 8.1
my code please :

# Create a Lab with Windows server

$la  = Get-AzLabAccount -ResourceGroupName $ResourceGroupName -LabAccountName $LabAccountName
Write-Host "$LabAccountName lab account created or found."

 #param (

        $LabName = Read-Host ' Name of Your lab '
        $Image = Read-Host ' Name of Your lab '
        $Size  = Read-Host ' Size of Your lab '
        $InstallGpuDriverEnabled = $false
        $UserName = Read-Host ' UserName of Your lab '
        $Password = Read-Host ' Password of Your lab '
        $UsageQuotaInHours = 10
        $SharedPasswordEnabled = $false
        $idleGracePeriod = 15
        $idleOsGracePeriod = 0
        $idleNoConnectGracePeriod = 15
        $TemplateVmState = "Enabled"
 #)


        $img = $la | Get-AzLabAccountGalleryImage | Where-Object {$_.name -like $Image} | Select-Object -First 1
    if(-not $img -or $img.Count -ne 1) {Write-Error "$Image pattern doesn't match just one image."}
    Write-Host "Image $Image found."

      begin {  }
    process {
        try {
         foreach ($la in $LabAccount) {

                $labAccountUri = (ConvertToUri -resource $la)
                $createUri = $labAccountUri + "/createLab"
                $labUri = $labAccountUri + "/labs/" + $LabName
                $environmentSettingUri = $labUri + "/environmentsettings/default"
                $sharedPassword = if ($SharedPasswordEnabled) { "Enabled" } else { "Disabled" }
                $imageType = if ($Image.id -match '/galleryimages/') { 'galleryImageResourceId' } else { 'sharedImageResourceId' }

                 InvokeRest -Uri $createUri -Method 'Post' -Body (@{
                        name = $LabName
                        labParameters = @{
                            $imageType = $Image.id

                            password = $Password
                            username = $UserName
                            userQuota = "PT$($UsageQuotaInHours.ToString())H"
                            vmSize = $Size
                            sharedPasswordState = $sharedPassword
                            templateVmState = $TemplateVmState
                            idleShutdownMode = $idleShutdownMode
                            idleGracePeriod = "PT$($idleGracePeriod.ToString())M"
                            enableDisconnectOnIdle = $enableDisconnectOnIdle
                            idleOsGracePeriod = "PT$($idleOsGracePeriod.ToString())M"
                            enableNoConnectShutdown = $enableNoConnectShutdown
                            idleNoConnectGracePeriod = "PT$($idleNoConnectGracePeriod.ToString())M"
                            installGpuDriverEnabled = $gpuDriverState

                        }
                    } | ConvertTo-Json) | Out-Null
                }

                $lab = WaitProvisioning -uri $labUri -delaySec 60 -retryCount 120
                WaitProvisioning -uri $environmentSettingUri -delaySec 60 -retryCount 120 | Out-Null
                return $lab

        }

        catch {
            Write-Error -ErrorRecord $_ -EA $callerEA
        }
    }

    end { }


    $lab = $la | New-AzLab -LabName $LabName -Image $img -Size $size -UserName $userName -Password $password  -UsageQuotaInHours $usageQuota | Publish-AzLab
    Write-Host "$LabName lab doesn't exist. Created it."
Azure Lab Services
Azure Lab Services
An Azure service that is used to set up labs for classrooms, trials, development and testing, and other scenarios.
279 questions
{count} votes