@@ -140,6 +140,9 @@ function Test-VirtualMachine
140
140
Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled ;
141
141
Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri ;
142
142
143
+ Assert-AreEqual " BGInfo" $vm1.Extensions [0 ].ExtensionType
144
+ Assert-AreEqual " Microsoft.Compute" $vm1.Extensions [0 ].Publisher
145
+
143
146
Start-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
144
147
Restart-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
145
148
Stop-AzureRmVM - Name $vmname - ResourceGroupName $rgname - Force - StayProvisioned;
@@ -1697,19 +1700,19 @@ function Test-VMImageCmdletOutputFormat
1697
1700
$sku = $imgRef.Skus ;
1698
1701
$ver = $imgRef.Version ;
1699
1702
1700
- Assert-OutputContains " Get-AzureRmVMImagePublisher -Location $locStr " @ (' Id' , ' Location' , ' PublisherName' );
1703
+ Assert-OutputContains " Get-AzureRmVMImagePublisher -Location ' $locStr ' " @ (' Id' , ' Location' , ' PublisherName' );
1701
1704
1702
- Assert-OutputContains " Get-AzureRmVMImagePublisher -Location $locStr | ? { `$ _.PublisherName -eq `' $publisher `' } " @ (' Id' , ' Location' , ' PublisherName' );
1705
+ Assert-OutputContains " Get-AzureRmVMImagePublisher -Location ' $locStr ' | ? { `$ _.PublisherName -eq `' $publisher `' } " @ (' Id' , ' Location' , ' PublisherName' );
1703
1706
1704
- Assert-OutputContains " Get-AzureRmVMImagePublisher -Location $locStr | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' );
1707
+ Assert-OutputContains " Get-AzureRmVMImagePublisher -Location ' $locStr ' | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' );
1705
1708
1706
- Assert-OutputContains " Get-AzureRmVMImagePublisher -Location $locStr | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' );
1709
+ Assert-OutputContains " Get-AzureRmVMImagePublisher -Location ' $locStr ' | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' );
1707
1710
1708
- Assert-OutputContains " Get-AzureRmVMImagePublisher -Location $locStr | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku | Get-AzureRmVMImage " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' );
1711
+ Assert-OutputContains " Get-AzureRmVMImagePublisher -Location ' $locStr ' | ? { `$ _.PublisherName -eq `' $publisher `' } | Get-AzureRmVMImageOffer | Get-AzureRmVMImageSku | Get-AzureRmVMImage " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' );
1709
1712
1710
- Assert-OutputContains " Get-AzureRmVMImage -Location $locStr -PublisherName $publisher -Offer $offer -Skus $sku -Version $ver " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' , ' Name' , ' DataDiskImages' , ' OSDiskImage' , ' PurchasePlan' );
1713
+ Assert-OutputContains " Get-AzureRmVMImage -Location ' $locStr ' -PublisherName $publisher -Offer $offer -Skus $sku -Version $ver " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' , ' Name' , ' DataDiskImages' , ' OSDiskImage' , ' PurchasePlan' );
1711
1714
1712
- Assert-OutputContains " Get-AzureRmVMImage -Location $locStr -PublisherName $publisher -Offer $offer -Skus $sku -Version $ver " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' , ' Name' , ' DataDiskImages' , ' OSDiskImage' , ' PurchasePlan' );
1715
+ Assert-OutputContains " Get-AzureRmVMImage -Location ' $locStr ' -PublisherName $publisher -Offer $offer -Skus $sku -Version $ver " @ (' Id' , ' Location' , ' PublisherName' , ' Offer' , ' Sku' , ' Version' , ' FilterExpression' , ' Name' , ' DataDiskImages' , ' OSDiskImage' , ' PurchasePlan' );
1713
1716
}
1714
1717
1715
1718
# Test Get VM Size from All Locations
@@ -1821,7 +1824,7 @@ function Test-VirtualMachineWithDifferentStorageResource
1821
1824
try
1822
1825
{
1823
1826
# Common
1824
- $loc = " eastus " ;
1827
+ $loc = Get-ComputeVMLocation ;
1825
1828
New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
1826
1829
New-AzureRmResourceGroup - Name $rgname_storage - Location $loc - Force;
1827
1830
@@ -1928,7 +1931,7 @@ function Test-VirtualMachineWithDifferentStorageResource
1928
1931
Assert-AreEqual $vm1.HardwareProfile.VirtualMachineSize $vmsize ;
1929
1932
1930
1933
Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled ;
1931
- Assert-AreNotEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri ;
1934
+ Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri ;
1932
1935
}
1933
1936
finally
1934
1937
{
@@ -1938,3 +1941,160 @@ function Test-VirtualMachineWithDifferentStorageResource
1938
1941
}
1939
1942
}
1940
1943
1944
+
1945
+ <#
1946
+ . SYNOPSIS
1947
+ Test Virtual Machines
1948
+ #>
1949
+ function Test-VirtualMachineWithEmptyAuc
1950
+ {
1951
+ # Setup
1952
+ $rgname = Get-ComputeTestResourceName
1953
+
1954
+ try
1955
+ {
1956
+ # Common
1957
+ $loc = Get-ComputeVMLocation ;
1958
+ New-AzureRmResourceGroup - Name $rgname - Location $loc - Force;
1959
+
1960
+ # VM Profile & Hardware
1961
+ $vmsize = ' Standard_A4' ;
1962
+ $vmname = ' vm' + $rgname ;
1963
+ $p = New-AzureRmVMConfig - VMName $vmname - VMSize $vmsize ;
1964
+ Assert-AreEqual $p.HardwareProfile.VirtualMachineSize $vmsize ;
1965
+
1966
+ # NRP
1967
+ $subnet = New-AzureRmVirtualNetworkSubnetConfig - Name (' subnet' + $rgname ) - AddressPrefix " 10.0.0.0/24" ;
1968
+ $vnet = New-AzureRmVirtualNetwork - Force - Name (' vnet' + $rgname ) - ResourceGroupName $rgname - Location $loc - AddressPrefix " 10.0.0.0/16" - DnsServer " 10.1.1.1" - Subnet $subnet ;
1969
+ $vnet = Get-AzureRmVirtualNetwork - Name (' vnet' + $rgname ) - ResourceGroupName $rgname ;
1970
+ $subnetId = $vnet.Subnets [0 ].Id;
1971
+ $pubip = New-AzureRmPublicIpAddress - Force - Name (' pubip' + $rgname ) - ResourceGroupName $rgname - Location $loc - AllocationMethod Dynamic - DomainNameLabel (' pubip' + $rgname );
1972
+ $pubip = Get-AzureRmPublicIpAddress - Name (' pubip' + $rgname ) - ResourceGroupName $rgname ;
1973
+ $pubipId = $pubip.Id ;
1974
+ $nic = New-AzureRmNetworkInterface - Force - Name (' nic' + $rgname ) - ResourceGroupName $rgname - Location $loc - SubnetId $subnetId - PublicIpAddressId $pubip.Id ;
1975
+ $nic = Get-AzureRmNetworkInterface - Name (' nic' + $rgname ) - ResourceGroupName $rgname ;
1976
+ $nicId = $nic.Id ;
1977
+
1978
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId ;
1979
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1980
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1981
+
1982
+ # Adding the same Nic but not set it Primary
1983
+ $p = Add-AzureRmVMNetworkInterface - VM $p - Id $nicId - Primary;
1984
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces.Count 1 ;
1985
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
1986
+ Assert-AreEqual $p.NetworkProfile.NetworkInterfaces [0 ].Primary $true ;
1987
+
1988
+ # Storage Account (SA)
1989
+ $stoname = ' sto' + $rgname ;
1990
+ $stotype = ' Standard_GRS' ;
1991
+ New-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname - Location $loc - Type $stotype ;
1992
+ $stoaccount = Get-AzureRmStorageAccount - ResourceGroupName $rgname - Name $stoname ;
1993
+
1994
+ $osDiskName = ' osDisk' ;
1995
+ $osDiskCaching = ' ReadWrite' ;
1996
+ $osDiskVhdUri = " https://$stoname .blob.core.windows.net/test/os.vhd" ;
1997
+ $dataDiskVhdUri1 = " https://$stoname .blob.core.windows.net/test/data1.vhd" ;
1998
+
1999
+ $p = Set-AzureRmVMOSDisk - VM $p - Name $osDiskName - VhdUri $osDiskVhdUri - Caching $osDiskCaching - CreateOption FromImage;
2000
+ $p = Add-AzureRmVMDataDisk - VM $p - Name ' testDataDisk1' - Caching ' ReadOnly' - DiskSizeInGB 10 - Lun 1 - VhdUri $dataDiskVhdUri1 - CreateOption Empty;
2001
+
2002
+ Assert-AreEqual $p.StorageProfile.OSDisk.Caching $osDiskCaching ;
2003
+ Assert-AreEqual $p.StorageProfile.OSDisk.Name $osDiskName ;
2004
+ Assert-AreEqual $p.StorageProfile.OSDisk.VirtualHardDisk.Uri $osDiskVhdUri ;
2005
+ Assert-AreEqual $p.StorageProfile.DataDisks.Count 1 ;
2006
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Caching ' ReadOnly' ;
2007
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].DiskSizeGB 10 ;
2008
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].Lun 1 ;
2009
+ Assert-AreEqual $p.StorageProfile.DataDisks [0 ].VirtualHardDisk.Uri $dataDiskVhdUri1 ;
2010
+
2011
+ # OS & Image
2012
+ $user = " Foo12" ;
2013
+ $password = ' BaR@123' + $rgname ;
2014
+ $securePassword = ConvertTo-SecureString $password - AsPlainText - Force;
2015
+ $cred = New-Object System.Management.Automation.PSCredential ($user , $securePassword );
2016
+ $computerName = ' test' ;
2017
+ $vhdContainer = " https://$stoname .blob.core.windows.net/test" ;
2018
+
2019
+ $p = Set-AzureRmVMOperatingSystem - VM $p - Windows - ComputerName $computerName - Credential $cred - ProvisionVMAgent - EnableAutoUpdate;
2020
+
2021
+ $imgRef = Get-DefaultCRPImage - loc $loc ;
2022
+ $p = ($imgRef | Set-AzureRmVMSourceImage - VM $p );
2023
+
2024
+ Assert-AreEqual $p.OSProfile.AdminUsername $user ;
2025
+ Assert-AreEqual $p.OSProfile.ComputerName $computerName ;
2026
+ Assert-AreEqual $p.OSProfile.AdminPassword $password ;
2027
+
2028
+ Assert-AreEqual $p.StorageProfile.ImageReference.Offer $imgRef.Offer ;
2029
+ Assert-AreEqual $p.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
2030
+ Assert-AreEqual $p.StorageProfile.ImageReference.Sku $imgRef.Skus ;
2031
+ Assert-AreEqual $p.StorageProfile.ImageReference.Version $imgRef.Version ;
2032
+
2033
+ # Virtual Machine
2034
+ New-AzureRmVM - ResourceGroupName $rgname - Location $loc - VM $p ;
2035
+
2036
+ # Get VM
2037
+ $vm1 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
2038
+ Assert-AreEqual $vm1.Name $vmname ;
2039
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces.Count 1 ;
2040
+ Assert-AreEqual $vm1.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
2041
+
2042
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Offer $imgRef.Offer ;
2043
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
2044
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Sku $imgRef.Skus ;
2045
+ Assert-AreEqual $vm1.StorageProfile.ImageReference.Version $imgRef.Version ;
2046
+
2047
+ Assert-AreEqual $vm1.OSProfile.AdminUsername $user ;
2048
+ Assert-AreEqual $vm1.OSProfile.ComputerName $computerName ;
2049
+ Assert-AreEqual $vm1.HardwareProfile.VirtualMachineSize $vmsize ;
2050
+
2051
+ Assert-AreEqual $true $vm1.DiagnosticsProfile.BootDiagnostics.Enabled ;
2052
+ Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm1.DiagnosticsProfile.BootDiagnostics.StorageUri ;
2053
+
2054
+ # Update VM with an empty additional unattend content
2055
+ $vm1 = Set-AzureRmVMDataDisk - VM $vm1 - Name ' testDataDisk1' - Caching ' None'
2056
+
2057
+ $aucSetting = " AutoLogon" ;
2058
+ $aucContent = " <UserAccounts><AdministratorPassword><Value>" + $password + " </Value><PlainText>true</PlainText></AdministratorPassword></UserAccounts>" ;
2059
+ $vm1 = Add-AzureRmVMAdditionalUnattendContent - VM $vm1 - Content $aucContent - SettingName $aucSetting ;
2060
+ [System.Collections.Generic.List [Microsoft.Azure.Management.Compute.Models.AdditionalUnattendContent ]]$emptyAUC = @ ();
2061
+ $vm1.OSProfile.WindowsConfiguration.AdditionalUnattendContents.RemoveAt (0 )
2062
+
2063
+ # Verify Additional Unattend Content
2064
+ Assert-NotNull $vm1.OSProfile.WindowsConfiguration.AdditionalUnattendContents ;
2065
+ Assert-AreEqual 0 $vm1.OSProfile.WindowsConfiguration.AdditionalUnattendContents.Count ;
2066
+ Assert-True {$vm1.OSProfile.WindowsConfiguration.AdditionalUnattendContents.IsInitialized };
2067
+
2068
+ Update-AzureRmVM - ResourceGroupName $rgname - VM $vm1 ;
2069
+
2070
+ $vm2 = Get-AzureRmVM - Name $vmname - ResourceGroupName $rgname ;
2071
+ Assert-AreEqual $vm2.NetworkProfile.NetworkInterfaces.Count 1 ;
2072
+ Assert-AreEqual $vm2.NetworkProfile.NetworkInterfaces [0 ].ReferenceUri $nicId ;
2073
+
2074
+ Assert-AreEqual $vm2.StorageProfile.ImageReference.Offer $imgRef.Offer ;
2075
+ Assert-AreEqual $vm2.StorageProfile.ImageReference.Publisher $imgRef.PublisherName ;
2076
+ Assert-AreEqual $vm2.StorageProfile.ImageReference.Sku $imgRef.Skus ;
2077
+ Assert-AreEqual $vm2.StorageProfile.ImageReference.Version $imgRef.Version ;
2078
+
2079
+ Assert-AreEqual $vm2.OSProfile.AdminUsername $user ;
2080
+ Assert-AreEqual $vm2.OSProfile.ComputerName $computerName ;
2081
+ Assert-AreEqual $vm2.HardwareProfile.VirtualMachineSize $vmsize ;
2082
+ Assert-NotNull $vm2.Location ;
2083
+
2084
+ Assert-AreEqual $true $vm2.DiagnosticsProfile.BootDiagnostics.Enabled ;
2085
+ Assert-AreEqual $stoaccount.PrimaryEndpoints.Blob $vm2.DiagnosticsProfile.BootDiagnostics.StorageUri ;
2086
+
2087
+ $vms = Get-AzureRmVM - ResourceGroupName $rgname ;
2088
+ Assert-AreNotEqual $vms $null ;
2089
+
2090
+ # Remove All VMs
2091
+ Get-AzureRmVM - ResourceGroupName $rgname | Remove-AzureRmVM - ResourceGroupName $rgname - Force;
2092
+ $vms = Get-AzureRmVM - ResourceGroupName $rgname ;
2093
+ Assert-AreEqual $vms $null ;
2094
+ }
2095
+ finally
2096
+ {
2097
+ # Cleanup
2098
+ Clean - ResourceGroup $rgname
2099
+ }
2100
+ }
0 commit comments