如何在使用经典部署模型创建的 Windows VM 中重置远程桌面服务或其登录密码

重要

经典 VM 将于 2023 年 3 月 1 日停用。

如果从 ASM 使用 IaaS 资源,请在 2023 年 3 月 1 日之前完成迁移。 我们建议你尽快进行切换,以利用 Azure 资源管理器中的许多增强功能。

有关详细信息,请参阅在 2023 年 3 月 1 日之前将 IaaS 资源迁移到 Azure 资源管理器

注意

Azure 具有用于创建和处理资源的两个不同的部署模型:资源管理器部署模型和经典部署模型。 本文介绍如何使用经典部署模型。 Microsoft 建议大多数新部署使用资源管理器模型。 还可对使用 Resource Manager 部署模型创建的 VM 执行这些步骤

自 2017 年 11 月 15 日起,仅在 Azure 门户中提供虚拟机。

如果无法连接到 Windows 虚拟机 (VM),可以重置本地管理员密码或远程桌面服务配置。 可以使用 Azure 门户或 Azure PowerShell 中的 VM 访问扩展重置密码。

重置配置或凭据的方式

可以根据需要,通过多种不同的方式重置远程桌面服务和凭据:

Azure 门户

可使用 Azure 门户重置远程桌面服务。 要展开门户菜单,请单击左上角的三栏,并单击“虚拟机(经典)”

浏览 Azure VM

选择 Windows 虚拟机,然后单击“ 重置远程...”。将显示以下对话框以重置远程桌面配置:

重置 RDP 配置页

还可以重置本地管理员帐户的用户名和密码。 在 VM 中,单击“支持 +重置密码故障排除>”。 此时会显示密码重置边栏选项卡:

密码重置页

输入新用户名和密码,并单击“保存”。

VMAccess 扩展和 PowerShell

确保在虚拟机上安装 VM 代理。 只要 VM 代理可用,就不需要事先安装 VMAccess 扩展。 使用以下命令验证是否已在虚拟机上安装 VM 代理。 (将“myCloudService”和“myVM”分别替换为云服务和 VM 的名称。可以通过在没有任何 parameters 的情况下运行 Get-AzureVM 来了解这些名称。)

$vm = Get-AzureVM -ServiceName "myCloudService" -Name "myVM"
write-host $vm.VM.ProvisionGuestAgent

如果 write-host 命令显示 True,则已安装 VM 代理。 如果该命令显示 False,请参阅 Azure 博客文章 VM 代理和扩展 - 第 2 部分中的说明和下载链接。

如果虚拟机是使用门户创建的,请检查 $vm.GetInstance().ProvisionGuestAgent 是否返回 True。 如果不是,请使用以下命令进行设置:

$vm.GetInstance().ProvisionGuestAgent = $true

此命令可防止在后续步骤中运行 Set-AzureVMExtension 命令时出现以下错误:“在设置 IaaS VM Access 扩展前,必须对 VM 对象启用预配来宾代理。”

重置本地管理员帐户密码

使用当前的本地管理员帐户名和新密码创建登录凭据,并运行 Set-AzureVMAccessExtension,如下所示。

$cred=Get-Credential
Set-AzureVMAccessExtension –vm $vm -UserName $cred.GetNetworkCredential().Username `
    -Password $cred.GetNetworkCredential().Password  | Update-AzureVM

如果键入的名称与当前帐户不同,则 VMAccess 扩展将重命名本地管理员帐户,将密码分配给该帐户,并颁发远程桌面注销。如果禁用本地管理员帐户,VMAccess 扩展会启用它。

这些命令也重置远程桌面服务配置。

重置远程桌面服务配置

若要重置远程桌面服务配置,请运行以下命令:

Set-AzureVMAccessExtension –vm $vm | Update-AzureVM

VMAccess 扩展在虚拟机上运行两个命令:

netsh advfirewall firewall set rule group="Remote Desktop" new enable=Yes

此命令启用允许传入远程桌面流量的内置 Windows 防火墙组,该组使用 TCP 端口 3389。

Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -Value 0

此命令将 fDenyTSConnections 注册表值设为 0,以启用远程桌面连接。

后续步骤

如果 Azure VM 访问扩展无响应,并且密码无法重置,可以脱机重置本地 Windows 密码。 此方法是一个较高级的过程,要求将有问题的 VM 的虚拟硬盘连接到另一个 VM。 请先遵循本文中所述的步骤,在万不得已的情况下,才尝试脱机重置密码的方法。

Azure VM 扩展和功能

使用 RDP 或 SSH 连接到 Azure 虚拟机

排查与基于 Windows 的 Azure 虚拟机的远程桌面连接问题