none
共有フォルダへの接続時のイベント通知について RRS feed

  • 質問

  • お世話になります。

    他のクライアントPCから以下のようなコマンドを使用して、当該PCの共有フォルダに接続された場合に、接続に使用されたユーザー名やクライアント端末のIPアドレス、またはホスト名などを通知したいと考えています。

    (一例)

    「net use z: \\192.168.0.1\Share /USER:hoge *」のようなコマンドを使用

    SENSを使用して、ISensLogon、ISensLogon2インターフェイスを実装して確認してみたのですが、共有フォルダに接続した際にログオンイベントは発生しませんでした。

    SMBに関するAPIについて確認してはみたのですが、接続時のイベントを検出するようなAPIは、見つけることはできませんでした。

    何か良い方法等がございましたら、お知恵を拝借いたしたく、よろしくお願いいたします。

    2016年5月10日 16:20

すべての返信

  • 最低限のマナーとして、対象PCのOSやアプリケーション開発環境のバージョンくらいは書きましょう。

    グループポリシーエディターで[オブジェクト アクセスの監査]ポリシーを有効にして、当該の共有フォルダーに監査エントリを追加することでWindowsイベントログに記録を残せるようになるので、それを利用するのが楽ではないでしょうか。

    Windows Server 2012 R2 : ファイルサーバー : オブジェクトアクセスの監査 : Server World

    Windowsイベントとタスクスケジューラの連携で事足りるのであれば、別にVC++で専用アプリケーションをわざわざ新規開発する必要もないと思います。

    WHS2011 共有フォルダのアクセスログを取ろう~監査の失敗とか~ - 元「なんでもエンジニ屋」のダメ日記

    2016年5月10日 18:13
  • syghさん。

    ご返信ありがとうございます。

    大変、失礼いたしました。以下の環境を使用しています。

    【PCの環境】

    OS:Windows 7 SP1、Windows 10

    【開発環境】

    Visual Studio Community 2013 with Update 5

    「オブジェクト アクセスの監査」ポリシーを使用するとイベントログに様々ログが記録されますので

    もう少し必要な情報のみをシンプルに取得できないかと考えています。

    「オブジェクト アクセスの監査」ポリシーでイベントログに記録することができるので、VC++でAPIを使用して扱えるのではないかと考えています。

    サービス:Server(LanmanServer)のイベントを取り扱う方法がないのかなと調べています。

    VC++等で、取り扱うAPI等をご存知でしたら、アドバイスを頂ければ幸いです。

    2016年5月11日 3:47