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