none
Active Directoryへの新規ユーザー追加をトリガにして処理をしたい RRS feed

  • 質問

  • こんにちは。

    Acitve Directoryへ新規ユーザーが登録されたのをトリガにして何らかの処理を実行することは可能でしょうか。

    具体的には、ユーザー登録時のみ、mail属性に入っている「hoge@contoso.com」という値を取得し、proxyAddresses属性へ「SMTP:hoge@contoso.com」として登録したいのです。

    以上、お願い致します。


    2017年12月13日 23:31

すべての返信

  • PowershellのGet-ADUserコマンドをタスクスケジューラ等を用いて、WhenCreatedが一定期間内のものをFilter属性を用いて抽出し、proxyAddress属性が期待値でないものに対して登録を行うようにしてみてはどうでしょうか。

    以下のコードは1日以内に作られたものを対象にproxyAddressesを設定しています。

    $when = (Get-Date).AddDays(-1)
    $users = Get-ADUser -Filter {whenCreated -ge $when} -Properties whenCreated,mail
    $users | %{Set-ADUser $_.DistinguishedName -Add @{proxyAddresses="SMTP:$($_.mail)"}}
    すぐに実行させたいのであればADオブジェクトの監査でユーザの作成(あるいは特定OUへのオブジェクト作成?)などを定義し、タスクスケジューラのトリガーに「特定のイベントログへの記録時」としても良さそうです。

    2017年12月14日 1:30
  • ご回答ありがとうございます。

    バッチで定期的に動かすという方法ですね。コードまでご提示頂きまして大変助かります。やはりこれが現実的ですかね。これでも問題はありません。ただ、ADへのユーザー登録をトリガにして、処理を出来れば、いいかなと思った次第です。

    2017年12月14日 1:34
  • チャブーンです。

    この件のキモですが、「アカウントが作成されたタイミングをどう検出するか」だと思いますが、結論として「アカウントの管理」監査ログを有効にして、新規オブジェクトが生成された監査イベントをキーにタスクを実行する、という方法しかないかと思います。

    誰でも思いつきそうな方法として、Register-WMIEventで指定パス上の生成物をイベントドリブンで監視する、がありますが、残念ながらPSのAD:\ パスはたぶん対応していません。似たようなケースでUSフォーラムにQAが出ているので、参考になさってみてください。

    https://social.technet.microsoft.com/Forums/en-US/e1293c62-df1f-4fe1-9eb2-7fcd4327996f/active-directory-wmi-event-watcher-for-a-modification-on-a-group-within-in-specific-ou?forum=winserverpowershell

    追記:「アカウントの管理」監査ログは、ドメインコントローラーではたぶん既定で有効です。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。



    2017年12月14日 1:52
  • oooohです。

    短絡的ですが、ユーザーアカウントはバッチからのみの追加をさせるように周知して

    単にユーザー追加とProxyAddresses属性の登録を一連のバッチ内で行えばよいのでは、と思いました。

    2017年12月19日 4:27