VM Life Cycle Management
Manage the complete lifecycle of your virtual machines from creation to deletion
# Azure VM Creation Script
param(
[Parameter(Mandatory=$true)]
[string]$resourceGroupName,
[Parameter(Mandatory=$true)]
[string]$vmName,
[Parameter(Mandatory=$true)]
[string]$location,
[Parameter(Mandatory=$true)]
[string]$adminUsername,
[Parameter(Mandatory=$true)]
[SecureString]$adminPassword,
[string]$vmSize = "Standard_DS2_v2"
)
# Connect to Azure
Connect-AzAccount
# Create Resource Group
New-AzResourceGroup -Name $resourceGroupName -Location $location
# Create Network Security Group
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name "RDP" -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * `
-DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroupName `
-Location $location -Name "$vmName-NSG" -SecurityRules $nsgRuleRDP
# Create Virtual Network
$subnet = New-AzVirtualNetworkSubnetConfig -Name "default" `
-AddressPrefix "10.0.0.0/24" -NetworkSecurityGroup $nsg
$vnet = New-AzVirtualNetwork -Name "$vmName-VNET" -ResourceGroupName $resourceGroupName `
-Location $location -AddressPrefix "10.0.0.0/16" -Subnet $subnet
# Create Public IP
$pip = New-AzPublicIpAddress -Name "$vmName-PIP" -ResourceGroupName $resourceGroupName `
-Location $location -AllocationMethod Dynamic
# Create Network Interface
$nic = New-AzNetworkInterface -Name "$vmName-NIC" -ResourceGroupName $resourceGroupName `
-Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id
# Create VM Configuration
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName `
-Credential (New-Object PSCredential ($adminUsername, $adminPassword))
$vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName "MicrosoftWindowsServer" `
-Offer "WindowsServer" -Skus "2019-Datacenter" -Version "latest"
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
# Create VM
New-AzVM -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig