# Variables $resourceGroupName = "mynewresourcegroup" $location = "CentralIndia" $vmName = "myVM" $vmSize = "Standard_B2ms" $adminUsername = "totu13487" $adminPassword = "Papamami@220419" $vnetName = "myVNet" $subnetName = "mySubnet" $nicName = "myNIC" # Import the Az module Import-Module Az # Login to Azure using default credentials (prompt) Connect-AzAccount # List available subscriptions to verify access and correctness $subscriptions = Get-AzSubscription $subscriptions | Format-Table -Property SubscriptionName, SubscriptionId # Set the context to the desired subscription $subscriptionId = "9896b81a-ef21-45ad-8577-f6adde85abea" try { Select-AzSubscription -SubscriptionId $subscriptionId Write-Host "Switched to subscription: $subscriptionId" } catch { Write-Host "Failed to select subscription: $_" -ForegroundColor Red exit } # Create or Get Resource Group if (-not (Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue)) { New-AzResourceGroup -Name $resourceGroupName -Location $location Write-Host "Created Resource Group: $resourceGroupName" } else { Write-Host "Resource Group $resourceGroupName already exists." } # Check if VNet already exists $vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Name $vnetName -ErrorAction SilentlyContinue if (-not $vnet) { # Create Virtual Network if it doesn't exist $vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Location $location -Name $vnetName -AddressPrefix "10.0.0.0/16" Write-Host "Virtual Network $vnetName created." } else { Write-Host "Virtual Network $vnetName already exists." } # Check if Subnet already exists $subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name $subnetName -ErrorAction SilentlyContinue if (-not $subnet) { # Create Subnet if it doesn't exist $subnet = Add-AzVirtualNetworkSubnetConfig -Name $subnetName -AddressPrefix "10.0.0.0/24" -VirtualNetwork $vnet # Update the Virtual Network to save the subnet $vnet | Set-AzVirtualNetwork Write-Host "Subnet $subnetName created." } else { Write-Host "Subnet $subnetName already exists." } # Create or Get Network Interface $nic = Get-AzNetworkInterface -ResourceGroupName $resourceGroupName -Name $nicName -ErrorAction SilentlyContinue if (-not $nic) { $nic = New-AzNetworkInterface -ResourceGroupName $resourceGroupName -Location $location -Name $nicName -SubnetId $subnet.Id Write-Host "Network Interface $nicName created." } else { Write-Host "Network Interface $nicName already exists." } # Secure Password $securePassword = ConvertTo-SecureString $adminPassword -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential ($adminUsername, $securePassword) # Create VM Configuration $vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize # Add Network Interface $vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id # Set Operating System for the VM $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate # Add Operating System Image $vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2019-Datacenter" -Version "latest" # Create the VM try { New-AzVM -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig -Debug Write-Host "VM $vmName created successfully in resource group $resourceGroupName!" } catch { Write-Host "Failed to create VM: $_" -ForegroundColor Red }