在 Windows Server 的 Active Directory 证书服务(ADCS)体系中,Microsoft.CertificateServices.Certenroll.Interop.ni.dll 是一个体量不大却相当关键的组件。它位于 .NET Framework 的原生映像缓存目录(如 C:\Windows\assembly\NativeImages_v4.0.30319_64\)下,是 CertEnroll 互操作程序集经 NGen 预编译后生成的本机映像文件。后缀 .ni 即 Native Image,表示它已被提前编译为机器码,用于绕过运行时 JIT 编译开销、加快加载速度。
| 故障层面 | 典型表现 |
|---|---|
| COM 激活 | 调用 CertEnroll 接口时报 0x80040154(类未注册)或 0x8007007E(找不到指定模块),证书请求无法创建 |
| 命令行工具 | certreq / certutil 执行证书申请、续订、模板查询时直接失败并返回错误代码 |
| 自动注册 | 域内计算机与用户的证书自动注册、续订流程中断,连带影响 802.1X、IPsec、VPN、BitLocker 等依赖证书的服务 |
| 上层应用 | IIS、Exchange、SCCM 等调用注册接口的程序出现加载异常或进程崩溃 |
| 日志 | 系统事件日志中出现 .NET Runtime、SideBySide 相关的加载错误记录 |
以管理员身份运行 ngen update 或 ngen install 重新生成原生映像;执行 sfc /scannow 与 DISM /Online /Cleanup-Image /RestoreHealth 修复系统文件;必要时从版本、架构完全一致的 Windows 系统中复制该文件并校验签名;最后重启 Certificate Services 服务使配置生效。