启用XP_cmdshell运行时基础

时间:2013-02-14 14:36:15

标签: xp-cmdshell

我正在使用查询来获取所有已安装驱动器的磁盘空间以及lofical驱动器。我正在使用一个SQL脚本来调用此任务的.vbs脚本。

现在我想在运行时启用xp_cmdshell。我正在使用SQL 2008 R2。

我正在使用的SQL脚本如下:

DECLARE @VBSPATH VARCHAR(200)

SET @VBSPATH='cscript G:\temp\win.vbs'

SET NOCOUNT ON

IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE NAME ='##tmp')

DROP TABLE ##tmp

CREATE TABLE ##tmp(diskspace VARCHAR(200))

INSERT ##tmp

EXEC master.dbo.xp_cmdshell @VBSPATH

SET ROWCOUNT 3

DELETE ##tmp

SET ROWCOUNT 0

IF EXISTS (SELECT 1 FROM tempdb..sysobjects WHERE NAME ='##tmp2')

DROP TABLE ##tmp2

CREATE TABLE ##tmp2(DriveName VARCHAR(100),DriveDescription 
    VARCHAR(15),TotalDiskSpace_in_MB VARCHAR(10), Freespace_in_MB VARCHAR(10))

INSERT ##tmp2

SELECT RTRIM(SUBSTRING(diskspace,31,100)), SUBSTRING(diskspace,18,13), 
  SUBSTRING(diskspace,1,8) ,SUBSTRING(diskspace,9,9) FROM ##tmp 
WHERE diskspace IS NOT NULL

SELECT * FROM ##tmp2

0 个答案:

没有答案