現在のマシンからマップされたネットワークドライブにファイルをコピーするbatファイルがあります(1行、xcopyコマンド)。
サーバーにRDPするときに機能します。ただし、スケジュールされたタスクとして実行し、ログインしているのと同じユーザーで実行するように構成すると、機能せず、エラー0x4が発生します。
これを達成する方法はありますか?
また、dsynchronizeを試してみましたが、[同期]をクリックすると機能します。サービスとして実行すると同じ問題が発生します。
現在のマシンからマップされたネットワークドライブにファイルをコピーするbatファイルがあります(1行、xcopyコマンド)。
サーバーにRDPするときに機能します。ただし、スケジュールされたタスクとして実行し、ログインしているのと同じユーザーで実行するように構成すると、機能せず、エラー0x4が発生します。
これを達成する方法はありますか?
また、dsynchronizeを試してみましたが、[同期]をクリックすると機能します。サービスとして実行すると同じ問題が発生します。
私はそれを理解することができました。次のバッチファイルは、ローカルシステムアカウントとしても、スケジューラーの下で機能します。
net use m: \\server\share /U:server\user password
xcopy C:\source m: /E /Y
毎回ネットワークドライブをマップし、そのドライブにコピーします
ネットワークドライブとしてマッピングせずに、ファイルをUNCパスにコピーすることができます。UNCパスを引用符で囲んで設定してみてください。
copy * "\\server\share"
引用符がないと、Windows7コマンドラインで「構文エラー」が実行されます。
リモートドライブをローカルPCにマッピングせずに、サーバーから他の何百ものサーバーにファイルをコピーしたいという同様の問題がありました。何百台ものリモートマシンをローカルPCにマップするのに十分なドライブ文字がありませんでした。リモートドライブをマップしてコピーすることはできませんでした。
copy、xcopy、またはrobocopyを使用して、copyコマンドに資格情報を指定できると思いました。ただし、どのコピーコマンドにも、リモートシステムに資格情報を提供するオプションはありませんでした。
上記の投稿のおかげで、ホストをループするだけの小さなバッチファイルを作成し、すべてのホストに対して1つのドライブマッピングだけを再利用し続けることができました。
これが私のバッチファイルです...
echo @off
for /F %%j in (pchostslist1.txt) do (
net use z:\\%%j\c$ /user:domain\myusername mypassword
mkdir \\%%j\c$\tmp\mynewdir
xcopy c:\anyfile.txt \\%%j\c$\tmp\mynewdir
net use z: /delete
)
同様の問題が発生し、net useを使用する代わりに、スケジュールされたタスクの一部としてパスワードを保存する必要がありました。チェックされている場合にのみローカルリソースにアクセスできると表示されていることに気付くでしょう。
誰がネットワークドライブをマッピングしますか?また、基になるUNCネイティブパスの代わりに、マップされた名前を使用していますか?ログインスクリプトでマップされたドライブが設定されているように聞こえますが、ログインしていない場合は実行されません。したがって、スケジュールされたタスクでは、UNCパスの正しいクレデンシャルはありますが、マップされたドライブ文字はありません。 。