脱机重置 Azure VM 的本地 Windows 密码

适用于:✔️ Windows VM

如果已安装 Azure 来宾代理,可以使用 Azure 门户或 Azure PowerShell 重置 Azure 中 VM 的本地 Windows 密码。 此方法是重置 Azure VM 密码的主要方法。 如果遇到了 Azure 来宾代理无响应的问题,或者上传自定义映像后无法安装,可以手动重置 Windows 密码。 本文详细说明如何通过将源 OS 虚拟磁盘附加到另一个 VM 来重置本地帐户密码。 本文所述的步骤不适用于 Windows 域控制器。

警告

只有在万不得已的情况下才使用此过程。 始终应该先尝试使用 Azure 门户或 Azure PowerShell 重置密码。

过程概述

无法访问 Azure 来宾代理时,针对 Azure 中的 Windows VM 执行本地密码重置的核心步骤如下:

  1. 停止受影响的 VM。
  2. 为 VM 的 OS 磁盘创建快照。
  3. 从快照创建 OS 磁盘的副本。
  4. 将复制的 OS 磁盘附加并装载到另一个 Windows VM,然后在该磁盘上创建一些配置文件。 这些文件将帮助你重置密码。
  5. 从故障排除 VM 中卸载并拆离复制的 OS 磁盘。
  6. 交换受影响 VM 的 OS 磁盘。

带有 Resource Manager 部署的 VM 的详细步骤

注意

这些步骤不适用于 Windows 域控制器。 仅适用于独立服务器或域成员服务器。

在执行以下步骤之前,始终应该尝试使用 Azure 门户或 Azure PowerShell 来重置密码。 在开始之前,请确保备份 VM。

  1. 为受影响 VM 的 OS 磁盘制作快照、从快照创建一个磁盘,然后将该磁盘附加到故障排除 VM。 有关详细信息,请参阅通过使用 Azure 门户将 OS 磁盘附加到恢复 VM 来对 Windows VM 进行故障排除

  2. 使用远程桌面连接到故障排除 VM。

  3. \Windows\System32\GroupPolicy源 VM 的驱动器上创建gpt.ini(如果存在gpt.ini,请重命名为gpt.ini.bak):

    警告

    切勿在 C:\Windows(故障排除 VM 的 OS 驱动器)中意外创建以下文件。 应该在源 VM 的、作为数据磁盘附加的 OS 驱动器中创建以下文件。

    将以下代码行添加到创建的 gpt.ini 文件中:

    [General]
    gPCFunctionalityVersion=2
    gPCMachineExtensionNames=[{42B5FAAE-6536-11D2-AE5A-0000F87571E3}{40B6664F-4972-11D1-A7CA-0000F87571E3}]
    Version=1
    

    屏幕截图显示对gpt.ini文件的更新。

  4. \Windows\System32\GroupPolicy\Machine\Scripts\ 中创建 scripts.ini 确保显示隐藏的文件夹和文件扩展名。 如果需要,请创建 MachineScripts 文件夹。

    将以下代码行添加到创建的 scripts.ini 文件:

    [Startup]
    0CmdLine=FixAzureVM.cmd
    0Parameters=
    

    屏幕截图显示对script.ini文件的更新。

  5. \Windows\System32\GroupPolicy\Machine\Scripts\Startup\ 中创建包含以下内容的 FixAzureVM.cmd,将 <username><newpassword> 替换为自己的值:

    net user <username> <newpassword> /add /Y
    net localgroup administrators <username> /add
    net localgroup "remote desktop users" <username> /add
    

    屏幕截图显示了新创建的FixAzureVM.cmd文件,可在其中更新用户名和密码。

    定义新密码时,必须符合针对 VM 配置的密码复杂性要求。

  6. 在 Azure 门户中,从故障排除 VM 中拆离该磁盘。

  7. 更改受影响 VM 的 OS 磁盘

  8. 运行新 VM 后,使用在 FixAzureVM.cmd 脚本中指定的新密码通过远程桌面连接到该 VM。

  9. 在与新 VM 建立的远程会话中,删除以下文件以清理环境:

    • 从 %windir%\System32\GroupPolicy\Machine\Scripts\Startup
      • 删除 FixAzureVM.cmd
    • 来自 %windir%\System32\GroupPolicy\Machine\Scripts
      • 删除 scripts.ini
    • 来自 %windir%\System32\GroupPolicy
      • 删除 gpt.ini(如果 gpt.ini 事先已存在并已重命名为 gpt.ini.bak,请将 .bak 文件改回 gpt.ini)

后续步骤

如果仍然无法使用远程桌面建立连接,请参阅 RDP 故障排除指南详细的 RDP 故障排除指南探讨的是故障排除方法而不是具体的步骤。 也可以通过提出 Azure 支持请求来获得人工协助。

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区