- PR -

C# 共有フォルダーの監視

1
投稿者投稿内容
osaru
会議室デビュー日: 2004/06/18
投稿数: 14
投稿日時: 2005-11-27 17:52
はじめましてC#でプログラムを開発しています。

自コンピュータ(WindowsXP)の共有フォルダーに対してネットワーク上の他のコンピュータからアクセスがあったかどうか監視したいのですがどのようにやったらいいのか分かりません。
どなたかご教授願えないでしょうか?
よろしくお願いします。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-11-27 18:47
引用:

自コンピュータ(WindowsXP)の共有フォルダーに対してネットワーク上の他のコンピュータからアクセスがあったかどうか監視したいのですがどのようにやったらいいのか分かりません。



監視の対象となる操作は何でしょうか?

書き込み系の操作なら FileSystemWatcher クラスを利用すれば実現できると思いますが、読み出し系の操作を監視するなら、OSのシステム監査の機能を使うことになるかもしれません。
osaru
会議室デビュー日: 2004/06/18
投稿数: 14
投稿日時: 2005-11-27 21:55
ご返答ありがとうございます。

やりたい事は読み出し系も監視したんです。
コマンドプロンプトでnet sessionやnet fileを実行したときのような結果が取得できれば・・・と思っています。
「OSのシステム監査の機能」とは具体的にはどのあたりのAPIなのでしょうか?
一方的に質問ばかりで失礼とは思いますが何卒よろしくお願いします
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-11-27 22:29
こんばんは。

引用:

osaruさんの書き込み (2005-11-27 21:55) より:

コマンドプロンプトでnet sessionやnet fileを実行したときのような結果が取得できれば・・・と思っています。
「OSのシステム監査の機能」とは具体的にはどのあたりのAPIなのでしょうか?




ご希望のAPIかどうか分かりませんが、だいたい、この辺ですかね?

NetSessionEnum
NetFileEnum

#私は.NETのことは良く知らないので、
 .NET Frameworkに対応する機能(クラス/メソッド)があるかどうかは知りません。orz

渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2005-11-28 00:22
引用:

コマンドプロンプトでnet sessionやnet fileを実行したときのような結果が取得できれば・・・と思っています。



WMI の Win32_ServerConnection, Win32_ServerSession 辺りで情報取得できるんじゃないでしょうか。

引用:

「OSのシステム監査の機能」とは具体的にはどのあたりのAPIなのでしょうか?



API は知りません。管理ツールで設定を有効にすると機能します。


監査を設定すると、監査対象のファイルシステムに対する操作がすべてイベントログに記録されるようになります。

「ファイル 監査」辺りを検索語にして Windows のヘルプを調べてみてください。
osaru
会議室デビュー日: 2004/06/18
投稿数: 14
投稿日時: 2005-11-28 21:52
お世話になります。

>Tdnr_Sym様

NetSessionEnum,NetFileEnumをMSDNで調べてみました。APIを使うなら使えそうなのでもう少し調べてみたいと思います。まったく手がかりがなかったので大変助かりました。ありがとうございました。

>渋木宏明(ひどり)様

ManagementObjectSearcherクラスを使ってSQLのような記述でWin32_ServerConnection, Win32_ServerSessionの辺りを使えば取得できるんですね。
ちょっとテスト的なプログラムを作ってみたら目的の結果が取得できました。
いままでWMIはまったく使った事がなかったので、調べてみるといろいろな情報が取得できるんですね。これを期にWMIをもう少し詳しく調べてみようと思います。
どうもありがとうございました。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-11-28 23:22
ん、NET SESSION ならともかく、NET FILE の方は、WMI では取得できないと思いますが?

とりあえず、私が API を使用せずに共有上の Resource 状況を取得するには、
ADSI の IADsResource を利用してやります。

IADsResource interface [ADSI]
1

スキルアップ/キャリアアップ(JOB@IT)