快速入門:在 Azure Stack Hub 中使用 PowerShell 建立 Windows Server VM

您可以使用 Azure Stack Hub PowerShell 建立 Windows Server 2016 虛擬機器 (VM)。 請依照本文中的步驟建立和使用 VM。 本文也提供下列操作的步驟:

  • 使用遠端用戶端連線至 VM。
  • 安裝 IIS 網頁伺服器,並且檢視預設首頁。
  • 清除資源。

注意

您可以從 Azure Stack 開發套件,或從 Windows 型外部用戶端 (如果您透過 VPN 連線) 來執行這篇文章中所述的步驟。

Windows Server VM 的必要條件

  • 請確定您的 Azure Stack Hub 操作員已將 Windows Server 2016 映像新增到 Azure Stack Hub Marketplace。

  • Azure Stack Hub 需要特定版本的 Azure PowerShell,才能建立和管理資源。 如果您尚未針對 Azure Stack Hub 設定 PowerShell,請依照步驟來安裝 PowerShell。

  • 設定好 Azure Stack Hub PowerShell 後,您必須連線到 Azure Stack Hub 環境。 如需指示,請參閱以使用者的身分使用 PowerShell 連線到 Azure Stack Hub

建立資源群組

資源群組是在其中部署與管理 Azure Stack Hub 資源的邏輯容器。 從您的開發套件或 Azure Stack Hub 整合系統,執行下列程式碼區塊來建立資源群組。

注意

系統會為程式碼範例中的所有變數指派值。 不過,您可以視需要指派新值。

# Create variables to store the location and resource group names.
$location = "local"
$ResourceGroupName = "myResourceGroup"

New-AzResourceGroup `
  -Name $ResourceGroupName `
  -Location $location

建立儲存體資源

建立儲存體帳戶來儲存開機診斷的輸出。

# Create variables to store the storage account name and the storage account SKU information
$StorageAccountName = "mystorageaccount"
$SkuName = "Standard_LRS"

# Create a new storage account
$StorageAccount = New-AzStorageAccount `
  -Location $location `
  -ResourceGroupName $ResourceGroupName `
  -Type $SkuName `
  -Name $StorageAccountName

Set-AzCurrentStorageAccount `
  -StorageAccountName $storageAccountName `
  -ResourceGroupName $resourceGroupName

建立網路資源

建立虛擬網路、子網路和公用 IP 位址。 這些資源可用來提供 VM 的網路連線能力。

# Create a subnet configuration
$subnetConfig = New-AzVirtualNetworkSubnetConfig `
  -Name mySubnet `
  -AddressPrefix 192.168.1.0/24

# Create a virtual network
$vnet = New-AzVirtualNetwork `
  -ResourceGroupName $ResourceGroupName `
  -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 $ResourceGroupName `
  -Location $location `
  -AllocationMethod Static `
  -IdleTimeoutInMinutes 4 `
  -Name "mypublicdns$(Get-Random)"

建立網路安全性群組和網路安全性群組規則

網路安全性群組可使用輸入和輸出規則來保護 VM。 讓我們建立連接埠 3389 的輸入規則以允許傳入的遠端桌面連線,並建立連接埠 80 的輸入規則以允許傳入的 Web 流量。

# 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 an inbound network security group rule for port 80
$nsgRuleWeb = New-AzNetworkSecurityRuleConfig `
  -Name myNetworkSecurityGroupRuleWWW `
  -Protocol Tcp `
  -Direction Inbound `
  -Priority 1001 `
  -SourceAddressPrefix * `
  -SourcePortRange * `
  -DestinationAddressPrefix * `
  -DestinationPortRange 80 `
  -Access Allow

# Create a network security group
$nsg = New-AzNetworkSecurityGroup `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -Name myNetworkSecurityGroup `
  -SecurityRules $nsgRuleRDP,$nsgRuleWeb

建立 VM 的網路卡

網路卡會將 VM 連線至子網路、網路安全性群組和公用 IP 位址。

# Create a virtual network card and associate it with public IP address and NSG
$nic = New-AzNetworkInterface `
  -Name myNic `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -SubnetId $vnet.Subnets[0].Id `
  -PublicIpAddressId $pip.Id `
  -NetworkSecurityGroupId $nsg.Id

建立 VM

建立 VM 組態。 此組態包含部署 VM 時使用的設定。 例如:認證、大小和 VM 映像。

# Define a credential object to store the username and password for the VM
$UserName='demouser'
$Password='Password@123'| ConvertTo-SecureString -Force -AsPlainText
$Credential=New-Object PSCredential($UserName,$Password)

# Create the VM configuration object
$VmName = "VirtualMachinelatest"
$VmSize = "Standard_A1"
$VirtualMachine = New-AzVMConfig `
  -VMName $VmName `
  -VMSize $VmSize

$VirtualMachine = Set-AzVMOperatingSystem `
  -VM $VirtualMachine `
  -Windows `
  -ComputerName "MainComputer" `
  -Credential $Credential -ProvisionVMAgent

$VirtualMachine = Set-AzVMSourceImage `
  -VM $VirtualMachine `
  -PublisherName "MicrosoftWindowsServer" `
  -Offer "WindowsServer" `
  -Skus "2016-Datacenter" `
  -Version "latest"

# Sets the operating system disk properties on a VM.
$VirtualMachine = Set-AzVMOSDisk `
  -VM $VirtualMachine `
  -CreateOption FromImage | `
  Set-AzVMBootDiagnostic -ResourceGroupName $ResourceGroupName `
  -StorageAccountName $StorageAccountName -Enable |`
  Add-AzVMNetworkInterface -Id $nic.Id


# Create the VM.
New-AzVM `
  -ResourceGroupName $ResourceGroupName `
  -Location $location `
  -VM $VirtualMachine

連接至 VM

若要從遠端存取您在上一個步驟中建立的 VM,則需要其公用 IP 位址。 執行下列命令,以取得 VM 的公用 IP 位址:

Get-AzPublicIpAddress `
  -ResourceGroupName $ResourceGroupName | Select IpAddress

使用下列命令建立 VM 的遠端桌面工作階段。 請將 IP 位址取代為 VM 的 publicIPAddress 。 出現提示時,請輸入您在建立 VM 時所使用的使用者名稱和密碼。

mstsc /v <publicIpAddress>

透過 PowerShell 安裝 IIS

您現已登入 Azure VM,可使用一行 PowerShell 來安裝 IIS,並啟用本機防火牆規則以允許 Web 流量通過。 開啟 PowerShell 提示字元並執行下列命令:

Install-WindowsFeature -name Web-Server -IncludeManagementTools

檢視 IIS 歡迎使用頁面

安裝 IIS 後,在您的 VM 上開啟連接埠 80,即可使用任何瀏覽器來檢視預設的 IIS 歡迎使用畫面。 使用您在前一節中記載的 publicIpAddress 來瀏覽預設網頁。

IIS 預設網站

刪除 VM

當不再需要時,請使用下列命令來移除包含 VM 及其相關資源的資源群組:

Remove-AzResourceGroup `
  -Name $ResourceGroupName

後續步驟

在本快速入門中,您部署了簡單的 Windows VM。 若要深入了解 Azure Stack Hub VM,請參閱 Azure Stack Hub VM 功能