public static PersistentVM CreateVMObjectWithDataDiskSubnetAndAvailibilitySet(string vmName, OS os, string username, string password, string subnet) { string disk1 = "Disk1"; int diskSize = 30; string availabilitySetName = Utilities.GetUniqueShortName("AvailSet"); string img = string.Empty; bool isWindowsOs = false; if (os == OS.Windows) { img = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Windows" }, false); isWindowsOs = true; } else { img = vmPowershellCmdlets.GetAzureVMImageName(new[] { "Linux" }, false); isWindowsOs = false; } PersistentVM vm = Utilities.CreateIaaSVMObject(vmName, InstanceSize.Small, img, isWindowsOs, username, password); AddAzureDataDiskConfig azureDataDiskConfigInfo1 = new AddAzureDataDiskConfig(DiskCreateOption.CreateNew, diskSize, disk1, 0, HostCaching.ReadWrite.ToString()); azureDataDiskConfigInfo1.Vm = vm; vm = vmPowershellCmdlets.SetAzureSubnet(vm, new string[] { subnet }); vm = vmPowershellCmdlets.SetAzureAvailabilitySet(availabilitySetName, vm); return(vm); }