【发布时间】:2017-08-02 08:16:34
【问题描述】:
我正在尝试使用 SQL 管理工作室中的 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'以普通用户和管理员身份运行查询。两者都产生相同的输出。
这是我的问题:
- 我错过了一些步骤吗?
- 为什么第一次连接后连接不可用?
- 如何删除连接?即当我运行
exec xp_cmdshell 'net use * /delete'时,它会询问
您要继续此操作吗? (是/否) [否]: 我不确定如何使用管理工作室查询说“Y”。
提前感谢您的帮助! :)
【问题讨论】:
-
第三个问题:
exec xp_cmdshell 'net use * /delete /y'它会默默选择是 -
@lad2025 谢谢!效果很好!当我再次删除并添加连接时,连接状态变为“正常”,之前是“不可用”。现在剩下的唯一问题是,它仍然没有复制。得到同样的错误。
-
经过两天的疯狂调试,我猜我找到了答案!哈哈!这只是文件夹名称问题。带空格的文件夹名!!!如果我将路径用双引号括起来,它就像一个魅力!
-
很高兴听到它有效 :)
标签: sql sql-server xp-cmdshell net-use