![执行由注册表更改触发的 Windows 任务](https://linux22.com/image/728371/%E6%89%A7%E8%A1%8C%E7%94%B1%E6%B3%A8%E5%86%8C%E8%A1%A8%E6%9B%B4%E6%94%B9%E8%A7%A6%E5%8F%91%E7%9A%84%20Windows%20%E4%BB%BB%E5%8A%A1.png)
我正在寻找一种在特定注册表项即将被创建或修改时执行脚本的可能性。在 Windows Taks Scheduler 中,有一种方法可以执行由系统/应用程序事件触发的脚本。但我找不到用于注册表更改的脚本。
有人知道我该如何实现这个吗?
答案1
您可以通过审核您关心的注册表项来触发这些更改。但区分创建/删除的注册表项和更改的注册表值非常重要,因为这些会记录不同的事件。
首先,运行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
然后您可以在任务计划程序中触发这些事件。