@@ -3,21 +3,36 @@ Invoke-LiveTestScenario -Name "Creates a virtual machine." -Description "Test cr
33 param ($rg )
44
55 $rgName = $rg.ResourceGroupName
6- $name = New-LiveTestResourceName
7-
8- $VMLocalAdminUser = New-LiveTestResourceName
9- $VMLocalAdminSecurePassword = ConvertTo-SecureString (New-LiveTestPassword ) - AsPlainText - Force
10- $domainNameLabel = New-LiveTestResourceName
11- $Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser , $VMLocalAdminSecurePassword )
12- $text = New-LiveTestResourceName
13- $bytes = [System.Text.Encoding ]::Unicode.GetBytes($text )
14- $userData = [Convert ]::ToBase64String($bytes )
15-
16- $actual = New-AzVM - ResourceGroupName $rgName - Name $name - Credential $Credential - DomainNameLabel $domainNameLabel - UserData $userData - OpenPorts @ ()
6+ $location = " eastus2"
7+ $vmName = New-LiveTestResourceName
8+ $vnetName = New-LiveTestResourceName
9+ $snetName = New-LiveTestResourceName
10+ $nicName = New-LiveTestResourceName
11+ $nsgName = New-LiveTestResourceName
12+ $computerName = New-LiveTestResourceName
13+ $osDiskName = New-LiveTestResourceName
14+
15+ $localAdminName = New-LiveTestResourceName
16+ $localAdminPassword = ConvertTo-SecureString (New-LiveTestPassword ) - AsPlainText - Force
17+ $localAdminCred = New-Object System.Management.Automation.PSCredential ($localAdminName , $localAdminPassword )
18+
19+ $snetCfg = New-AzVirtualNetworkSubnetConfig - Name $snetName - AddressPrefix 10.10 .1.0 / 24 - DefaultOutboundAccess $false
20+ $vnet = New-AzVirtualNetwork - ResourceGroupName $rgName - Name $vnetName - Location $location - AddressPrefix 10.10 .0.0 / 16 - Subnet $snetCfg
21+ $nsgRuleHighRiskPorts = New-AzNetworkSecurityRuleConfig - Name " DenyHighRiskPorts" - Direction Inbound - Priority 101 - Protocol Tcp - SourceAddressPrefix Internet - SourcePortRange * - DestinationAddressPrefix * - DestinationPortRange 22 , 3389 - Access Deny
22+ $nsg = New-AzNetworkSecurityGroup - ResourceGroupName $rgName - Name $nsgName - Location $location - SecurityRules $nsgRuleHighRiskPorts
23+ $nic = New-AzNetworkInterface - ResourceGroupName $rgName - Name $nicName - Location $location - Subnet $vnet.Subnets [0 ] - NetworkSecurityGroup $nsg
24+
25+ $vmSize = Get-AzVMSize - Location $location | Sort-Object NumberOfCores, MemoryInMB - Top 1
26+ $vmCfg = New-AzVMConfig - VMName $vmName - VMSize $vmSize.Name
27+ $vmCfg | Set-AzVMSecurityProfile - SecurityType TrustedLaunch
28+ $vmCfg | Set-AzVMOSDisk - Name $osDiskName - StorageAccountType StandardSSD_LRS - CreateOption FromImage - DeleteOption Delete
29+ $vmCfg | Set-AzVMOperatingSystem - Windows - ComputerName $computerName - Credential $localAdminCred - ProvisionVMAgent - EnableAutoUpdate
30+ $vmCfg | Set-AzVMSourceImage - PublisherName " MicrosoftWindowsServer" - Offer " WindowsServer" - Skus " 2022-datacenter-azure-edition-core" - Version " latest"
31+ $vmCfg | Add-AzVMNetworkInterface - Id $nic.Id - DeleteOption Delete
32+ $vmCfg | Set-AzVMBootDiagnostic - Disable
33+ $actual = New-AzVM - ResourceGroupName $rgName - Location $location - VM $vmCfg - DisableBginfoExtension
1734
1835 Assert-AreEqual $name $actual.Name
19- # Assert-AreEqual "Succeeded" Label $actual.ProvisioningState
20- # Assert-AreEqual $userData $actual.UserData
2136}
2237
2338Invoke-LiveTestScenario - Name " Removes a virtual machine from Azure" - Description " Test removes a virtual machine from Azure." - ScenarioScript `
@@ -36,6 +51,18 @@ Invoke-LiveTestScenario -Name "Removes a virtual machine from Azure" -Descriptio
3651 $userData = [Convert ]::ToBase64String($bytes )
3752
3853 New-AzVM - ResourceGroupName $rgName - Name $name - Credential $Credential - DomainNameLabel $domainNameLabel - UserData $userData - OpenPorts @ ()
54+
55+ $vm = Get-AzVM - ResourceGroupName $rgName - Name $name
56+ $nic = Get-AzNetworkInterface - ResourceId $vm.NetworkProfile.NetworkInterfaces [0 ].Id
57+ $snetResourceId = $nic.IpConfigurations [0 ].Subnet.Id
58+ $vnetName = $snetResourceId.Split (" /" )[8 ]
59+ $vnet = Get-AzVirtualNetwork - ResourceGroupName $rgName - Name $vnetName
60+ foreach ($snet in $vnet.Subnets ) {
61+ $snet.DefaultOutboundAccess = $false
62+ $vnet | Set-AzVirtualNetwork
63+ }
64+ Restart-AzVM - ResourceGroupName $rgName - Name $name
65+
3966 Remove-AzVM - ResourceGroupName $rgName - Name $name - Force
4067
4168 $removedVM = Get-AzVM - ResourceGroupName $rgName - Name $name - ErrorAction SilentlyContinue
0 commit comments