Mssql执行命令备忘录

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;