猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

Windows

タスクスケジュールではネットワークドライブの割り当てを使ってはいけない

投稿日:

タスクスケジュールに別サーバーへログファイルを移動するバッチを登録する、などよくある話です。

例えば、Aサーバーにはログがたまっていて、Aサーバー上では毎朝3時にBサーバーのバックアップフォルダにログを移動するとします。

ネットワークドライブの割り当てたドライブ情報はユーザー単位でその情報を保存しているということの理解が重要です。
つまりAサーバー上で下記のようなコマンドで事前にBサーバーのフォルダをネットワークドライブ(Q:)に割り当てていても、
それはそのバッチを実行したユーザーからしかみえないのです。

net use q: \\192.168.10.1\shared password /user:username

つまり事前に割り当てをしていても、タスクを実行しているのは別ユーザーになります。
そのタスクの実行ユーザーではその割り当てたドライブがみえないのです。

解決策として、バッチ処理自身にネットワーク割り当てのコマンドを記載すればいいとありました。
確かにそれでうまくいきそうです。が何故かうまくいきませんでした。。。

結局私は、

①事前にAサーバーとBサーバーに同じ名前とパスワードのタスク専用ユーザーを作成し、
②Bサーバーにはそのタスク専用ユーザーにアクセス権限を与え、
③Aサーバー上で実行するタスクの実行ユーザーもタスク専用ユーザーにし、
④バッチ処理上ではネットワークドライブの指定を \\192.168.10.1\shared\backaup.txt

と指定することで解決しました。

ネットワークドライブの割り当ては、タスクの実行ユーザーからは見えないのです。
ipアドレス、もしくはホスト名を使用してパスを使用することが肝心です。
なおこのようなフルパスの表記はUNC(Universal Naming Convention)と呼ばれています。

Gooleアドセンス用336

Gooleアドセンス用336

-Windows

執筆者:

関連記事

apple

Mac用HFS+の外付けディスクをWindowsで共有する

MacとWindowsで、共有の外付けハードディスクを使用したい・・・。 しかしMacで使用しているHFS+というフォーマットの外付けはWindowsではドライブの認識すらしてくれません。 一番簡単な …

windows

コマンドプロンプト(バッチ)で日時を使用する

ログやファイル名にやっぱり付けたいのが日時です。 INDEX1 文字列の抜き出し2 文字列の置き換え3 日時を取得するバッチ 文字列の抜き出し c:\>echo %date% %time% 20 …

windows

Windowsのネットワークユーザーの変更・指定(netコマンド)

Windowsでは別サーバーの共有ディレクトリを参照する際にはユーザー名やパスワードを入力します。 そのユーザー名やパスワードは、参照しようとしているPCに登録されているユーザー名やパスワードです。 …

windows

telnetでポートが開いていることを確認する

インターネット上でテストをする際には、 ルーターでpingを返さないことはざらにあります。 そんな場合でも、相手のアプリが指定したポートだけは開けていなくては話になりません。 そんな場合にはtelne …

windows

コマンドプロンプト(バッチ)でファイル毎の処理をする

forでファイル毎の処理をする コマンドプロンプトのforには強力な/Fオプションがあります。 set yyyy=%date:~0,4% set mm=%date:~5,2% set dd=%date …