SQL Server:如何通过链接服务器启用/重新配置xp_cmdshell

时间:2014-10-16 06:57:15

标签: sql sql-server xp-cmdshell

所以我想通过链接服务器启用xp_cmdshell。 这是我的尝试:

set @execute = 'exec '+'['+@server_ip+']'+'.master..sp_configure ''xp_cmdshell'', 1;'
set @reconfigure = 'exec '+'['+@server_ip+']'+ 'reconfigure'

exec sp_executesql @execute
exec sp_executesql @reconfigure

我必须运行reconfigure命令,因为收到此消息:

'配置选项'xp_cmdshell'从0更改为1.运行RECONFIGURE语句进行安装。'

重新配置部分不起作用。我不知道如何通过链接服务器激活重新配置命令。谢谢!

2 个答案:

答案 0 :(得分:1)

第二个命令输入错误,产生exec [10.10.10.10]reconfigure。这是执行命令的错误方法。 RECONFIGURE是一个与EXEC类似的命令,因此您无法像调用存储过程一样调用它

要在链接服务器上执行命令,您需要使用EXEC ... AT linked_server_name syntax

EXEC ('RECONFIGURE') AT my_server_name

答案 1 :(得分:0)

为什么不把它们放在同一个会话中?

set @execute = 'exec '+'['+@server_ip+']'+'.master..sp_configure ''xp_cmdshell'', 1; exec '+'['+@server_ip+']'+ 'reconfigure'

exec sp_executesql @execute