无法通过RDP访问Azure虚拟机

我去年在Azure上build立了一个Windows Server VM,在没有login几个月之后,我尝试login最近,奇怪的是它告诉我我的密码是不正确的。 我开始重置密码 ,但是即使它说成功了也不行。 我也尝试了这里介绍的方法,但是这也不起作用。

要清楚:

  • 我可以通过Powershell访问虚拟机,但是重置密码不起作用。
  • VM处于活动状态,IIS服务正常响应。
  • RDP已启用,服务正在响应并且正确的端口已打开。
  • 在连接和validation后,我得到“您的凭据没有工作”的消息。 甚至在重置密码之后(重复检查用户名并将密码复制到Powershell窗口重置,然后连接对话框)。
  • 我尝试将域名前缀(my-vm \ username)作为域名前缀,并以点(。\ username)作为前缀,没有任何内容(\ username)和完整的Azureconfiguration文件名称(myname.cloudapp.net \ username) 。
  • 用户名是一个纯粹的阿尔法用户名,没有curl那里。
  • 我已经尝试将其重置为的密码应该完全符合复杂性要求:将大小写,数字和通常在密码中find的非字母数字字符组合成长度超过8个字符。 另外,我检查了密码中没有用户名的一部分,密码也不是以前使用的密码(如果有区别的话)。

那么,这可能是什么原因呢? 我错过了什么? 有没有其他的步骤可以尝试重新获得这台机器? 现在是唯一一步分离磁盘并重新连接到一个新的虚拟机,并手动复制一切(我试图避免)?

检查虚拟机和本地计算机上的date和时间,确保所有设置都正确。 如果您手动设置了时钟并且它们不同步,则可能会导致validation问题。

好的,幸运的是我没有太急于login到这台机器,所以在过去的几个星期里,我一直在考虑其他的方法。如果有其他人有这个问题,这里有一个编译列表我已经想到或发现重新获得不响应的虚拟机的方式:

  • 根据我原来的问题中的链接重置密码(如果丢失密码,locking帐户,未知用户名等)。 这会将用户名更改为指定的用户名,设置密码并解锁帐户。 除非没有。
  • 远程安装VNC(例如,如果RDP服务中断) 。 如果密码正常工作,但由于某种原因您不能使用RDP。 如果使用此方法,请确保从证书存储中删除自签名证书。
  • 删除虚拟机(使用“保留现有的磁盘”),并重新创build虚拟机 ,重新连接旧的磁盘(例如,如果虚拟机configuration已损坏)
  • 删除虚拟机(保留磁盘) 并将磁盘连接到另一个Windows实例以检查磁盘完整性,扫描病毒等。使用分离的磁盘重新创build实例。
  • 删除虚拟机(保留磁盘), 并附加到Linux实例 (不要初始化磁盘,因为这个链接概述!!),然后使用离线Linux工具来修复任何问题。

我用最后一个方法来最终获得我的虚拟机。 下面是详细的步骤,因为我没有在别处看到它们:

  1. 创build一个新的低规格的Ubuntu机器在相同的地区作为故障的Windows之一。
  2. SSH到框中并发出以下命令:

sudo apt-get install chntpw

(如果需要,确认)

  1. 使用Azurepipe理门户将Windows VHD挂载到Linux VM,然后在控制台上input以下命令:

sudo grep SCSI / var / log / syslog

这会让你知道你的磁盘在/ dev目录下的位置:查找最后一个要挂载的磁盘,我的是sdc 。 如果你的Windows磁盘有一个主分区(比如我的VHD的C sdc1 ,那么你需要安装sdc1

sudo mkdir / mnt / win

sudo mount / dev / sdc1 / mnt / win

如果这是成功的,您现在应该能够通过input以下内容来查看您的Windows根文件夹:

ls -l / mnt / win

  1. 要使用我们安装的密码恢复工具(chntpw),我们需要将目录更改为主SAMregistryconfiguration单元所在的位置:

cd / mnt / win / Windows / System32 / config

(记得Linux是区分大小写的,即使在Windows驱动器上)

  1. 然后在SAMconfiguration单元上启动密码恢复工具:

sudo chntpw -i SAM

这将带你进入交互式密码工具和registry编辑器。 types? 要获得帮助, l在SAM文件中列出用户,您可以select一个用户,重置密码为空白,解锁账户等。这是相当自我解释。 重置密码很简单,但下一步更难!

完成更新用户帐户后,退出( q并将更改写回SAM文件

  1. 由于密码现在是空白的,并且Windows默认情况下不允许用于远程login的空白密码,所以还需要更改registry项以允许您在没有密码的情况下login。 为此,您需要加载另一个configuration单元,并使用chntpw中的内置registry编辑器(以下是一个有用的指南 ):

sudo chntpw -i SYSTEM

为registry编辑器select9 ,然后使用cd命令导航到正确的registry项并对其进行编辑:

cd CurrentControlSet

CD控制

CD Lsa

编辑LimitBlankPasswordUse

将值更改为0x0 ,然后按q退出并确保您将更改写入registryconfiguration单元。

现在键入sudo umount /dev/win然后注销SSH会话并closureslinux VM,并从Linux VM中分离Windows VHD 。

  1. 您现在准备从旧的VHD磁盘创build一个新的Azure虚拟机 ,然后穿过您的手指并启动机器。

请注意,这使虚拟机开放给任何人login,所以一旦虚拟机重新configuration和运行,您将需要立即login,设置一个新的安全密码,并通过regedit重新启用registry标志。 出于默默无闻的原因,您可能希望使用不同的Cloud Service名称创buildVM,以防现有用户在开始之前偶然遇到开放的RDP门。

祝你好运,任何发现自己处于这种状况的人,谢谢@IceMage的帮助!