ネットワーク共有上に作成したVHDX仮想ディスクを使ってWindows Serverバックアップの保管先にしており、この接続にタスクスケジューラでマシンの起動時とバックアップ開始5分前に以下のようなタスクを実行しています。
プログラム/スクリプトに、
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
引数の追加に
-Command "Mount-DiskImage -ImagePath \\server\share\backup.vhdx"
共有側のサーバが再起動するなどしてVHDXドライブへの接続が切れたときでも、このタスクにより再接続しているはずなのですが、たまに接続に失敗することがありました。タスクの履歴を確認すると、
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" を正常に完了しました。リターン コード: 2147942401
とのことで、リターンコード2147942401で検索してもファンクションの問題とかで要を得ません。
タスクをタイマーじゃなくて、手動で実行すると、実行中のまま終了せず、以下のような履歴が残っていました。
操作 "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" を正常に完了しました。リターン コード: 2147943691
このリターンコードも検索して、ファイルのアクセスかもとのことで、あまりそのものズバリの回答はないような感じです。
ただし、自分でPowerShellのコンソールを管理者権限で開いて、
Mount-DiskImage -ImagePath \\server\share\backup.vhdx
を実行すると問題なくマウントできます。そして手動でVHDXを切断して、タスクを手動で実行すると今度は問題なく接続できました。そうそう、タスクの最上位の特権で実行するにはチェックずみです。
PowerShellの手動コマンドでは問題なく、いったん接続するとタスクでもマウントできるようになることから、ファイルへのアクセス関連かもということで、実行時に共有ファイルへアクセス準備ができていないのかも。と考えてタスクの実行フォルダを指定する開始(オプション)の項目に今までは空白だったところを共有ファイルの保管場所
開始(オプション)
\\server\share\
を指定して、タスクを登録し直してから問題は起こらなくなりました。といっても共有サーバの再起動はめったにしないので、それほど再接続は頻繁には必要ないのですが。
しばらくこれで様子を見ようと思います。