共有フォルダにあるプログラムだけ書き込み可能な方法

解決


FUJI  2011-01-26 23:41:58  No: 39916

ファイルサーバーの共有フォルダでファイルを管理していましたが、
誰がどこをいつ何の為に書き換えたのか分からなくなってきたため、
上書き保存専用のプログラムを作りたいのですが、いろいろ調べても
よく分かりませんでした。
そこで、皆様のお知恵をお借りしたいのです。

まず、
プログラムは、上書きするファイルを登録して、変更場所と理由を
書き込めるようにして、別ファイルで保管します。

プログラムが共有ファイルに上記で登録されたファイルを上書きする
時には、元のファイルを別名に変更してから書き込むので、実際には
上書きにはならず、過去のVerのファイルが残る形になります。

共有フォルダは、不用意に上書き・変更されないように「アクセス許可」
や「セキュリティ」で保護します。

まず分からないのは、このような仕組みが可能でしょうか?
ネットで検索したら、CreateProcessWithLogonW や RUNASA がヒット
したのですが、これらを使えば、プログラムに特定の権限を与えて、
上記の操作ができるのでしょうか?
このような仕組みがない場合、普通はどのように管理するのでしょうか。

分からない事ばかりで、質問が具体的でなくすみません。


igy  2011-01-27 01:17:04  No: 39917

作りたいのは、

バージョン管理システム
http://ja.wikipedia.org/wiki/%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E7%AE%A1%E7%90%86%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

ですか?


FUJI  2011-01-27 01:47:31  No: 39918

igy様、ありがとうございます。

参照URLを読ませていただきました。私は使った事がないので正確では
ありませんが、きっとこの内容で十分だと思います。

ただ、私が考えていたのはもっとシンプルで、共有フォルダを特定ユーザ
のみ読み書き可能にして、不特定なユーザーはあるプログラムを使って
EXCELファイルを登録すると、その特定ユーザーの権限でEXCELファイルを
上書きするという仕組みです。
不特定ユーザーがエクスプローラで自由に上書きできない仕組みです。

その登録時に、共有サーバー上のEXCELファイルは別のバックアップ名に
変えられ、過去のEXCELファイルも残るような仕組みです。

... 確かに、バージョン管理システムの機能の一部ですよね?!
大げさ過ぎる様な気もしますが、作るほうが大変ならバージョン管理
システムを採用したいです。


au  2011-01-27 02:44:31  No: 39919

共有フォルダのアクセス権でコントロールするなら、
WNetAddConnection2を使って書き込み許可されたユーザーで共有フォルダに接続して、書き込みを行う。
終わったらWNetCancelConnection2で接続を閉じるってやれば出来るんじゃないかな。


FUJI  2011-01-27 19:11:17  No: 39920

au様、ありがとうございます。
出来そうな感じがしてきました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加