diff --git a/Azure_ICA_all.xml b/Azure_ICA_all.xml
index e18c5c3..1245841 100644
--- a/Azure_ICA_all.xml
+++ b/Azure_ICA_all.xml
@@ -7357,6 +7357,66 @@
P0
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-NEXT
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
+ SingleVM
+ Standard_A2
+ AzureServiceManagement,AzureResourceManager
+ SOME,TEXTS,NEEDS,TO,BE,PRESENT,HERE,FOR,PRINTING,TEST,SUMMARY
+ .\remote-scripts\azuremodules.sh
+
+ NEXT
+
+ P0
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-BLUESTONE
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
+ SingleVM
+ Standard_A2
+ AzureServiceManagement,AzureResourceManager
+ SOME,TEXTS,NEEDS,TO,BE,PRESENT,HERE,FOR,PRINTING,TEST,SUMMARY
+ .\remote-scripts\azuremodules.sh
+
+ BLUESTONE
+
+ P0
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-LIS
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
+ SingleVM
+ Standard_A2
+ AzureServiceManagement,AzureResourceManager
+ SOME,TEXTS,NEEDS,TO,BE,PRESENT,HERE,FOR,PRINTING,TEST,SUMMARY
+ .\remote-scripts\azuremodules.sh
+
+ LIS
+
+ P0
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-LATEST
+
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
+ SingleVM
+ Standard_A2
+ AzureServiceManagement,AzureResourceManager
+ SOME,TEXTS,NEEDS,TO,BE,PRESENT,HERE,FOR,PRINTING,TEST,SUMMARY
+ .\remote-scripts\azuremodules.sh
+
+ LATEST
+
+ P0
+
@@ -8363,7 +8423,30 @@
ICA-N-Series-GPU-TEST-NC24r
-
+
+ CAPTURE-VHD-NEXT
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-NEXT
+
+
+
+ CAPTURE-VHD-BLUESTONE
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-BLUESTONE
+
+
+
+ CAPTURE-VHD-LIS
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-LIS
+
+
+
+ CAPTURE-VHD-LATEST
+
+ ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM-LATEST
+
+
\ No newline at end of file
diff --git a/remote-scripts/ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1 b/remote-scripts/ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
new file mode 100644
index 0000000..dd8fd68
--- /dev/null
+++ b/remote-scripts/ICA-BUILD-CUSTOM-VM-CAPTURE-VHD-ARM.ps1
@@ -0,0 +1,164 @@
+<#-------------Create Deployment Start------------------#>
+Import-Module .\TestLibs\RDFELibs.psm1 -Force
+$result = ""
+$testResult = ""
+$resultArr = @()
+$isDeployed = DeployVMS -setupType $currentTestData.setupType -Distro $Distro -xmlConfig $xmlConfig
+
+if ($isDeployed)
+{
+ try
+ {
+# $allVMData = GetAllDeployementData -ResourceGroups $isDeployed
+# Set-Variable -Name allVMData -Value $allVMData -Scope Global
+ $testResult = $null
+ $clientVMData = $allVMData
+ #region CONFIGURE VM FOR N SERIES GPU TEST
+ LogMsg "Test VM details :"
+ LogMsg " RoleName : $($clientVMData.RoleName)"
+ LogMsg " Public IP : $($clientVMData.PublicIP)"
+ LogMsg " SSH Port : $($clientVMData.SSHPort)"
+
+ #endregion
+
+ #region Deprovision the VM.
+ LogMsg "Deprovisioning $($clientVMData.RoleName)"
+ $testJob = RunLinuxCmd -ip $clientVMData.PublicIP -port $clientVMData.SSHPort -username $user -password $password -command "waagent -deprovision --force" -runAsSudo
+ LogMsg "Deprovisioning done."
+ #endregion
+ LogMsg "Shutting down VM.."
+
+ $stopVM = Stop-AzureRmVM -Name $clientVMData.RoleName -ResourceGroupName $clientVMData.ResourceGroupName -Force -Verbose
+ if ($stopVM.Status -eq "Succeeded")
+ {
+ LogMsg "Shutdown successful."
+ #Copy the OS VHD with different name.
+ $vhdSuffix = ($CurrentTestData.TestParameters.param).Trim()
+ $newVHDName = "SS-AUTOBUILT-$($ARMImage.Publisher)-$($ARMImage.Offer)-$($ARMImage.Sku)-$($ARMImage.Version)-$vhdSuffix"
+ $newVHDName = $newVHDName.ToUpper()
+ $newVHDName = "$newVHDName.vhd"
+
+ $newVHDNameWithTimeStamp = "$newVHDName-$(Get-Date -Format "MM-dd-yyyy")"
+ $newVHDNameWithTimeStamp = $newVHDNameWithTimeStamp.ToUpper()
+ $newVHDNameWithTimeStamp = "$newVHDNameWithTimeStamp.vhd"
+ LogMsg "Sleeping 30 seconds..."
+ Sleep -Seconds 30
+
+ #Collect current VHD, Storage Account and Key
+ LogMsg "---------------Copy #1: START----------------"
+ $GetAzureRmStorageAccount = Get-AzureRmStorageAccount
+ LogMsg "Collecting OS Disk VHD information."
+ $OSDiskVHD = (Get-AzureRmVM -ResourceGroupName $clientVMData.ResourceGroupName -Name $clientVMData.RoleName).StorageProfile.OsDisk.Vhd.Uri
+ $currentVHDName = $OSDiskVHD.Trim().Split("/")[($OSDiskVHD.Trim().Split("/").Count -1)]
+ $testStorageAccount = $OSDiskVHD.Replace("http://","").Replace("https://","").Trim().Split(".")[0]
+ $testStorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $(($GetAzureRmStorageAccount | Where {$_.StorageAccountName -eq "$testStorageAccount"}).ResourceGroupName) -Name $testStorageAccount)[0].Value
+
+ $targetStorageAccounts = $GetAzureRmStorageAccount.StorageAccountName | where { $_ -imatch "konkaci"}
+ $destContextArr = @()
+ foreach ($targetSA in $targetStorageAccounts)
+ {
+ #region Copy as Latest VHD
+ [string]$SrcStorageAccount = $testStorageAccount
+ [string]$SrcStorageBlob = $currentVHDName
+ $SrcStorageAccountKey = $testStorageAccountKey
+ $SrcStorageContainer = "vhds"
+
+ [string]$DestAccountName = $targetSA
+ [string]$DestBlob = $newVHDName
+ $DestAccountKey= (Get-AzureRmStorageAccountKey -ResourceGroupName $(($GetAzureRmStorageAccount | Where {$_.StorageAccountName -eq "$targetSA"}).ResourceGroupName) -Name $targetSA)[0].Value
+ $DestContainer = "vhds"
+
+ $context = New-AzureStorageContext -StorageAccountName $srcStorageAccount -StorageAccountKey $srcStorageAccountKey
+ $expireTime = Get-Date
+ $expireTime = $expireTime.AddYears(1)
+ $SasUrl = New-AzureStorageBlobSASToken -container $srcStorageContainer -Blob $srcStorageBlob -Permission R -ExpiryTime $expireTime -FullUri -Context $Context
+
+
+ #
+ # Start Replication to DogFood
+ #
+
+ $destContext = New-AzureStorageContext -StorageAccountName $destAccountName -StorageAccountKey $destAccountKey
+ $destContextArr += $destContext
+ $testContainer = Get-AzureStorageContainer -Name $destContainer -Context $destContext -ErrorAction Ignore
+ if ($testContainer -eq $null) {
+ New-AzureStorageContainer -Name $destContainer -context $destContext
+ }
+ # Start the Copy
+ LogMsg "Copying $SrcStorageBlob as $DestBlob from and to storage account $DestAccountName/$DestContainer"
+ $out = Start-AzureStorageBlobCopy -AbsoluteUri $SasUrl -DestContainer $destContainer -DestContext $destContext -DestBlob $destBlob -Force
+ }
+ #
+ # Monitor replication status
+ #
+ $destContextArr
+ $CopyingInProgress = $true
+ while($CopyingInProgress)
+ {
+ $CopyingInProgress = $false
+ $newDestContextArr = @()
+ foreach ($destContext in $destContextArr)
+ {
+ $status = Get-AzureStorageBlobCopyState -Container $destContainer -Blob $destBlob -Context $destContext
+ if ($status.Status -ne "Success")
+ {
+ sleep -Milliseconds 100
+ $CopyingInProgress = $true
+ $newDestContextArr += $destContext
+ LogMsg "$DestBlob : $($destContext.StorageAccountName) : Running"
+ }
+ else
+ {
+ $resultSummary += CreateResultSummary -testResult "Done" -metaData "$DestBlob : $($destContext.StorageAccountName)" -checkValues "PASS,FAIL,ABORTED" -testName $currentTestData.testName
+ LogMsg "$DestBlob : $($destContext.StorageAccountName) : Done"
+ }
+ }
+ if ($CopyingInProgress)
+ {
+ LogMsg "$($newDestContextArr.Count) copy operations still in progress."
+ $destContextArr = $newDestContextArr
+ Sleep -Seconds 10
+ }
+ }
+ LogMsg "Copy Done. Bytes Copied:$($status.BytesCopied), Total Bytes:$($status.TotalBytes)"
+
+ LogMsg "---------------Copy #1: END----------------"
+ #endregion
+
+ $testResult = "PASS"
+ }
+ else
+ {
+ LogErr "Failed to shutdown VM."
+ $testResult = "FAIL"
+ }
+ }
+ catch
+ {
+ $ErrorMessage = $_.Exception.Message
+ LogMsg "EXCEPTION : $ErrorMessage"
+ }
+ Finally
+ {
+ $metaData = "GPU Verification"
+ if (!$testResult)
+ {
+ $testResult = "Aborted"
+ }
+ $resultArr += $testResult
+ }
+}
+
+else
+{
+ $testResult = "Aborted"
+ $resultArr += $testResult
+}
+
+$result = GetFinalResultHeader -resultarr $resultArr
+
+#Clean up the setup
+DoTestCleanUp -result $result -testName $currentTestData.testName -deployedServices $isDeployed -ResourceGroups $isDeployed -SkipVerifyKernelLogs
+
+#Return the result and summery to the test suite script..
+return $result, $resultSummary