1.开启xp_cmdshell
出于安全考虑2005及以上版本的SQL Server阻止了对组件xp_cmdshell
的过程 'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。但是系统管理员可以通过使用sp_configure
启用 xp_cmdshell
。
EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE; //以sa权限执行,如果支持多句执行复制到一行执行也可以
2.操作远程桌面
2.1 查看是否开启远程桌面
EXEC master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\Terminal Server','fDenyTSConnections'
- 1表示关闭
- 0表示开启
2.2 读取远程桌面端口
EXEC master..xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp','PortNumber'
2.3 开启远程桌面
2.3.1 使用sqlServer开启
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\TerminalServer','fDenyTSConnections','REG_DWORD',0;
2.3.2 reg文件开启
#保存为 xxxx.reg,并执行 regedit /s xxxx.reg Windows Registry Editor Version 5.00HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer] "fDenyTSConnections"=dword:00000000[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp] "PortNumber"=dword:00000d3d
2.3.3 配置防火墙规则允许远程端口
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
2.4 关闭远程桌面
EXEC master.dbo.xp_regwrite'HKEY_LOCAL_MACHINE','SYSTEM\CurrentControlSet\Control\TerminalServer','fDenyTSConnections','REG_DWORD',1;