我想用vb.net更改对象审核策略。就像启用对象访问审核一样。那可能吗?如果没有,powershell是一个选项吗?我知道我可以在任何版本的Windows上运行gpedit,但我希望能够以编程方式更改设置。
此外,我知道注册表可以更改某些设置,但我还没有看到审核策略。
http://www.lshift.net/blog/2013/03/25/programmatically-updating-local-policy-in-windows/
我发现了这一点,但稍后会尝试一下。
答案 0 :(得分:1)
更新:可以通过VB(或可能是任何其他语言)导入,但使用REG IMPORT。确保将.REG文件放在系统可以访问它的位置(系统没有与管理员相同的权限)。您必须启动一个以System身份运行的单独应用程序,并在加载时导入注册表项。您可以使用来自Sysinternals的PSTools(psexec)作为系统运行。您也可以通过创建服务,运行服务,然后删除服务来完成此操作:Running application as System (without PSTools)
我意识到我认为所有的链接都是答案,不是。它们都会更改“审核策略”选项卡,我已经可以通过编程方式执行此操作。我想要改变的是全局审计策略,该策略仅在组策略(gpedit.msc)中可用。当然,您可以在任何版本的Windows上“安装”它,但我想要一个不需要最终用户必须设置它的解决方案(也就是说不使用gpedit.msc)。
我知道Process Monitor几乎可以监控后台发生的任何事情,我评论中的一个链接也是使用Process Monitor(我的OP的评论)。所以,我认为那是我唯一的办法。当然,你认为mmc.exe是寻找的,但事实并非如此。它执行注册表打开/查询/枚举/关闭的 TON 。但是,没有设置或删除。我决定在大块的mmc操作之前和之后看一点(好吧,当然在其间的任何地方)。任何不是mmc但发生在确切时间范围内的东西。我发现lsass做了一些设置和删除。它正在更改System拥有的注册表项的值。我使用PSTools作为系统运行regedit,所以我可以访问密钥。然后我使用gpedit来回切换(从No Auditing到Success),并发现它总是设置相同的值(类似0表示关闭,1表示打开)。我在更改gpedit中的值时导出了密钥,然后导入它们进行测试。我可以通过在导入后重新打开gpedit来确认它是有效的,并且值会更改。我还可以通过在文件夹上启用审核,并在事件查看器中查看日志来确认。
TL;博士
HKEY_LOCAL_MACHINE\SECURITY\Policy\PolAdtEv\(Default)
就是你想要的。psexec -i -s regedit
不信任.reg文件?如果您想自己创建它们,那么您可以使用以下值。值类型为REG_NONE,因此@=hex(0)
。
无审核:00010000090000007e00000001000000030000000300010001000100000001000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000100000000000000000001000000010000000000000000000000000000000000000000000000fe7f05000a000e00030004000600060004000400
成功:00010000090000007e00000001000000030000000300010001000100000001000000000000000300000001000100010001000100010001000100010001000100010001000100000000000000000000000000000001000100000000000000000001000000010000000000000000000000000000000000000000000000fe7f05000a000e00030004000600060004000400