适用于:✔️ Windows VM
注意
本文有帮助吗? 你的输入对我们很重要。 请使用此页上的 “反馈 ”按钮告诉我们本文为你工作得有多好,或者我们如何改进它。
如果无法连接到 Windows 虚拟机(VM),可以使用 VMAccess 扩展重置远程桌面服务和凭据。 使用以下任一方法执行此作:
如果使用 PowerShell,请确保 已安装并配置了最新的 PowerShell 模块 ,并且已登录到 Azure 订阅。 还可以对 使用经典部署模型创建的 VM 执行这些步骤。
注意
本文中的步骤不适用于 Windows 域控制器。
重要
新功能! 请尝试使用 VM 协助解决首要问题。 建议您运行 适用于 Windows 的 VM 助手 或 适用于 Linux 的 VM 助手。 这些基于脚本的诊断工具可帮助你识别影响 Azure VM 来宾代理和整体 VM 运行状况的常见问题。
如果在 VM 上遇到性能问题,请先运行这些工具,然后再联系Microsoft支持部门。
使用 Azure 门户重置
登录到 Azure 门户,打开左侧菜单,然后选择 “虚拟机”。
重置本地管理员帐户密码
选择 Windows VM,打开 “帮助 ”菜单,然后选择“ 重置密码”。 此时会显示“重置密码”窗口。
选择“重置密码”,输入用户名和密码,然后选择“更新”。
提示
如果输入的名称与 VM 上的当前本地管理员帐户不同,则 VMAccess 扩展会添加使用该名称的本地管理员帐户。 然后,它将指定的密码分配给该帐户。 如果 VM 上的本地管理员帐户存在,则 VMAccess 扩展会重置密码。 如果帐户已禁用,VMAccess 扩展会启用它。
请重试连接到您的虚拟机。
重置远程桌面服务配置
此过程在 VM 中启用远程桌面服务,并为默认 RDP 端口 3389 创建防火墙规则。
选择 Windows VM,打开 “帮助 ”菜单,然后选择“ 重置密码”。 “ 重置密码 ”窗口随即打开。
仅选择“重置配置”,然后选择“更新”。
请重试连接到虚拟机。
使用 Azure PowerShell 重置
确保 已安装并配置了最新的 PowerShell 模块 ,并使用 Connect-AzAccount cmdlet 登录到 Azure 订阅。
重置本地管理员帐户密码
通过运行 Set-AzVMAccessExtension PowerShell cmdlet 重置管理员密码或用户名。 该
typeHandlerVersion设置必须是版本 2.0 或更高版本,因为版本 1 已弃用。$SubID = "<SUBSCRIPTION ID>" $RgName = "<RESOURCE GROUP NAME>" $VmName = "<VM NAME>" Connect-AzAccount Select-AzSubscription -SubscriptionId $SubID Set-AzVMAccessExtension -ResourceGroupName $RgName -VMName $VmName -Credential (get-credential) -typeHandlerVersion "2.0" -Name VMAccessAgent
重置远程桌面服务配置
通过运行 Set-AzVMAccessExtension PowerShell cmdlet 重置对 VM 的远程访问。 以下示例重置资源组中的 VM 上名为
VMAccessAgent的访问扩展:$SubID = "<SUBSCRIPTION ID>" $RgName = "<RESOURCE GROUP NAME>" $VmName = "<VM NAME>" Connect-AzAccount Select-AzSubscription -SubscriptionId $SubID Set-AzVMAccessExtension -ResourceGroupName $RgName -VMName $VmName -Name VMAccessAgent -typeHandlerVersion "2.0" -ForceRerun $true提示
在任何时候,VM 只能有一个 VM 访问代理。 若要设置 VM 访问代理属性,请使用
-ForceRerun选项。 使用-ForceRerun时。 请确保对前面任何命令中使用的 VM 访问代理使用相同的名称。
如果仍无法远程连接到 VM,请参阅 排查与基于 Windows 的 Azure 虚拟机的远程桌面连接问题。 如果失去与 Windows 域控制器的连接,请从域控制器备份还原它。
故障排除和支持
错误消息
| 错误 | Description |
|---|---|
| {“innererror”: {“internalErrorCode”: “CannotModifyExtensionsWhenVMNotRunning”}, “code”: “OperationNotAllowed”,“message”: “在 VM 未运行时无法修改 VM 中的扩展。”} | 此错误表明,由于 VM 未运行,不允许修改 VM 中的扩展操作。 若要解决此问题,请确保 VM 在尝试修改扩展之前正在运行。 |
| VM 报告了处理扩展“enablevmAccess”(发布者“Microsoft.Compute”和类型“VMAccessAgent”)时失败。 错误消息:“VMAccess 扩展不支持域控制器。”。 有关故障排除的更多信息,请访问 https://aka.ms/vmextensionwindowstroubleshoot。 | 此错误表示 VM 扩展“enablevmAccess”失败,因为它不支持域控制器。 若要解决此问题,请确保使用此扩展时 VM 未配置为域控制器。 有关更多信息,请参阅在 Windows 虚拟机中重置远程桌面服务或其管理员密码。 |
| 虚拟机 "vmname" 尚未报告虚拟机代理或扩展的状态。 验证 OS 是否正在运行且正常运行,是否具有正在运行的 VM 代理,并且可以建立到 Azure 存储的出站连接。 有关详细信息,请参阅 https://aka.ms/vmextensionwindowstroubleshoot VM 代理故障排除信息。 | 若要排查此错误,请参阅 故障排除清单。 |
| VM 报告了处理扩展“enablevmAccess”(发布者“Microsoft.Compute”和类型“VMAccessAgent”)时失败。 错误消息:“无法更新管理员帐户的远程桌面连接设置。 错误:System.Reflection.TargetInvocationException:调用的目标已引发异常。 >--- System.Runtime.InteropServices.COMException:密码不符合密码策略要求。 检查最低密码长度、密码复杂性和密码历史记录要求。 --- End of inner exception stack trace --- 在 System.DirectoryServices.DirectoryEntry.Invoke(String methodName,Object[] args)在 Microsoft.WindowsAzure.GuestAgent.Plugins.WindowsUser.SetPassword(SecureString password,Boolean expirePassword)在 Microsoft.WindowsAzure.GuestAgent.Plugins.RemoteAccessAccountManager.AddOrUpdateRemoteUserAccount(String userName,SecureString password,Boolean expirePassword)在 Microsoft.WindowsAzure.GuestAgent.Plugins.JsonExtensions.VMAccess.VMAccessExtension.OnEnable()'。 有关故障排除的更多信息,请访问 https://aka.ms/vmextensionwindowstroubleshoot.。 | 此错误表示 VM 扩展“enablevmAccess”由于密码策略冲突而无法更新管理员帐户的远程桌面连接设置。 若要解决此问题,请确保密码满足 Windows 密码策略要求,包括最短长度、复杂性和历史记录。 有关更多信息,请参阅对虚拟机扩展进行故障排除。 |
| VM 报告了处理扩展“enablevmAccess”(发布者“Microsoft.Compute”和类型“VMAccessAgent”)时失败。 错误消息:“如果提供用户名,管理员用户帐户密码不能为 null 或为空。 有关故障排除的更多信息,请访问 https://aka.ms/vmextensionwindowstroubleshoot。 | 此错误表示 VM 扩展“enablevmAccess”失败,因为未提供管理员用户帐户密码。 若要解决此问题,请确保为管理员用户帐户指定非 null 和非空密码。 |
| 虚拟机扩展 enablevmaccess 的预配已超时。完成扩展预配花费的时间过长。 扩展未报告任何消息。 | 此错误消息指示 VM 扩展“enablevmaccess”的预配超时,因为完成时间过长。 此外,扩展在此过程中未提供任何状态消息。 若要解决此问题,请考虑检查 VM 的性能和网络条件,然后重试预配作。 有关更多信息,请参阅 对 Azure Windows 虚拟机扩展故障进行故障排除。 |
| VM 报告了处理扩展“enablevmAccess”(发布者“Microsoft.Compute”和类型“VMAccessAgent”)时失败。 错误消息:“无法更新管理员帐户的远程桌面连接设置。 错误:System.Exception:用户帐户 scsadmin 已存在,但无法更新,因为它不在管理员组中。 at Microsoft.WindowsAzure.GuestAgent.Plugins.RemoteAccessAccountManager.AddOrUpdateRemoteUserAccount(String userName,SecureString password,Boolean expirePassword)at Microsoft.WindowsAzure.GuestAgent.Plugins.JsonExtensions.VMAccess.VMAccessExtension.OnEnable()。 有关故障排除的更多信息,请访问 https://aka.ms/vmextensionwindowstroubleshoot。 | 此错误表示 VM 扩展“enablevmAccess”失败,因为用户帐户“scsadmin”已存在,但不在管理员组中。 若要解决此问题,请确保用户帐户已添加到管理员组。 |
| VM 在处理扩展“enablevmaccess”(发布者“Microsoft.Compute”和类型“VMAccessAgent”)时报告了失败。 错误消息:“无法更新管理员帐户的远程桌面连接设置。 错误:System.Runtime.InteropServices.COMException (0x800708C5):密码不符合密码策略要求。 检查最低密码长度、密码复杂性和密码历史记录要求。 at System.DirectoryServices.DirectoryEntry.CommitChanges() at Microsoft.WindowsAzure.GuestAgent.Plugins.WindowsUser.SetPassword(SecureString password, Boolean expirePassword) at Microsoft.WindowsAzure.GuestAgent.Plugins.WindowsUserManager.CreateUserInGroup(String userName, SecureString password, Boolean expirePassword, String[] groups) at Microsoft.WindowsAzure.GuestAgent.Plugins.RemoteAccessAccountManager.AddOrUpdateRemoteUserAccount(String userName, SecureString password, Boolean expirePassword) at Microsoft.WindowsAzure.GuestAgent.Plugins.JsonExtensions.VMAccess.VMAccessExtension.OnEnable()。 有关故障排除的更多信息,请访问 https://aka.ms/vmextensionwindowstroubleshoot。 | 此错误消息表明,由于更新管理员帐户的远程桌面连接设置出现问题,VM 无法处理“enablevmaccess”扩展。 具体错误与密码不满足策略要求(例如最小长度、复杂性和历史记录)相关。 若要解决此问题,请确保密码符合所需的策略标准。 有关更多信息,请参阅对虚拟机扩展进行故障排除。 |
| {“innererror”: {“internalErrorCode”: “MultipleExtensionsPerHandlerNotAllowed”}, “code”: “BadRequest”,“message”: “操作系统类型 'Windows' 不支持每个处理程序的多个 VMExtensions。 VMExtension “enablevmaccess”,处理程序“Microsoft.Compute.VMAccessAgent”已在输入中添加或指定。“} | 此错误消息指示 OS 类型“Windows”不支持每个处理程序的多个 VM 扩展。 已在输入中添加或指定了处理程序“Microsoft.Compute.VMAccessAgent”的“enablevmaccess”扩展。 要解决此问题,请确保为虚拟机配置每个处理程序仅一个扩展。 可以使用以下 PowerShell cmdlet 手动删除扩展,然后重试该作: Remove-AzVMExtension -ResourceGroupName "ResourceGroup11" -Name "ExtensionName" -VMName "VirtualMachineName" |
后续步骤
如果 Azure VM 访问扩展未安装,则可以 排查 VM 扩展问题。
如果无法使用 VM 访问扩展重置密码,则可以 脱机重置本地 Windows 密码。 这是一个较高级的方法,需要将有问题的 VM 的虚拟硬盘连接到另一个 VM。 首先遵循本文中所述的步骤。 如果这些步骤不起作用,请尝试脱机密码重置方法。
联系我们寻求帮助
如果有疑问,可以询问 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区。