如何修复在Microsoft Azure中“虚拟机防火墙打开,关闭RDP的连接端口”问题

注:下列步骤并不一定适用所有场景,提供思路,请灵活应用

我们在使用Microsoft Azure 中Windows 虚拟机,有时会发生错误打开防火墙或一些管家软件错误的关闭了“远程桌面” ,会发生无法再次使用MSTSC.exe 连接到虚拟机的情况。

在下面的步骤中我假定无法RDP的虚拟机名字为VM01, 管理员为Azureuser, 密码为Password, Cloud Service 名为vm01.chinacloudapp.cn

  1. 在Azure管理网站上创建新的VM (ExtraSmall), 机器名RecoverVM, 用户名 为Azureuser 密码为Password, 放入同一个Cloud service下面。 如 vm01.chinacloudapp.cn

  2. 远程桌面访问 RecoverVM, RDP 端口为vm01.chinacloudapp.cn : xxxxx

  3. (关键) RecoverVM内打开REGEDIT,
    使用远程注册表连接到vm01, (可以打开的,原因a. 同一个cloud service下的VM在IP层面是互联互通的,b. Windows中,相同用户名,相同密码在工作组级别是相同安全级别的)

    增加注册表项 
    \VM01\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run  
    EnableRDP:  C:\Windows\RemoteDesktopEnabler.cmd (REG_SZ)

    增加注册表项 
    \VM01\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon               
    AutoAdminLogon : 0x1  (REG_DWORD)
    DefaultUsername: Azureuser (REG_SZ)               
    DefaultPassword: Password (REG_SZ)

  4. (关键)在recoveryvm  用notepad.exe 生成RemoteDesktopEnabler.cmd 复制到 \\vm01\c$\windows

  5. 生成 RemoteDesktopEnabler.cmd 仅适用于英文和简体中文的Windows , Vista 和以上的版本 附件

     ::0.Enable Fileshare/WinRM
    
     netsh advfirewall Firewall set rule group="Remote Administration" new enable=yes
    
     netsh advfirewall Firewall set rule group="Windows Remote Management" new enable=yes
    
     netsh advfirewall Firewall set rule group="File and Printer Sharing" new enable=yes
    
     netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
    
     netsh advfirewall firewall set rule group="远程桌面" new enable=yes
    
     netsh advfirewall firewall set rule group="远程管理" new enable=yes
    
     netsh advfirewall firewall set rule group="Windows 远程管理" new enable=yes
    
     netsh advfirewall firewall set rule group="文件和打印机共享" new enable=yes
    
     ::2 Enable RDP/RDP Firewall
    
     REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
    
  6. 回到management.windowsazure.cn管理网站,重新启动VM01

  7. 等待5~10分钟,使用RDP vm01.chinacloudapp.cn:xxxx

检查一下故障是否解决

后续工作及说明

  1. 第3步中加入注册表的明文密码,如果担心将来管理不安全,可以去掉,使用Control userpasswords2 来设置自动logon可以不在注册表内写明文的密码
  2. 如果第3步(注册表修改),第4步(文件添加)无法执行,(可能情况,防火墙关闭了所有的端口)。我们可以这样操作。把虚拟机在管理网站中删除(保留磁盘方式)用Recover
    VM加载数据盘方式对 VM01的系统盘进行离线修改。
  3. 使用上述步骤后,将来再次关错防火墙,只要重启一下机器, 虚拟机就可以解决这个问题。

本文转载自:https://blogs.msdn.com/b/cciccat/archive/2014/06/03/windows-azure-rdp.aspx