在 Azure 中手动部署 Windows Admin Center 以管理多台服务器

本文介绍如何在 Azure VM 中手动部署 Windows Admin Center,以用于管理多个 Azure VM。 若要管理单个 VM,请改用 Azure 门户中内置的 Windows Admin Center 功能,如使用 Azure 门户中的 Windows Admin Center 中所述。

使用脚本进行部署

可以下载 Deploy-WACAzVM.ps1,你将从 Azure Cloud Shell 运行它,以在 Azure 中设置 Windows Admin Center 网关。 此脚本可以创建整个环境,包括资源组。

跳转到手动部署步骤

先决条件

  • Azure Cloud Shell 中设置帐户。 如果这是你第一次使用 Cloud Shell,系统会要求你将 Azure 存储帐户与 Cloud Shell 相关联或创建 Azure 存储帐户。
  • 在 PowerShell Cloud Shell中,导航到主目录:PS Azure:\> cd ~
  • 若要上传 Deploy-WACAzVM.ps1 文件,请将其从本地计算机拖放到 Cloud Shell 窗口中的任意位置。

如果要指定自己的证书:

  • 将证书上传到 Azure Key Vault。 首先,在 Azure 门户中创建密钥保管库,然后将证书上传到密钥保管库。 或者,可以使用 Azure 门户为你生成证书。

脚本参数

  • ResourceGroupName - [字符串] 指定要在其中创建 VM 的资源组的名称

  • Name - [字符串] 指定 VM 的名称

  • Credential - [PSCredential] 指定 VM 的凭据

  • MsiPath - [字符串] 指定在现有 VM 上部署 Windows Admin Center 时 Windows Admin Center MSI 的本地路径。 如果省略,则默认为 https://aka.ms/WACDownload 中的版本。

  • VaultName - [字符串] 指定包含证书的密钥保管库的名称

  • CertName - [字符串] 指定要用于 MSI 安装的证书的名称

  • GenerateSslCert - [Switch] 如果 MSI 应生成自签名 SSL 证书,则为 True

  • PortNumber - [int] 指定 Windows Admin Center 服务的 SSL 端口号。 如果省略,则默认为 443。

  • OpenPorts - [int[]] 指定 VM 的开放端口

  • Location - [字符串] 指定 VM 的位置

  • Size - [字符串] 指定 VM 的大小。 如果省略,则默认为“Standard_DS1_v2”。

  • Image - [字符串] 指定 VM 的映像。 如果省略,则默认为“Win2016Datacenter”。

  • VirtualNetworkName - [字符串] 指定 VM 的虚拟网络的名称

  • SubnetName - [字符串] 指定 VM 的子网的名称

  • SecurityGroupName - [字符串] 指定 VM 的安全组的名称

  • PublicIpAddressName - [字符串] 指定 VM 的公共 IP 地址的名称

  • InstallWACOnly - [Switch] 如果应在预先存在的 Azure VM 上安装 WAC,则设置为 True

有 2 种不同选项可供 MSI 部署和用于 MSI 安装的证书。 MSI 可以从 aka.ms/WACDownload 下载,而如果部署到现有 VM,则可以在 VM 上本地提供 MSI 的文件路径。 可以在 Azure Key Vault 中查找证书,也可以由 MSI 生成自签名证书。

脚本示例

首先,定义脚本参数所需的常用变量。

$ResourceGroupName = "wac-rg1"
$VirtualNetworkName = "wac-vnet"
$SecurityGroupName = "wac-nsg"
$SubnetName = "wac-subnet"
$VaultName = "wac-key-vault"
$CertName = "wac-cert"
$Location = "westus"
$PublicIpAddressName = "wac-public-ip"
$Size = "Standard_D4s_v3"
$Image = "Win2016Datacenter"
$Credential = Get-Credential

示例 1:使用脚本在新虚拟网络和资源组中的新 VM 上部署 WAC 网关。 使用来自 aka.ms/WACDownload 的 MSI 和 MSI 中的自签名证书。

$scriptParams = @{
    ResourceGroupName = $ResourceGroupName
    Name = "wac-vm1"
    Credential = $Credential
    VirtualNetworkName = $VirtualNetworkName
    SubnetName = $SubnetName
    GenerateSslCert = $true
}
./Deploy-WACAzVM.ps1 @scriptParams

示例 2:与 1 相同,但使用 Azure Key Vault 中的证书。

$scriptParams = @{
    ResourceGroupName = $ResourceGroupName
    Name = "wac-vm2"
    Credential = $Credential
    VirtualNetworkName = $VirtualNetworkName
    SubnetName = $SubnetName
    VaultName = $VaultName
    CertName = $CertName
}
./Deploy-WACAzVM.ps1 @scriptParams

示例 3:在现有 VM 上使用本地 MSI 部署 WAC。

$MsiPath = "C:\Users\<username>\Downloads\WindowsAdminCenter<version>.msi"
$scriptParams = @{
    ResourceGroupName = $ResourceGroupName
    Name = "wac-vm3"
    Credential = $Credential
    MsiPath = $MsiPath
    InstallWACOnly = $true
    GenerateSslCert = $true
}
./Deploy-WACAzVM.ps1 @scriptParams

运行 Windows Admin Center 网关的 VM 的要求

端口 443 (HTTPS) 必须打开。 利用为脚本定义的相同变量,你可以在 Azure Cloud Shell 中使用以下代码来更新网络安全组:

$nsg = Get-AzNetworkSecurityGroup -Name $SecurityGroupName -ResourceGroupName $ResourceGroupName
$newNSG = Add-AzNetworkSecurityRuleConfig -NetworkSecurityGroup $nsg -Name ssl-rule -Description "Allow SSL" -Access Allow -Protocol Tcp -Direction Inbound -Priority 100 -SourceAddressPrefix Internet -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 443
Set-AzNetworkSecurityGroup -NetworkSecurityGroup $newNSG

托管 Azure VM 的要求

端口 5985(基于 HTTP 的 WinRM)必须打开,并具有活动的侦听器。 可以在 Azure Cloud Shell 中使用以下代码来更新托管节点。 $ResourceGroupName$Name 使用与部署脚本相同的变量,但你需要使用特定于所管理的 VM 的 $Credential

Enable-AzVMPSRemoting -ResourceGroupName $ResourceGroupName -Name $Name
Invoke-AzVMCommand -ResourceGroupName $ResourceGroupName -Name $Name -ScriptBlock {Set-NetFirewallRule -Name WINRM-HTTP-In-TCP-PUBLIC -RemoteAddress Any} -Credential $Credential
Invoke-AzVMCommand -ResourceGroupName $ResourceGroupName -Name $Name -ScriptBlock {winrm create winrm/config/Listener?Address=*+Transport=HTTP} -Credential $Credential

在现有 Azure 虚拟机上手动部署

在所需网关 VM 上安装 Windows Admin Center 前,请安装用于 HTTPS 通信的 SSL 证书,也可以选择使用由 Windows Admin Center 生成的自签名证书。 但是,如果选择后一个选项,则尝试从浏览器进行连接时会收到警告。 可以绕过此警告,方法如下:在 Edge 中,单击“详细信息”>“转到网页”;在 Chrome 中,选择“高级”>“转到 [网页]”。 建议仅对测试环境使用自签名证书。

注意

这些说明适用于在具有桌面体验的 Windows Server 上安装,而不适用于 Server Core 安装。

  1. 将 Windows Admin Center 下载到本地计算机。

  2. 与 VM 建立远程桌面连接,然后从本地计算机复制 MSI 并将其粘贴到 VM 中。

  3. 双击 MSI 开始安装,并按照向导中的说明进行操作。 请注意以下事项:

    • 默认情况下,安装程序使用建议的端口 443 (HTTPS)。 如果要选择其他端口,则请注意,还需要在防火墙中打开该端口。

    • 如果已在 VM 上安装 SSL 证书,请确保选择该选项并输入指纹。

  4. 启动 Windows Admin Center 服务(运行 C:/Program Files/Windows Admin Center/sme.exe)

详细了解如何部署 Windows Admin Center。

配置网关 VM 以启用 HTTPS 端口访问:

  1. 导航到 Azure 门户中的 VM,然后选择“网络”

  2. 选择“添加入站端口规则”,然后在“服务”下选择“HTTPS”

注意

如果选择了默认端口 443 之外的端口,请选择“服务”下的“自定义”,然后在“端口范围”下输入步骤 3 中选择的端口

访问安装在 Azure VM 上的 Windows Admin Center 网关

此时,应该能够通过导航到网关 VM 的 DNS 名称,从本地计算机上的新式浏览器(Edge 或 Chrome)访问 Windows Admin Center。

注意

如果选择了 443 之外的端口,则可以通过导航到 https://<DNS name of your VM>:<custom port> 来访问Windows Admin Center

尝试访问 Windows Admin Center 时,浏览器将提示输入凭据,以便访问安装了 Windows Admin Center 的虚拟机。 此处需要输入虚拟机的“本地用户”或“本地管理员”组中的凭据。

为了在 VNet 中添加其他 VM,请通过在目标 VM 上的 PowerShell 或命令提示符中运行以下命令,确保 WinRM 正在目标 VM 上运行:winrm quickconfig

如果尚未将 Azure VM 加入域,则该 VM 的行为类似于工作组中的服务器,因此你需要确保考虑在工作组中使用 Windows Admin Center 的因素。