# first connect to the AZure subscription Connect-AzAccount # disconnect form azure Disconnect-AzAccount # Variables for common values $resourceGroup = "myFirstR-Goup" $location = "West Europe" $vmName = "myVM-PS" # Create user object $cred = Get-Credential -Message "Enter a username and password for the virtual machine." # Create a resource group (This has been commented out as the Resource Group already exists) New-AzResourceGroup -Name $resourceGroup -Location $location # Create a subnet configuration $subnetConfig = New-AZVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24 # Create a virtual network $vnet = New-AZVirtualNetwork -ResourceGroupName $resourceGroup -Location $location -Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig # Create a public IP address and specify a DNS name $pip = New-AZPublicIpAddress -ResourceGroupName $resourceGroup -Location $location -Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4 # Create an inbound network security group rule for port 3389 $nsgRuleRDP = New-AZNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * ` -DestinationPortRange 3389 -Access Allow # Create a network security group $nsg = New-AZNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location -Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP # Create a virtual network card and associate with public IP address and NSG $nic = New-AZNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id # Create a virtual machine configuration $vmConfig = New-AZVMConfig -VMName $vmName -VMSize Standard_D1_v2 | ` Set-AZVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | ` Set-AZVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | ` Add-AZVMNetworkInterface -Id $nic.Id # Create a virtual machine New-AZVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig # create multiple vm's 1..2 | % {new-AZvm -ResourceGroupName RecoveryVault -Location "West Europe" -Name "VMe$_" -Credential $cred -OpenPorts 3389} 3..4 | % {new-AZvm -ResourceGroupName RecoveryVault -Location "North Europe" -Name "VMe$_" -Credential $cred -OpenPorts 3389}