2009-02-19 96 views
1

我試圖使用某些T-SQL將某些文件從一個目錄移動到另一個目錄。 即時通訊使用xp_cmdshell的調用移動命令 就像這樣:嘗試使用xp_cmdshell移動文件時訪問被拒絕

create table #output(line varchar(2000) null) 
insert into #output exec master..xp_cmdshell 'move /y "D:\files\*.txt" "D:\oldfiles"' 

但這些文件移動研究院和#output表包含來自移動命令

Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
Access is denied. 
     0 file(s) moved. 
NULL 

SQL服務器代理賬號,該輸出映射到本地管理員 如果我打開命令提示符輸入移動命令

move /y "D:\files\*.txt" "D:\oldfiles" 

文件移動完美

它的一切都發生在運行在w2k3服務器上的sql2005上。

林登錄到服務器的本地管理員

回答

9

可以運行

exec master..xp_cmdshell 'set username' 

,並告訴這是什麼回報?

編輯:通過OP的評論,命令運行爲NETWORK SERVICE。在目錄中允許NETWORK SERVICE解決了這個問題。

+1

然後,解決此問題的一種方法(無需重新配置SQL Server服務帳戶)只需在目錄上允許NETWORK SERVICE即可。 - Tomalak – CruelIO 2009-02-19 12:35:14

相關問題