ARM-wvd-templates/HostPoolRecovery/InstallAVDOnAHostPool.ps1 (37 lines of code) (raw):
param(
[Parameter(Mandatory=$true)]
[string]$subscriptionId,
[Parameter(Mandatory=$true)]
[string]$resourceGroupName,
[Parameter(Mandatory=$true)]
[string]$hostPoolName
)
# Login to Azure
Write-Output "Logging in to Azure..."
# need to use usedeviceauthentication because without, it is broken
Connect-AzAccount -UseDeviceAuthentication
# Select the subscription
Write-Output "Selecting subscription..."
Select-AzSubscription -SubscriptionId $subscriptionId
# Get all session hosts in the host pool
Write-Output "Retrieving session hosts"
$sessionHosts = Get-AzWvdSessionHost -ResourceGroupName $resourceGroupName -HostPoolName $hostPoolName
Write-Output "Session Hosts Retrieved: $sessionHosts"
$configurationZipUri = "https://raw.githubusercontent.com/Azure/RDS-Templates/master/ARM-wvd-templates/DSC/Configuration.zip"
#remove this and switch to azure storage blob
$fileUri = "https://raw.githubusercontent.com/Azure/RDS-Templates/master/ARM-wvd-templates/HostPoolRecovery/FallBackBootloaderDownload.ps1"
# Iterate over each session host
foreach ($sessionHost in $sessionHosts) {
# Get the name of the session host
$virtualMachineResourceId = $sessionHost.ResourceId
# parse the name from the ARM resource id sessionHost.ResourceId
$virtualMachineName = $virtualMachineResourceId -split '/' | Select-Object -Last 1
# get virtual machine using $virtualMachineResourceId
$virtualMachine = Get-AzVM -ResourceGroupName $resourceGroupName -Name $virtualMachineName
$location = $virtualMachine.Location
Write-Output "Virtual Machine Name: $virtualMachineName"
# potential hard disk space issue
# set-azcustomscriptextension to run the function InstallAVDOnVirtualMachine on the virtual machine
$fileName = "FallBackBootloaderDownload.ps1"
Set-AzVMCustomScriptExtension -ResourceGroupName $resourceGroupName -VMName $virtualMachineName -Location $location -FileUri $fileUri, $configurationZipUri -Run $fileName -Name "InstallAVDOnVirtualMachine"
}