私の目的:データベースのバックアップディレクトリを別のサーバーにミラーリングするだけです
アプローチ:スケジュールされたタスクに含まれるRobocopyステートメントを使用する
robocopy "C:\MylocalDirBackup" "\\MY.IP\DatabaseBackupsShare" /mir /z /log:"C:\MyLocalDIR\RobocopyTestLog.txt"
環境:
テスト:
問題!:スケジュールされたタスクからRobocopyコマンドを実行すると、次のエラーが発生します。
2013/10/22 20:04:57 ERROR 1326 (0x0000052E) Accessing Destination Directory \\MY.IP\DatabaseBackupsShare\ Logon failure: unknown user name or bad password.
同様の問題を抱えている他の人を何人か見つけ、ここで提案に従いました: http://social.technet.Microsoft.com/Forums/scriptcenter/en-US/b591346e-3ed0-4ed1-9453-24851ebe1bb1/スケジューリング-robocopy-to-run-at-system-startup?forum = ITCG
ありがたいことにどんな助けも受けました。これは簡単な作業になると思いました...
同様のことをしていると、最初にドライブをマッピングしないと、それを機能させることができませんでした。
タスクスケジューラのアクション1:
Net Use z: \\MY.IP\DatabaseBackupsShare mypass /user:myuser
タスクスケジューラのアクション2:
robocopy "C:\MylocalDirBackup" z: /mir /z /log:"C:\MyLocalDIR\RobocopyTestLog.txt"
パスワードを保存しているので(ew)、管理者ではなく非特権アカウントを使用し、そのアカウントに強力なパスワード、タスクの最小限の特権などを付与します。
コメント/返信として投稿しますが、それを行うのに十分な担当者がいません。
スケジュールされたタスクをどの程度正確に起動していますか?
Robocopyを使用してスケジュールされたタスクを実行したら、robocopyコマンド全体を.batファイルに入れ、それをスケジュールされたタスクに使用します。つまり、robocopy.exeをスケジュールしたり、ランタイムパラメーターを指定したりするのではなく、.batファイルをスケジュールするだけです。そうすれば、多くの構文の問題を回避できます。
スケジュールされたタスクで使用されるアカウントを指定していますか?または、ローカルユーザーを使用していますか?スクリプトに資格情報を保存しないことについて、@ Katherineと一緒にいます。タスクでそれらを指定すると、特権アカウントを使用するように指示できます。そうすれば、簡単にアクセスできるスペースに保存する必要がなく、ログイン時にスクリプト用に別のアカウントで実行できます...
タスクスケジューラが実際に期待されるアカウントを使用していることを確認した後、それでも失敗し、パススルー認証アプローチを使用した解決策に到達しました。
この新しいユーザーでタスクを実行すると、Robocopyは正常に実行されます。