-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GOEXEC master.dbo.XP_CMDSHELL 'echo Hello World'执行后一直直接返回NULL值。xp_cmdshell命令已启用,不知是什么原因导致的?
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GOEXEC master.dbo.XP_CMDSHELL 'echo Hello World'执行后一直直接返回NULL值。xp_cmdshell命令已启用,不知是什么原因导致的?
有时尝试重启数据库或重启服务器后,xp_cmdshell命令可以恢复,但运行一段时间后,突然又会失效,没有规律。
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GOEXEC master.dbo.xp_cmdshell 'echo Hello World'/*
output
------------
Hello World
NULL(2 行受影响)
output
------------
NULL(1 行受影响)
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GOEXEC 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
EXEC master.dbo.xp_cmdshell 'echo Hello World'上面是举个例子,实际是调用第三方命令行工具,和文件操作。
http://social.msdn.microsoft.com/Forums/en/transactsql/thread/5c189d19-b9ef-4e01-a448-47fff2f7c836
消息 15281,级别 16,状态 1,过程 xp_cmdshell,第 1 行
SQL Server 阻止了对组件 'xp_cmdshell' 的 过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'xp_cmdshell'。有关启用 'xp_cmdshell' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。
有时有用,有时没用!这个要你自己检查了,什么时候有用,你做了什么以后有用,什么时候没用,你做了什么后没用,肯定是由于某个外部原因造成调用xp_shell失败的.你可以到其他机器上去试试是否会出现类似的问题,正常的机器,应该不会有这种怪异的情况发生.