找不到SQL Server xcopy和xp_cmdshell文件

时间:2015-08-30 01:08:35

标签: sql-server

我阅读了其他帮助帖子,但我一直在网络上找不到文件。该路径位于文件共享的网络上,我使用RDP远程连接到我自己的连接到SQL Server数据库的计算机。

我正在使用带有xp_cmdshell的xcopy命令。我不能只使用“复制”,因为我得到访问被拒绝的错误,所以我使用这种格式的Xcopy:

echo f|xcopy /i "\\fileserver\file\excelfile1.xls" \\fileserver\file\newdirectory\excelfile1.xls"

我已经尝试过几乎所有内容并阅读其他帖子,但这仍然无效。我确实有目录和文件的参数等,但我实际上在dos命令中硬编码它仍然无法正常工作。

任何想法都会很棒。

2 个答案:

答案 0 :(得分:0)

如果您使用copy获得“访问被拒绝”,那么您也会遇到与xcopy相同的错误。它提供了更多选项,但不会让您随意绕过操作系统安全性,它们仍然受到运行它们的用户帐户的权限的限制,就像其他所有软件一样。

有两种选择:

使用sp_xp_cmdshell_proxy_account为所有xp_cmdshell操作指定其他用户(如 Bacon Bits 所示)。此用户必须对源文件和目标文件具有足够的权限。

将这些权限授予运行SQL Server服务的帐户,以便它可以直接访问这些文件。

答案 1 :(得分:0)

谢谢大家的回复。这是我第一次使用这个论坛。

我发现文件名为.XLS但实际上是.TXT分隔格式。所以我用一个ForEach循环通过SSIS重命名它们并从那里进行处理。

我尝试从命令行使用XCOPY,但是新的权限不起作用。我得到了扩展强化错误,这就是为什么XLS对TXT不喜欢它。