如何修复在Microsoft Azure中“虚拟机防火墙打开,关闭RDP的连接端口”问题
注:下列步骤并不一定适用所有场景,提供思路,请灵活应用
我们在使用Microsoft Azure 中Windows 虚拟机,有时会发生错误打开防火墙或一些管家软件错误的关闭了“远程桌面” ,会发生无法再次使用MSTSC.exe 连接到虚拟机的情况。
在下面的步骤中我假定无法RDP的虚拟机名字为VM01, 管理员为Azureuser, 密码为Password, Cloud Service 名为vm01.chinacloudapp.cn
在Azure管理网站上创建新的VM (ExtraSmall), 机器名RecoverVM, 用户名 为Azureuser 密码为Password, 放入同一个Cloud service下面。 如 vm01.chinacloudapp.cn
远程桌面访问 RecoverVM, RDP 端口为vm01.chinacloudapp.cn : xxxxx
(关键) 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)(关键)在recoveryvm 用notepad.exe 生成RemoteDesktopEnabler.cmd 复制到 \\vm01\c$\windows
生成 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
回到management.windowsazure.cn管理网站,重新启动VM01
等待5~10分钟,使用RDP vm01.chinacloudapp.cn:xxxx
检查一下故障是否解决
后续工作及说明
- 第3步中加入注册表的明文密码,如果担心将来管理不安全,可以去掉,使用Control userpasswords2 来设置自动logon可以不在注册表内写明文的密码
- 如果第3步(注册表修改),第4步(文件添加)无法执行,(可能情况,防火墙关闭了所有的端口)。我们可以这样操作。把虚拟机在管理网站中删除(保留磁盘方式)用Recover
VM加载数据盘方式对 VM01的系统盘进行离线修改。 - 使用上述步骤后,将来再次关错防火墙,只要重启一下机器, 虚拟机就可以解决这个问题。