c# - 如何停止和恢复受保护的触发 Windows 服务 AppIDSvc (AppLocker)
问题描述
目标是通过暂时停止 AppIDSvc(应用程序标识)Windows 服务然后恢复其执行来控制AppLocker 。该操作应该从另一个 Windows 服务中执行,该服务在 SYSTEM 用户安全上下文下具有提升的权限。
默认情况下,AppIDSvc 服务启动类型为手动(触发启动)。这意味着即使服务被ServiceController.Stop
方法或sc stop AppIDSvc
命令停止,它也会被任何 AppLocker 事件触发并再次启动,例如启动一个可执行文件。
由于它是受保护的服务,因此调用ChangeServiceConfig
WinAPI 函数或sc config AppIDSvc start= disabled
禁用该服务会返回“拒绝访问”错误。
尝试终止服务进程,即使是在 SYSTEM 用户安全上下文中,也会导致“访问被拒绝”。
对我有用的唯一方法是将注册表值更改为然后Start
重新启动计算机。不幸的是,由于计算机重新启动,此方法不适合。HKLM\SYSTEM\CurrentControlSet\Services\AppIDSvc
4
基于AppLocker PowerShell cmdlet也可能有以下解决方案:
1)备份现有的 AppLocker 规则;
2)使用“覆盖现有”选项导入“允许所有人”规则;
3) 手术后恢复已有的。
它被证明是有效的,但也不适合:它只会替代本地 GPO 规则,不会覆盖域规则,并且该解决方案需要在域公司网络中工作。
任何人都可以提供建议吗?此外,该解决方案不得降低本机 Windows 安全性。同时,我们可以依靠客户意识到这一事实,甚至他们打算暂停 AppLocker 一段时间。
解决方案
推荐阅读
- java - Java 日期属性比较器合同违规
- java - 无法在火花流中使用直接 kafka 流反序列化 avro 数据
- javascript - javascript函数仅适用于第二次点击
- c# - 在模型弹出窗口上单击提交时进行验证?
- azure - Azure DevOps 作业忽略失败
- node.js - 如何在查询运行时将属性与 dynamodb 表中的小写值进行比较-> 项目-> 属性
- python - 查找 ISO 8601 次之间的持续时间
- sql-server - 使用触发器从表插入中记录多行数据
- android - Room @Ignore 注解生成编译时错误
- google-app-engine - 如何将通用目录请求映射到 Google AppEngine 中相应的 index.html 文件?