设置云主机自动开启远程桌面端口

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

我们在使用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步(文件添加)无法执行,(可能情况,防火墙关闭了所有的端口)。我们可以这样操作。把虚拟机在管理网站中删除(保留磁盘方式)用RecoverVM加载数据盘方式对 VM01的系统盘进行离线修改。
  • 使用上述步骤后,将来再次关错防火墙,只要重启一下机器, 虚拟机就可以解决这个问题。

添加windows计划任务

  • 创建后缀名为.com的文件,文件名随意,你认识就好,添加下列代码
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
  • 打开控制面板-管理工具-任务计划程序,设置一个开机启动任务,设置不登录也执行,设置好管理员帐号和密码,指定上面的.com文件程序

这样开机就自动打开远程桌面端口了,在也不必担心防火墙被重置默认设置而担心了。