2017-08-02 18 views
0

SQL管理スタジオでxp_cmdshellを使用してリモートパスからローカルマシンにファイルをコピーしようとしています。xp_cmdshellからリモート共有パスに接続できません

以下は、私が使用されている手順:

1.接続

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

2.再接続

iは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'を実行すると、それは

を尋ねるあなたは、この操作を続行しますか? (Y/N)[N]: 私は管理スタジオのクエリを使用して 'Y'と言う方法がわかりません。

ご協力いただきありがとうございます。 :)

+1

3番目の質問: 'exec xp_cmdshell 'net use */delete/y''それはイエスをサイレントに選択します – lad2025

+1

@ lad2025ありがとう!それは完璧に動作します!削除して接続をもう一度追加すると、接続ステータスは以前は「使用不可」だった「OK」になります。残っている唯一の問題は、まだコピーしていないことです。同じエラーが発生しました。 – Linda

+0

私はクレイジーなデバッグの2日後に答えを見つけました!笑!それは単にフォルダ名の問題でした。スペースのあるフォルダ名パスを二重引用符で囲むと魅力的に機能します! – Linda

答えて

1

接続を削除するには?

接続使用を削除するには:

exec xp_cmdshell 'net use * /delete /y' 

は(はい)黙って他の質問については

が渡されます:あなたができるよう、パス内のフォルダにスペースを持っていることをコメントで述べた:

  • 名前を変更するフォルダ
  • ラップ3210
関連する問題