本文介绍如何在 Azure VM 中手动部署 Windows Admin Center,以便用于管理多个 Azure VM。 若要管理单个 VM,请改用 Azure 门户中内置的 Windows Admin Center 功能,如 在 Azure 门户中使用 Windows Admin Center 中所述。
使用脚本进行部署
可以从 Azure Cloud Shell 下载 Deploy-WACAzVM.ps1 以在 Azure 中设置 Windows Admin Center 网关。 此脚本可以创建整个环境,包括资源组。
先决条件
- 在 Azure Cloud Shell 中设置帐户。 如果这是你第一次使用 Cloud Shell,系统会要求你将 Azure 存储帐户与 Cloud Shell 相关联或创建。
- 在 PowerShell Cloud Shell 中,导航到主目录:
PS Azure:\> cd ~
- 若要上传
Deploy-WACAzVM.ps1
文件,请将其从本地计算机拖放到 Cloud Shell 窗口的任意位置。
如果指定自己的证书:
- 将证书上传到 Azure Key Vault。 首先,在 Azure 门户中创建密钥保管库,然后将证书上传到密钥保管库。 或者,可以使用 Azure 门户为你生成证书。
脚本参数
ResourceGroupName - [String] 指定将在其中创建 VM 的资源组的名称。
名称 - [字符串] 指定 VM 的名称。
凭据 - [PSCredential] 指定 VM 的凭据。
MsiPath - [字符串] 指定在现有 VM 上部署 Windows Admin Center 时 Windows Admin Center MSI 的本地路径。 如果省略,则默认为 https://aka.ms/WACDownload 中的版本。
VaultName - [String] 指定包含证书的密钥保管库的名称。
CertName - [String] 指定要用于 MSI 安装的证书的名称。
GenerateSslCert - [Switch] 如果 MSI 应生成自签名 ssl 证书,则其值为 True。
PortNumber - [int] 指定 Windows Admin Center 服务的 SSL 端口号。 如果省略,则默认为 443。
OpenPorts - [int[]] 指定 VM 的打开端口。
Location - [String] 指定 VM 的位置。
Size - [String] 指定 VM 的大小。 如果省略,则默认为“Standard_DS1_v2”。
映像 - [字符串] 指定 VM 的映像。 如果省略,则默认为“Win2016Datacenter”。
VirtualNetworkName - [字符串] 指定 VM 的虚拟网络的名称。
SubnetName - [String] 指定 VM 的子网的名称。
SecurityGroupName - [String] 指定 VM 安全组的名称。
PublicIpAddressName - [String] 指定 VM 的公共 IP 地址的名称。
InstallWACOnly - [Switch] 设置为 True(如果 WAC 应在预先存在的 Azure VM 上安装)。
有 2 种不同选项可供 MSI 部署和用于 MSI 安装的证书。 可以从 aka.ms/WACDownload 下载 MSI,或者,如果部署到现有 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(WinRM over HTTP)必须处于打开状态,并且具有活动的侦听器。
可以使用以下 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 生成的自签名证书。 但是,如果选择后一个选项,则尝试从浏览器进行连接时,将收到警告。 可以通过单击 “详细信息 > 转到网页 ”或在 Chrome 中通过选择 “高级 > 继续”转到 [网页]来绕过 Edge 中的此警告。 建议仅对测试环境使用自签名证书。
注释
这些说明适用于在具有桌面体验的 Windows Server 上安装,而不是在 Server Core 安装上安装。
将 Windows Admin Center 下载 到本地计算机。
建立与 VM 的远程桌面连接,然后从本地计算机复制 MSI 并粘贴到 VM。
双击MSI开始安装,然后按照向导中的提示操作。 请注意以下事项:
默认情况下,安装程序使用建议的端口 443(HTTPS)。 如果要选择其他端口,请注意,还需要在防火墙中打开该端口。
如果已在 VM 上安装 SSL 证书,请确保选择该选项并输入指纹。
启动 Windows Admin Center 服务(运行 C:/Program Files/Windows Admin Center/sme.exe)
详细了解如何部署 Windows Admin Center。
配置网关 VM 以启用 HTTPS 端口访问:
在 Azure 门户中导航到 VM 并选择 “网络”。
选择“添加入站端口规则”,然后选择“服务”下的“HTTPS”。
注释
如果选择了默认 443 以外的端口,请选择“服务”下的 “自定义 ”,并在“端口范围”下输入在步骤 3 中选择 的端口。
访问安装在 Azure VM 上的 Windows Admin Center 网关
现在,应该可以从本地计算机上使用现代浏览器(Edge 或 Chrome)访问 Windows 管理中心,只需导航至网关 VM 的 DNS 名称即可。
注释
如果选择了不是 443 的端口,则可以通过导航到 https://<您的 VM 的 DNS 名称>:<自定义端口> 来访问 Windows 管理中心。
尝试访问 Windows Admin Center 时,浏览器将提示输入凭据以访问安装了 Windows Admin Center 的虚拟机。 在这里,需要输入虚拟机的“本地用户”或“本地管理员”组中的凭据。
若要在 VNet 中添加其他 VM,请在 PowerShell 中运行以下命令或目标 VM 上的命令提示符,确保 WinRM 在目标 VM 上运行: winrm quickconfig
如果您尚未将 Azure VM 域连接,则该 VM 的行为会类似于工作组中的服务器,因此您需要确保注意 在工作组中使用 Windows Admin Center。