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

重要

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

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

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

注释

Azure 具有用于创建和处理资源的两个不同的部署模型:资源管理器部署模型和经典部署模型。 本文介绍如何使用经典部署模型。 Microsoft 建议大多数新部署使用 Resource Manager 模型。 还可以 对使用 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 的名称。可以通过在没有任何参数的情况下运行 Get-AzureVM 来了解这些名称。

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

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

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

$vm.GetInstance().ProvisionGuestAgent = $true

在后续步骤中运行 Set-AzureVMExtension 命令时,此命令会阻止以下错误:“设置 IaaS VM 访问扩展之前,必须在 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 虚拟机的远程桌面连接问题