2017-08-02 128 views
0

我想从SQL管理工作室中使用xp_cmdshell将文件从远程路径复制到本地计算机。无法通过xp_cmdshell连接到远程共享路径

以下是我使用以下步骤:

1.建立连接

exec xp_cmdshell 'net use L: \\remoteServer\folder /user:domain\username ImPWD' 

2.重新连接

当我执行exec xp_cmdshell 'net use',L的状态不可用。 所以我跑exec xp_cmdshell 'net use L:' 这反正没有帮助。它仍然不可用!

3.复制文件

EXEC xp_cmdshell 'COPY L:\Fol1\SubFol2\File.xlsx C:\work\file.xlsx' 

这是错误我得到:

该系统找不到指定的文件。

我曾尝试以下,但似乎没有任何工作尚未:

  • 发现所使用的xp_cmdshell,并试图连接到共享的路径通过Windows UI用户手工凭证,它似乎工作。因此我认为没有许可问题。 EXEC xp_cmdshell 'whoami.exe'

  • 以普通用户和管理员身份运行查询。两者都产生相同的输出。

这里是我的问题:

  1. 我错过了一些步骤?
  2. 为什么第一次连接后连接不可用?
  3. 如何删除连接?即当我运行exec xp_cmdshell 'net use * /delete'它要求

是否要继续此操作? (是/否)[N]: 我不知道如何使用管理工作室查询来说'Y'。

感谢您的帮助提前! :)

+1

对于第三个问题:'exec xp_cmdshell'net use */delete/y''它会选择是的默默 – lad2025

+1

@ lad2025谢谢!完美的作品!当我再次删除并添加连接时,连接状态变成'OK',此前'不可用'。现在剩下的唯一问题是,它仍然没有复制。获取相同的错误。 – Linda

+0

猜猜两天疯狂调试后我找到了答案!大声笑!这只是文件夹名称问题。文件夹名称与空格!如果我用双引号包装路径,它就像一个魅力! – Linda

回答

1

如何删除连接?

要删除连接使用:

exec xp_cmdshell 'net use * /delete /y' 

(是)进行默默地顺利通过

至于其他问题:你在评论中提到,你在路径文件夹中有空格,所以你可以:

  • 重命名文件夹
  • 包装""