簡體   English   中英

在xp_cmdshell中執行exe文件不起作用

[英]Executing exe file in xp_cmdshell doesn't work

我在SQL Server中使用以下方法創建了一個用戶:

CREATE LOGIN adminuser WITH PASSWORD = 'ABCDegf123';
GO

EXEC master..sp_addsrvrolemember @loginame = N'adminuser', @rolename = N'sysadmin'
GO

然后,我與此用戶建立了聯系。

我想做的是觸發此ftp命令:

ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt

所以我創建了一個觸發器:

CREATE TRIGGER sss14
ON Table_1
AFTER INSERT
AS 
    DECLARE @CMDSQL VARCHAR(1000)
    SET @CMDSQL = 'ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt'
    EXEC master..xp_cmdshell @CMDSQL

但是,這不起作用。

請注意,使用xp_cmdshell創建文件夾可以正常工作。 當我運行“代碼”時,它將啟動Visual Studio代碼作為后台進程

調用xp_cmdshell時,SQL Server不在乎輸出,也不考慮任何故障。 但是,您可以將輸出插入到臨時表中並查看結果。 請在下面的SSMS中運行以進行檢查。

DECLARE @CMDSQL VARCHAR(1000)
    SET @CMDSQL = 'ftp -s:C:\Users\sss\Documents\script_ftp\ftp.txt'
    create table #output(output varchar(2000)) 

    insert into  #output
    Exec master..xp_cmdshell @CMDSQL

    select * from #output 
    drop table #output 

使用xp_cmdshell運行的命令使用SQL Server服務帳戶運行OS命令。 請檢查SQL Server服務帳戶是否具有執行ftp的權限。 如果沒有,請授予適當的權限。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM