首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在xp_cmdshell代码中禁用C#有问题。任何替代xp_cmdshell的方法

在xp_cmdshell代码中禁用C#有问题。任何替代xp_cmdshell的方法
EN

Stack Overflow用户
提问于 2022-02-15 03:58:25
回答 1查看 180关注 0票数 -1

需要帮助从下面的代码中禁用xp_cmdshell。我们可以采取什么程序来禁用xp_cmdshell。

代码语言:javascript
复制
-- Add the job
  EXECUTE @ReturnCode = msdb.dbo.sp_add_job @job_id = @JobID OUTPUT , @job_name = N'ExportXYZPRTE', @owner_login_name = N'SORTADM', @description = N'Export TAPPRTE Table', @category_name = N'[Uncategorized (Local)]', @enabled = 1, @notify_level_email = 0, @notify_level_page = 0, @notify_level_netsend = 0, @notify_level_eventlog = 2, @delete_level= 0
  IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 

  -- Add the job steps
  EXECUTE @ReturnCode = msdb.dbo.sp_add_jobstep @job_id = @JobID, @step_id = 1, @step_name = N'export', @command = N'DECLARE @CMD varchar(100)
--Export from XYZPRTE Table
SET @CMD = ''dtsrun /FC:\program files (x86)\XYZAPPS\OAS\programs\XYZPRTEExport.dts''
EXEC master..xp_cmdshell @CMD', @database_name = N'master', @server = N'', @database_user_name = N'', @subsystem = N'TSQL', @cmdexec_success_code = 0, @flags = 0, @retry_attempts = 0, @retry_interval = 1, @output_file_name = N'', @on_success_step_id = 0, @on_success_action = 1, @on_fail_step_id = 0, @on_fail_action = 2
  IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 
  EXECUTE @ReturnCode = msdb.dbo.sp_update_job @job_id = @JobID, @start_step_id = 1 

  IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback 

请帮我更换这个xp_cmdshell。

EN

回答 1

Stack Overflow用户

发布于 2022-02-15 15:47:33

下面是我写了一段时间的过程--它只是删除服务器上的一些*.csv文件。只需从这里替换delete语句,然后用您正在做的替换。

代码语言:javascript
复制
CREATE PROCEDURE DeleteCSV
    -- Add the parameters for the stored procedure here
    @Result as VARCHAR(10) OUTPUT
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;
BEGIN TRY
    -- Insert statements for procedure here
EXEC sp_configure 'show advanced options', '1'
RECONFIGURE


-- this enables xp_cmdshell
EXEC sp_configure 'xp_cmdshell', '1' 
RECONFIGURE
DECLARE @cmd NVARCHAR(MAX) = 
'xp_cmdshell ''del "C:\temp\*.csv"'''
EXEC (@cmd)
-- this disables xp_cmdshell
EXEC sp_configure 'xp_cmdshell', '0' 
RECONFIGURE
-- this turns off advanced options and is needed to configure xp_cmdshell
EXEC sp_configure 'show advanced options', '0'
RECONFIGURE

SET @Result = 'Success'
print @Result
END TRY
BEGIN CATCH
SET @Result = 'Failure'
END CATCH
END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71120963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档