使用 PowerShell 创建完全配置的虚拟机
该脚本创建运行 Windows Server 2016 的 Azure 虚拟机。 运行脚本后,可通过 RDP 访问虚拟机。
本示例需要 Azure PowerShell Az 1.0 或更高版本。 运行 Get-Module -ListAvailable Az
,查看已安装哪些版本。
如果需要安装,请参阅安装 Azure PowerShell 模块。
通过运行 Connect-AzAccount 登录到 Azure。
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
示例脚本
# Variables for common values
$resourceGroup = "myResourceGroup"
$location = "westeurope"
$vmName = "myVM"
# Create user object
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
# Create a virtual network
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
-Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
# Create a public IP address and specify a DNS name
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Allow
# Create a network security group
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1 | `
Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred | `
Set-AzVMSourceImage -PublisherName MicrosoftWindowsServer -Offer WindowsServer -Skus 2016-Datacenter -Version latest | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
清理部署
运行以下命令来删除资源组、VM 和所有相关资源。
Remove-AzResourceGroup -Name myResourceGroup
脚本说明
此脚本使用以下命令创建部署。 表中的每一项均链接到特定于命令的文档。
命令 | 说明 |
---|---|
New-AzResourceGroup | 创建用于存储所有资源的资源组。 |
New-AzVirtualNetworkSubnetConfig | 创建子网配置。 在虚拟网络创建过程中将使用此配置。 |
New-AzVirtualNetwork | 创建虚拟网络。 |
New-AzPublicIpAddress | 创建公共 IP 地址。 |
New-AzNetworkSecurityRuleConfig | 创建网络安全组规则配置。 创建 NSG 时会使用此配置创建 NSG 规则。 |
New-AzNetworkSecurityGroup | 创建网络安全组。 |
Get-AzVirtualNetworkSubnetConfig | 获取子网信息。 创建网络接口时会使用此信息。 |
New-AzNetworkInterface | 创建网络接口。 |
New-AzVMConfig | 创建 VM 配置。 此配置包括 VM 名称、操作系统和管理凭据等信息。 在创建 VM 期间将使用此配置。 |
New-AzVM | 创建虚拟机。 |
Remove-AzResourceGroup | 删除资源组及其中包含的所有资源。 |
后续步骤
有关 Azure PowerShell 模块的详细信息,请参阅 Azure PowerShell 文档。
可以在 Azure Windows VM 文档中找到其他虚拟机 PowerShell 脚本示例。