web-dev-qa-db-ja.com

レジストリの変更によってトリガーされたWindowsタスクを実行する

特定のレジストリキーが作成または変更される場合にスクリプトを実行する可能性を探しています。 Windows Taks Schedulerには、システム/アプリケーションイベントによってトリガーされるスクリプトを実行する方法があります。しかし、レジストリを変更するためのものが見つかりませんでした。

誰かが私がこれを実装する方法を知る手がかりはありますか?

3
eglobetrotter

気になるレジストリキーを監査することで、これらの変更をトリガーできます。ただし、作成/削除されるレジストリキーと変更されるレジストリ値を区別することは重要です。これらのログにはさまざまなイベントが記録されるためです。

最初にauditpol.exe /get /category:"Object Access"を実行し、成功と失敗の "レジストリ"が有効になっているかどうかを確認します(もちろん、主に成功に関心があります)。そうでない場合は、GPOを介して、またはサーバー/ワークステーションのローカルセキュリティポリシーで、ドメインコントローラー上で有効にする必要があります。

レジストリの監査がアクティブになったら、regedit.exeのレジストリキーの監査を有効にする必要があります。キーを右クリックしてPermissions -> Advanced -> Auditingを選択し、ユーザーEveryoneに必要なアクションを監査するだけです。私は一般に、監査の方が少ないより監査することを好みます。

今後、レジストリ値が変更されるとイベント4657が表示され、キーが追加/削除されるとイベント4663が表示されます。例:

    An attempt was made to access an object.

       Subject:
        Security ID:        DOMAIN\user
        Account Name:       user
        Account Domain:     DOMAIN
        Logon ID:       0x722be21

    Object:
        Object Server:  Security
        Object Type:    Key
        Object Name:    \REGISTRY\MACHINE\SOFTWARE\Wow6432Node\SomeApplication\SomeKey
    Handle ID:  0x100

Process Information:
    Process ID: 0x650
    Process Name:   C:\Windows\regedit.exe

Access Request Information:
    Accesses:   DELETE

    Access Mask:    0x10000

その後、タスクスケジューラでそれらのイベントをトリガーできます。

1
Lucky Luke