Provisioning Azure VM Using PowerShell

Creating Virtual Machine, using PowerShell is quite easy. You just need to replace the parameters. VM is required to be placed in proper Resource Group, Storage Account to hold the disks, Virtual Network to be identified on network and security stuff, IP's for communication. All of these are bundled in one script given below.

  1. In PowerShell, use the command given below in order to connect with Azure.

    Login-AzureRmAccount


  1. Run the script given below.
    1. # === === === === === === === === === === === === === #Define your all parameters here# === === === === === === === === === === === === === $TestStorageAccName = "tststorageacc1010124"  
    2. $ResGrp = "TestResourceGroup"  
    3. $Subnet = New - AzureRmVirtualNetworkSubnetConfig - Name "TestSubnet" - AddressPrefix 10.0 .0 .0 / 24  
    4. $DCLocation = "Australia East"#  
    5. Since i am in New Zealand so closest Microsoft Datacenter  
    6. for us is "Australia East"  
    7. $VMCredentials = Get - Credential - Message "Name/Password of the local Admin"  
    8. $BlobPath = "vhds/TestVMOsDisk.vhd"  
    9. $VMName = "TestVM"  
    10. $DiskName = "TestVMOsDisk"# === === === === === === === === === === === === === #Creating Resource Group# === === === === === === === === === === === === === New - AzureRmResourceGroup - Name $ResGrp - Location $DCLocation# === === === === === === === === === === === === === #Creating Storage Account to host Disks# === === === === === === === === === === === === === $myStorageAccount = New - AzureRmStorageAccount - ResourceGroupName $ResGrp - Name $TestStorageAccName - SkuName "Standard_LRS" - Kind "Storage" - Location $DCLocation# === === === === === === === === === === === === === #Creating Virtual Network# === === === === === === === === === === === === === $TestVnet = New - AzureRmVirtualNetwork - Name "TestVnet" - ResourceGroupName $ResGrp - Location $DCLocation - AddressPrefix 10.0 .0 .0 / 16 - Subnet $Subnet# === === === === === === === === === === === === === #Creating IP & NetworkCard# === === === === === === === === === === === === === $TestPublicIP = New - AzureRmPublicIpAddress - Name "TestPublicIP" - ResourceGroupName $ResGrp - Location $DCLocation - AllocationMethod Dynamic  
    11. $TestNIC = New - AzureRmNetworkInterface - Name "TestNIC" - ResourceGroupName $ResGrp - Location $DCLocation - SubnetId $TestVnet.Subnets[0].Id - PublicIpAddressId $TestPublicIP.Id# === === === === === === === === === === === === === #Placing VM Configuration & Provisioning# === === === === === === === === === === === === === $TestVM = New - AzureRmVMConfig - VMName $VMName - VMSize "Standard_DS1_v2"  
    12. $TestVM = Set - AzureRmVMOperatingSystem - VM $TestVM - Windows - ComputerName $VMName - Credential $VMCredentials - ProvisionVMAgent - EnableAutoUpdate  
    13. $TestVM = Set - AzureRmVMSourceImage - VM $TestVM - PublisherName "MicrosoftWindowsServer" - Offer "WindowsServer" - Skus "2012-R2-Datacenter" - Version "latest"  
    14. $TestVM = Add - AzureRmVMNetworkInterface - VM $TestVM - Id $TestNIC.Id  
    15. $TestVM = Set - AzureRmVMOSDisk - VM $TestVM - Name $DiskName - StorageAccountType PremiumLRS - DiskSizeInGB 128 - CreateOption FromImage - Caching ReadWrite  
    16. New - AzureRmVM - ResourceGroupName $ResGrp - Location $DCLocation - VM $TestVM