+ -
当前位置:首页 → 问答吧 → 很奇怪的问题,xp_cmdshell命令失效,困惑很久,请大家帮忙

很奇怪的问题,xp_cmdshell命令失效,困惑很久,请大家帮忙

时间:2011-12-26

来源:互联网

-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

EXEC master.dbo.XP_CMDSHELL 'echo Hello World'

执行后一直直接返回NULL值。

xp_cmdshell命令已启用,不知是什么原因导致的?

作者: wangd1121   发布时间: 2011-12-26

补充:
有时尝试重启数据库或重启服务器后,xp_cmdshell命令可以恢复,但运行一段时间后,突然又会失效,没有规律。

作者: wangd1121   发布时间: 2011-12-26

SQL code
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

EXEC master.dbo.xp_cmdshell 'echo Hello World'

/*
output
------------
Hello World
NULL

(2 行受影响)

作者: ssp2009   发布时间: 2011-12-26

作者: ssp2009   发布时间: 2011-12-26

xp_cmdshell命令失效后的情况是直接返回NULL

EXEC master.dbo.XP_CMDSHELL 'dir c:'

EXEC master.dbo.xp_cmdshell 'echo Hello World'

/*比如上面2句的结果都是:
output
------------
NULL

(1 行受影响)

作者: wangd1121   发布时间: 2011-12-26

引用 3 楼 ssp2009 的回复:



已经启用,是运行一段时候后会失效。

作者: wangd1121   发布时间: 2011-12-26

我这里木有问题,你用的什么版本?。

作者: ssp2009   发布时间: 2011-12-26

SQL Server 2005 SP3 WINDOWS2003 R2

作者: wangd1121   发布时间: 2011-12-26

你每次启用完cmdshell命名就关闭了,启用它对数据库并不安全
SQL code
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

EXEC master.dbo.xp_cmdshell 'echo Hello World'

EXEC sp_configure 'xp_cmdshell', 0
GO
--重新配置
RECONFIGURE
GO
EXEC sp_configure 'show advanced options', 0
GO
-- 重新配置
RECONFIGURE
GO

作者: ssp2009   发布时间: 2011-12-26

其实我不太明白为何要用 XP_CMDSHELL 'echo Hello World',

实现同样的效果, 直接用 print 'Hello World' 不就ok了吗?

作者: ap0405140   发布时间: 2011-12-26

或者 select 'Hello World' output

作者: ap0405140   发布时间: 2011-12-26

多谢ssp2009和ap0405140提醒


EXEC master.dbo.xp_cmdshell 'echo Hello World'

上面是举个例子,实际是调用第三方命令行工具,和文件操作。

作者: wangd1121   发布时间: 2011-12-26

月底前结下帖子,谢谢

作者: ssp2009   发布时间: 2011-12-26

各位大牛帮我看看啊,这问题困惑我3年多了,一直没有解决。

看了有人问过同样的问题,但我的不是这个原因,郁闷啊
http://social.msdn.microsoft.com/Forums/en/transactsql/thread/5c189d19-b9ef-4e01-a448-47fff2f7c836

作者: wangd1121   发布时间: 2011-12-26