プロが教えるわが家の防犯対策術!

初心者で申し訳ありませんが教えてください。

特定の時間になると、○○サーバにあるデータをLocalの○○フォルダへコピーするバッチファイルを作成したいと考えています。

コピーだけのバッチファイルは作成できました。

特定の時間になると、このバッチファイルを起動させるバッチファイルを作成したかったので、色々調べていてatコマンドを利用する方法と、
システムツールのタスクを利用する方法を見つけました。

タスクの方だと上手く実行できるのですが、atコマンドのほうが上手くいきません。

記述したコードは以下になります。
at 15:30 C:\Copy.bat

タスクには追加されるのですが、実行時間になり、実行中となっても完了しません。

○○サーバがアクセス権が必要なサーバです。
やはりアクセス権の関係で失敗してるのでしょうか?
(でもそれなら、コピーだけのバッチファイルも実行できない気がしますが・・・)

タスク処理で設定した方は、設定項目にユーザIDとパスワードを
入力する項目があったので設定してました。

at関数の方も実行するユーザーIDとパスワードを設定すればいいのでしょうか?その場合やり方も教えてください。

よろしくお願いします。

A 回答 (3件)

> やはりアクセス権の関係で失敗してるのでしょうか?



おそらくそうでしょう。バッチファイルの出力をリダイレクトしてファイルに保存してみると、表示されるメッセージが確認できるかもしれません。

> (でもそれなら、コピーだけのバッチファイルも実行できない気がしますが・・・)

手動で実行した場合、使用されるアカウントはログオンしているアカウントです。atコマンドの場合は、デフォルトだとシステムアカウントです。

> at関数の方も実行するユーザーIDとパスワードを設定すればいいのでしょうか?その場合やり方も教えてください。

OSの種類が書かれてませんが。
タスクがあるのでしたら、タスクを表示している状態でメニューに[詳細設定]-[ATサービスのアカウント]がありませんか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど、atコマンドだと、デフォルトでシステムアカウントなんですね。納得しました。間違いなくアクセス権の問題です。

ちなみにOSはXPを利用しています。

それと、先ほど少し邪道な方法で希望の処理を行うことは出来ました。
下のような感じで、一旦サーバーをネットワークドライブとして割り当てて、それからデータをコピー。最後にネットワークドライブを切断。

net use f: "サーバー名" /user: ID PASS
xcopy "コピー元フォルダ" "f:"
/delete f:

これでもいいのですが、もっとスマートに記述したいです。
xcopyでデータをコピーする際に、サーバーのアドレスを指定しますが、その時に○○ユーザーでアクセスするといった様な設定はできないのでしょうか?
下のような感じで1行でスッキリ書きたいです。

xcopy "C:\temp" "コピー先の共有サーバー\フォルダ名\" アクセスに利用するIDとパス

お礼日時:2010/02/17 01:12

xcopyのスイッチは、



xcopy /?

を実行するとヘルプが表示されますが、アカウントの指定はできないようです。

バッチファイル等、簡単に中が見られるファイルに、パスワードを記述するのも好ましくないと思います。タスクに登録して、アカウントを指定するのがいいんじゃないかと思います。
    • good
    • 1
この回答へのお礼

なるほど、言われてみればそうかもしれません。

勉強になりました。
ありがとうございます。

お礼日時:2010/02/17 22:52

ご参考



http://support.microsoft.com/default.aspx?scid=k …


Administrator 権限で at コマンドを実行していますか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
URL参考にしてみます。

ちなみに実行時にはAdministrators権限で実行してます。

お礼日時:2010/02/17 01:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!