@@ -3,21 +3,36 @@ Invoke-LiveTestScenario -Name "Creates a virtual machine." -Description "Test cr
3
3
param ($rg )
4
4
5
5
$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
17
34
18
35
Assert-AreEqual $name $actual.Name
19
- # Assert-AreEqual "Succeeded" Label $actual.ProvisioningState
20
- # Assert-AreEqual $userData $actual.UserData
21
36
}
22
37
23
38
Invoke-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
36
51
$userData = [Convert ]::ToBase64String($bytes )
37
52
38
53
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
+
39
66
Remove-AzVM - ResourceGroupName $rgName - Name $name - Force
40
67
41
68
$removedVM = Get-AzVM - ResourceGroupName $rgName - Name $name - ErrorAction SilentlyContinue
0 commit comments