workloads/vm-starter-kit-windows/vm-starter-kit-windows.ps1 (27 lines of code) (raw):
# Define variables
$resourceGroupName = "myResourceGroup"
$location = "eastus"
$vmName = "myVM"
$vmSize = "Standard_DS2_v2"
$adminUsername = "adminUser"
$adminPassword = "adminPassword"
# Create a new resource group
New-AzResourceGroup -Name $resourceGroupName -Location $location
# Create a new virtual network
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroupName -Location $location -Name "myVNet" -AddressPrefix "10.0.0.0/16"
# Create a new subnet
$subnet = Add-AzVirtualNetworkSubnetConfig -Name "mySubnet" -AddressPrefix "10.0.0.0/24" -VirtualNetwork $vnet
# Create a new public IP address
$publicIP = New-AzPublicIpAddress -ResourceGroupName $resourceGroupName -Location $location -Name "myPublicIP" -AllocationMethod Dynamic
# Create a new network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroupName -Location $location -Name "myNSG"
# Create a new virtual network interface
$nic = New-AzNetworkInterface -ResourceGroupName $resourceGroupName -Location $location -Name "myNIC" -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIP.Id -NetworkSecurityGroupId $nsg.Id
# Create a new virtual machine
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential (Get-Credential -UserName $adminUsername -Password $adminPassword)
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id
$vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName "MicrosoftWindowsServer" -Offer "WindowsServer" -Skus "2019-Datacenter" -Version "latest"
$vm = New-AzVM -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig
# Output the public IP address of the VM
$vm.PublicIpAddress