@@ -1042,7 +1042,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
1042
1042
New-AzResourceGroup - Name $rgname - Location $loc - Force;
1043
1043
1044
1044
# Create a VM with managed disk
1045
- $vmname0 = $rgname + " v0" ;
1045
+ $vmname0 = $rgname + " v0" ;
1046
1046
$username = " admin01" ;
1047
1047
$password = Get-PasswordForVM | ConvertTo-SecureString - AsPlainText - Force;
1048
1048
$cred = new-object - typename System.Management.Automation.PSCredential - argumentlist $username , $password ;
@@ -1063,7 +1063,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
1063
1063
$managedDisk = Get-AzDisk - ResourceGroupName $rgname - DiskName $vm.StorageProfile.OsDisk.Name ;
1064
1064
1065
1065
# Create a managed OS disk by copying the OS disk of the stopped VM.
1066
- $diskname = $rgname + " disk" ;
1066
+ $diskname = $rgname + " disk" ;
1067
1067
$diskConfig = New-AzDiskConfig - SourceResourceId $managedDisk.Id - Location $loc - CreateOption Copy;
1068
1068
New-AzDisk - ResourceGroupName $rgname - DiskName $diskname - Disk $diskConfig ;
1069
1069
$disk = Get-AzDisk - ResourceGroupName $rgname - DiskName $diskname ;
@@ -1104,7 +1104,7 @@ function Test-VirtualMachineCustomScriptExtensionManagedDisk
1104
1104
1105
1105
# Create a VM using the managed OS disk.
1106
1106
New-AzVM - ResourceGroupName $rgname - Location $loc - VM $p ;
1107
- $vm = Get-AzVM - ResourceGroupName $rgname - Name $vmname1 ;
1107
+ $vm = Get-AzVM - ResourceGroupName $rgname - Name $vmname1 ;
1108
1108
Assert-Null $vm.OSProfile ;
1109
1109
1110
1110
# Storage Account (SA)
@@ -1407,6 +1407,16 @@ function Test-AzureDiskEncryptionExtensionSinglePass
1407
1407
Assert-NotNull $settings
1408
1408
Assert-NotNull $settings.DiskEncryptionKey.SecretUrl
1409
1409
Assert-AreEqual $settings.DiskEncryptionKey.SourceVault.Id $kv.DiskEncryptionKeyVaultId
1410
+
1411
+ # Enable using -Migrate flag and verify exception is thrown
1412
+ Write-Verbose " Use -Migrate flag"
1413
+ Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension - ResourceGroupName $vm.ResourceGroupName - VMName $vm.Name - Migrate - Force; } `
1414
+ " Migration is only supported for VMs using Azure Disk Encryption (with AAD). -Migrate parameter is unsupported for this VM as it is running Azure Disk Encryption (without AAD)" ;
1415
+
1416
+ # Enable using -MigrationRecovery flag and verify exception is thrown
1417
+ Write-Verbose " Use -MigrationRecovery flag"
1418
+ Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension - ResourceGroupName $vm.ResourceGroupName - VMName $vm.Name - MigrationRecovery - Force; } `
1419
+ " Invalid -MigrationRecovery parameter. VM does not meet the prerequisites for migration recovery" ;
1410
1420
}
1411
1421
finally
1412
1422
{
@@ -1638,7 +1648,12 @@ function Test-AzureDiskEncryptionLnxManagedDisk
1638
1648
$computerName = ' test' ;
1639
1649
$vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
1640
1650
1641
- $p = Set-AzVMOperatingSystem - VM $p - Linux - ComputerName $computerName - Credential $cred ;
1651
+ $p = Set-AzVMOperatingSystem - VM $p - Linux - ComputerName $computerName - Credential $cred - DisablePasswordAuthentication;
1652
+ Write-Verbose " Adding SSH public key for VM"
1653
+ $sshPublicKey = " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9tGj7bjzqid3QP5YpH2+YGK8Or2KRZLdNuRGiFqgefGEF4uZrsKXeRXAXS7ia5CdCSIu020PDR69nPZq3dEQGp8GNMKXvfIBIpI++BISbT1jPuMVwEnI4JESGI4ay1glh1JtbRzQsktNjUGUYDxoOAYbtj3GU5lvw2CJ5WmobtcQbXLHWYqdDmTZQ7ry7l6GCjJSzye4IkwlQoGUql/T2iU2bLQyOCsFzcDEzFv6hVR8iFcV+eOJNHIkjCQz3Bw+tOTZbHMz1G95tSswdkrdwfMvR8fkWmby39lnFC+I7xcySQI6FMzaQZ7bA0tFGpp1JoThy5J5hBak5yOTqGBYL dummy@cc-1b92760a-6bb78476c6-h5cwh" ;
1654
+ $sshPath = " /home/" + $user + " /.ssh/authorized_keys"
1655
+ Add-AzVMSshPublicKey - VM $p - KeyData $sshPublicKey - Path $sshPath
1656
+ Write-Verbose " Added SSH public key successfully."
1642
1657
$p = Set-AzVMSourceImage - VM $p - PublisherName $imagePublisher - Offer $imageOffer - Skus $imageSku - Version " latest"
1643
1658
Assert-AreEqual $p.OSProfile.AdminUsername $user ;
1644
1659
Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
@@ -1653,6 +1668,21 @@ function Test-AzureDiskEncryptionLnxManagedDisk
1653
1668
# Enable single pass encryption without -skipVmBackup on Linux VM managed disk and verify exception is thrown
1654
1669
Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension - ResourceGroupName $rgname - VMName $vmname - DiskEncryptionKeyVaultUrl $kv.DiskEncryptionKeyVaultUrl - DiskEncryptionKeyVaultId $kv.DiskEncryptionKeyVaultId - VolumeType " OS" - Force; } `
1655
1670
" skipVmBackup parameter is a required parameter for encrypting Linux VMs with managed disks" ; # >
1671
+
1672
+ # Enable with normal parameters
1673
+ Set-AzVMDiskEncryptionExtension - ResourceGroupName $rgname - VMName $vmname - DiskEncryptionKeyVaultUrl $kv.DiskEncryptionKeyVaultUrl - DiskEncryptionKeyVaultId $kv.DiskEncryptionKeyVaultId - VolumeType " OS" - Force - skipVmBackup;
1674
+ $status = Get-AzVmDiskEncryptionStatus - ResourceGroupName $rgname - VMName $vmname
1675
+ Assert-NotNull $status
1676
+ Assert-AreEqual $status.OsVolumeEncrypted EncryptionInProgress;
1677
+
1678
+ # Enable using -Migrate flag and verify exception is thrown
1679
+ Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension - ResourceGroupName $rgname - VMName $vmname - Migrate - Force; } `
1680
+ " Migration is only supported for VMs using Azure Disk Encryption (with AAD). -Migrate parameter is unsupported for this VM as it is running Azure Disk Encryption (without AAD)" ;
1681
+
1682
+ # Enable using -MigrationRecovery flag and verify exception is thrown
1683
+ Assert-ThrowsContains { Set-AzVMDiskEncryptionExtension - ResourceGroupName $rgname - VMName $vmname - MigrationRecovery - Force; } `
1684
+ " Invalid -MigrationRecovery parameter. VM does not meet the prerequisites for migration recovery" ;
1685
+
1656
1686
}
1657
1687
finally
1658
1688
{
@@ -2554,20 +2584,20 @@ function Test-VirtualMachineExtensionEnableAutomaticUpgrade
2554
2584
Assert-NotNull $vm ;
2555
2585
$vmss = Get-AzVmss - Name $vmssname - ResourceGroupName $rgname ;
2556
2586
Assert-NotNull $vmss ;
2557
-
2587
+
2558
2588
# Extension
2559
2589
$extname = ' csetest' ;
2560
2590
$publisher = ' Microsoft.Compute' ;
2561
2591
$exttype = ' CustomScriptExtension' ;
2562
2592
$extver = ' 1.1' ;
2563
-
2593
+
2564
2594
# Set extension settings by raw strings
2565
2595
$settingstr = ' {"fileUris":[],"commandToExecute":"powershell Get-Process"}' ;
2566
2596
$protectedsettingstr = ' {"storageAccountName":"somename","storageAccountKey":"somekey"}' ;
2567
2597
2568
- Set-AzVMExtension - ResourceGroupName $rgname - Location $loc - VMName $vmname - Name $extname - Publisher $publisher - ExtensionType $exttype - TypeHandlerVersion $extver - SettingString $settingstr - ProtectedSettingString $protectedsettingstr - enableAutomaticUpgrade $False ;
2569
- $VMSSext = Add-AzVmssExtension - VirtualMachineScaleSet $vmss - Name $extname - Publisher $publisher - Type $exttype - TypeHandlerVersion $extver - enableAutomaticUpgrade $False ;
2570
-
2598
+ Set-AzVMExtension - ResourceGroupName $rgname - Location $loc - VMName $vmname - Name $extname - Publisher $publisher - ExtensionType $exttype - TypeHandlerVersion $extver - SettingString $settingstr - ProtectedSettingString $protectedsettingstr - enableAutomaticUpgrade $False ;
2599
+ $VMSSext = Add-AzVmssExtension - VirtualMachineScaleSet $vmss - Name $extname - Publisher $publisher - Type $exttype - TypeHandlerVersion $extver - enableAutomaticUpgrade $False ;
2600
+
2571
2601
$VMext = Get-AzVMExtension - ResourceGroupName $rgname - VMName $vmname - Name $extname ;
2572
2602
2573
2603
# check enableAutomaticUpgrade property
0 commit comments