Az-NewVirtualMachine.ps1

function Az-NewVirtualMachine {
    param (
        [string]$resourceGroupName,
        [string]$vmName,
        [string]$location,
        [string]$vmSize,
        [string]$adminUsername,
        [string]$adminPassword
    )

    $vmConfig = New-AzVMConfig -VMName $vmName -VMSize $vmSize
    $cred = New-Object PSCredential -ArgumentList $adminUsername, ($adminPassword | ConvertTo-SecureString -AsPlainText -Force)
    $vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmName -Credential $cred
    $vmConfig = Set-AzVMSourceImage -VM $vmConfig -PublisherName 'MicrosoftWindowsServer' -Offer 'WindowsServer' -Skus '2019-Datacenter' -Version 'latest'
    
    New-AzVM -ResourceGroupName $resourceGroupName -Location $location -VM $vmConfig
}