WindowsServer上のフォルダで急にパスが通らなくなった

H_情報システム管理者 0 評価のポイント
2024-11-06T08:51:02.2566667+00:00

いつもお世話になっております。

WindowsServer(2019Standard)上でタスクスケジューラを使用して、バッチファイルでフォルダの圧縮をしています。

C:\PROGRA~1\7-zip\7z a G:\temp\myfldr.7z \svr\myfldr

ある日を境にこの処理が効かなくなっているため、ログを調べると、「指定されたパスは無効です」というエラーが出ていました。コマンドプロンプトで同じコマンドを実行しても全く同じエラーが出ます。

その日に行ったことを思い起こしてみると、まさにそのフォルダを壊してしまい、バックアップからフォルダ単位でコピーして戻したことを思い出しました。

その際の手順としては下記のように行いました。

・元のフォルダAをリネームしてA@とし、

・別サーバーに置いてあったバックアップをAとして元の位置にコピー

・コピー後のAのアクセス権を確認して、元と同じ状態にした

この状態で、フォルダAはIISで使用しているWebサイトのフォルダなのですが、正常に動作しており、一安心していたのですが、このような現象がなぜ起こるのか全く分かりません。

net use x: \svr\myfldr

としてもネットワークエラーと出てマッピングも出来ません。

C:\PROGRA~1\7-zip\7z a G:\temp\myfldr.7z \svr\myfldr

を何度か繰り返していると、正常に動くようになることもありますが、バッチ処理では常に一回目なので100%エラーになります。

何等かのキャッシュが残っているのでしょうか?

対象方法がありましたらご教授お願い致します。

Windows Server
Windows Server
エンタープライズ レベルの管理、データ ストレージ、アプリケーション、通信をサポートする Microsoft サーバー オペレーティング システムのファミリ。
72 件の質問
0 件のコメント コメントはありません
{count} 件の投票

2 件の回答

並べ替え方法: 最も役に立つ
  1. チャブーン 1,706 評価のポイント MVP
    2024-11-07T03:05:34.4266667+00:00

    チャブーンです。

    この件ですが、まず「指定されたパスは無効です」というエラーを出している、プログラムを特定する必要があります。

    質問者さんは「Windowsが出している」と思われているようですが、おそらく違います。これは「7z.exe」という、サードパーティのプログラムが出している、のではないでしょうか?

    で、こちらの解決方法ですが、コマンドの以下の文字列を「正しく変更する」ことで、治る可能性があります。

    C:\PROGRA~1\7-zip\7z a G:\temp\myfldr.7z C:\svr\myfldr

    上記は圧縮するフォルダーを指定する方法として、フルパス(絶対パス)を指定しています。質問者さんが今使っているパスは相対パスといって、カレントディレクトリ(コマンド実行時にフォーカスされているディレクトリ)に依存する内容になっています。

    バッチファイルで実行する場合ですが、カレントディレクトリを「明確に指定」するためには、上記以外の別のコマンド(cdコマンド)が必要です。そのコマンドがない状態だと、実行時のシステム依存で、思いもよらないディレクトリがカレントディレクトリとして指定され、したがって相対パスが適切に動作しません。

    上記を正しく治すためには、相対パスでなく絶対パスでフォルダーを指定する必要があります。まずはそちらをお試しください。

    0 件のコメント コメントはありません

  2. Daisy Zhou 27,026 評価のポイント Microsoft ベンダー
    2024-11-07T07:28:13.2266667+00:00

    こんにちは

    Q&Aフォーラムに投稿していただきありがとうございます。

    この問題は、いくつかの原因が考えられます。以下の対処方法を試してみてください。

    1.ネットワーク接続の確認

    ネットワーク接続が安定しているか確認します。net use コマンドでネットワークドライブをマッピングできない場合、ネットワークの問題が考えられます。

    2. キャッシュのクリア

    キャッシュが原因で問題が発生している可能性があります。以下のコマンドを実行して、ネットワークキャッシュをクリアしてみてください。

    net use * /delete

    3. タスクスケジューラの設定確認

    タスクスケジューラの設定を確認し、以下の点をチェックしてください。

    • タスクが「最上位の特権で実行する」に設定されているか。
    • タスクが失敗した場合の再試行設定が適切に設定されているか。

    上記の情報がお役に立てば幸いです。

    ご不明な点やご不明な点がございましたら、お気軽にお知らせください。

    よろしくお願いいたします

    デイジー・ジョウ

    ============================================

    回答が役に立った場合は、「回答を受け入れる」をクリックして賛成票を投じてください。

    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。