- 締切済み
ログオンスクリプトを使ったプログラム自動配信について
毎度お世話になっています。よろしくお願いいたします。 会社でサーバの管理者をしています。OSはWindows Server 2003でActiveDirectoryを構築して管理しています。クライアントはWindows 2000/XP合わせて100台前後です。 SQLサーバのフロントエンドプログラムとして、各PCにAccess2003で作成した業務用プログラムをログオンスクリプトで自動配信したいと考えています。最初に私が作成したバッチファイルでの配布条件としては ○ サーバ上にある配信元プログラム(A)とクライアントにある配信先プログラム(B)の更新日時を比較して、(A)が(B)より新しい場合、配信する。それ以外の場合は配信しない。 という条件で、 「xcopy \\{サーバ名}\{(A)の保存場所}\(A).mdb %systemdrive%\{(B)の保存場所}\ /D /E /Y」 というバッチコマンドを使用して配信していました。 しかし、(B)は立ち上げた後で終了すると更新日時が更新されてしまうことが判明((B)が終了した日時に変更される)しました。そのため、上記のバッチでは毎日業務をしていると、たとえ(B)のバージョンが古いままでも(A)が配信されない事態になってしまいます。 これを解消するうまい手段がありましたら、参考になるHPの紹介や御意見・見本となるスクリプトの提示などをお願いいたします。 条件としては「バッチファイルかWSHで実現できること」です。私自身、WSHはあまり分からないのですがバッチでできない高度な操作ができるのでぜひ覚えたいと思います。 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- winarrow07
- ベストアンサー率41% (143/346)
ファイル名にバージョン番号をつけてそれで判断させるのはどうでしょう? ファイル名をあいうえおVer01.mdbなどとしておいて、バージョンアップした場合はあいうえおver02.mdbと名前をつけます。 ファイル名の下二桁を比較してサーバ上のほうが新しければ(大きければ)コピーして、古いほうは消す、というスクリプトを組む。 バージョン管理もできるのでは。 ファイル名が変わっては困るというのであれば無理ですが。 no1.さんのやり方もいいかと思います。
- Donotrely
- ベストアンサー率41% (537/1280)
(B)は見るだけですよね? 冴えない方法ですけど、簡易になんとかするなら、 ZIPで梱包したものを配信するというような手もあります。 もちろん拡張子はZIPです。 但し、バッチのコマンドからZIP梱包するには プログラムをどこかから入手してインストールする必要がありますけど。
- Toshi0230
- ベストアンサー率51% (836/1635)
真っ向勝負でなくてちょっと思いついた回避策ですが、バージョンの指標となる小さなファイル(テキストファイルでも何でも良い)を用意して、Accessのファイルと一緒に配布するのはどうでしょうか? もちろん、一緒に配布するファイルは誤って消されないようにユーザから見えないところにコピーします。 で、そのファイルの情報を元にVer.A > Ver.B が判別できれば指標ファイル共々AccessをPCに配布する、と。 指標ファイルにどうやって情報を持たせるかは考えてみてください。ファイル名に依存させても良いし、ファイル内に書き込んでも良いし。 # for文を使うなどすればバッチでもある程度ファイルの中身を操作できますし。 がんばってください。