在AppLocker中启用DLL规则后,如果未创建默认发布者规则,系统DLL(尤其是位于)中的本地组件 C:\Windows\Assembly 将被误判并被阻断,导致内核应用程序崩溃。 这是因为 DLL 规则比 EXE 规则更严格,必须明确允许系统组件执行。
要通过PowerShell生成默认规则,可以使用AppLocker的cmdlet。 打开带有权限提升功能的PowerShell,并执行以下命令:
PowerShell
New-AppLockerPolicy -DefaultRule -RuleType DLL -User Everyone | Set-AppLockerPolicy -Merge
这建立了 DLL 类型的默认发布规则,使所有已签名的 Windows 系统文件都能正常运行。 建议同时为 EXE、MSI 和 Script 规则建立默认规则,以确保整体一致性,例如:
PowerShell
New-AppLockerPolicy -DefaultRule -RuleType EXE,MSI,Script,DLL -User Everyone | Set-AppLockerPolicy -Merge
运行前,使用 Test-AppLockerPolicy 认证规则以避免意外阻断非系统 DLL。 另外,测试时一定要把 App Locker 的执行模式设置为组策略中的审计模式,只有确认没有误报后才切换到强制模式。
完成此过程后,系统 DLL 将不再被阻挡,应用程序可以正常启动。
多米克配音。