タスク スケジューラに、ローカル ハード ドライブにあるバッチ ファイルを実行するタスクがあります。
バッチ ファイルは、XCopy を実行して、マップされたドライブからローカル ドライブ上のフォルダーにファイルをコピーするだけです。
バッチ ファイルをコマンド ラインから実行すると、完全に機能します。
タスク スケジューラから実行すると、XCopy コマンドは次のエラーを表示します。
Invalid drive specification
重要なのは、ドライブが NAS であり、NAS からのローカル資格情報を使用してコンピューターにマップされていることです (ネットワーク内にアクティブ ディレクトリはありません)。
答え1
以前、マップされた NAS にバックアップしようとしたときに、この動作を見たことがあります。理由はわかりませんが、X: ドライブが \myserver\myfolder にマップされていることを思い出すには、「ちょっとしたきっかけ」が必要です。
手動では、ターゲット フォルダーにアクセスすることでこの問題を解決できます。X: に「タッチ」すると、Windows はそれがそこにあることを「記憶」します。プログラム的に (つまり、バッチから)、マップされたフォルダーにアクセスしてみるか、net
XCopy コマンドの前にバッチで ( コマンドを使用して) 再マップすることもできます。
答え2
この回答は非常に遅くなりましたが、私は問題を回避する別の方法を見つけました。これは、管理者Run with highest privileges
特権のプロンプトからではなく、スケジュールされたタスク (選択されている場合でも) から実行する場合の異なるコンテキストによって発生するようです。
レジストリ値を構成します
EnableLinkedConnections
。この値Windows Vista and Windows 7
により、フィルター処理されたアクセス トークンと、管理者グループのメンバーの完全な管理者アクセス トークンの間でネットワーク接続を共有できるようになります。このレジストリ値を構成した後、ネットワーク リソースがアクセス トークンにマップされている場合、LSA は現在のユーザー セッションに関連付けられている別のアクセス トークンがあるかどうかを確認します。LSA は、リンクされたアクセス トークンがあると判断した場合、リンクされた場所にネットワーク共有を追加します。
- 始めるレジストリエディタ
- レジストリサブキーを見つけて右クリックしますHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System。
- [新規] をポイントし、[DWORD 値] をクリックします。
- タイプリンク接続を有効にするを選択し、Enter キーを押します。
- 右クリックリンク接続を有効にするをクリックし、「変更」をクリックします。
- [値データ] ボックスに「1」と入力し、[OK] をクリックします。
- レジストリエディタを終了し、コンピュータを再起動します。
参照はここ。