启用xp_cmdshell不起作用

时间:2014-09-25 23:10:33

标签: sql-server sql-server-2008-r2 xp-cmdshell

我尝试在SQL Server中启用xp_cmdshell。所以我跑了:

EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE 

返回的消息显示:

  

配置选项'显示高级选项'从1更改为1.运行RECONFIGURE语句进行安装。

     

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

构面属性显示" XPCmdShellEnabled"

然而,当我执行

EXEC master..xp_cmdshell 'dir c:'

我收到了错误消息

  

Msg 15281,Level 16,State 1,Procedure xp_cmdshell,Line 1
  SQL Server阻止访问过程&sys; cx_cmdshell'组件' xp_cmdshell'因为此组件已作为此服务器的安全配置的一部分关闭。系统管理员可以启用' xp_cmdshell'通过使用sp_configure。有关启用' xp_cmdshell'的更多信息,请参阅" Surface Area Configuration"在SQL Server联机丛书中。

我所做的是来自Microsoft文档。为什么不起作用?

2 个答案:

答案 0 :(得分:10)

让我们试试这个:禁用它,然后重新设置它。

--Disable
Use Master

GO
EXEC master.dbo.sp_configure 'xp_cmdshell', 0
RECONFIGURE WITH OVERRIDE

GO

EXEC master.dbo.sp_configure 'show advanced options', 0
RECONFIGURE WITH OVERRIDE
GO

-- Enable
Use Master
GO
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO

EXEC master.dbo.sp_configure 'xp_cmdshell', 1
RECONFIGURE WITH OVERRIDE
GO

答案 1 :(得分:3)

您可以从SQL Server Management Studio执行此操作,如下所示:

  1. 右键单击服务器,然后选择Facets
  2. 选择Facet Surface Area Configuration
  3. 将属性XPCmdShellEnabled设置为True
  4. enter image description here