public async Task TestVMScaleSetBatchOperations_PerformMaintenance() { string rgName = Recording.GenerateAssetName(TestPrefix) + 1; string vmssName = Recording.GenerateAssetName("vmss"); string storageAccountName = Recording.GenerateAssetName(TestPrefix); VirtualMachineScaleSet inputVMScaleSet; VirtualMachineScaleSet vmScaleSet = null; bool passed = false; try { EnsureClientsInitialized(LocationEastUs2UpperCase); ImageReference imageRef = await GetPlatformVMImage(useWindowsImage : true); StorageAccount storageAccountOutput = await CreateStorageAccount(rgName, storageAccountName); var getTwoVirtualMachineScaleSet = await CreateVMScaleSet_NoAsyncTracking(rgName, vmssName, storageAccountOutput, imageRef, createWithManagedDisks : true, vmScaleSetCustomizer : virtualMachineScaleSet => virtualMachineScaleSet.UpgradePolicy = new UpgradePolicy { Mode = UpgradeMode.Manual }); vmScaleSet = getTwoVirtualMachineScaleSet.Item1; inputVMScaleSet = getTwoVirtualMachineScaleSet.Item2; List <string> virtualMachineScaleSetInstanceIDs = new List <string> { "0", "1" }; var virtualMachineScaleSetInstanceID = new VirtualMachineScaleSetVMInstanceIDs(new List <string>() { "0", "1" }); await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartPerformMaintenanceAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceID)); passed = true; } catch (Exception cex) { passed = true; string expectedMessage = $"Operation 'performMaintenance' is not allowed on VM '{vmScaleSet.Name}_0' " + "since the Subscription of this VM is not eligible."; Assert.IsTrue(cex.Message.Contains(expectedMessage)); } Assert.True(passed); }