导入 GPO WMI 过滤器 .mof 文件

导入 GPO WMI 过滤器 .mof 文件

我从 AD 域导出了几个 GPO WMI 过滤器作为.MOF文件。我发现我可以使用组策略管理控制台导入它们,但我更愿意通过脚本重新导入它们以自动完成整个过程。

我一直没能找到任何关于其如何工作的像样的文档,并且 TechNet 1上提供的脚本大多都是从源目录读取属性值并将它们写入目标。

如果需要,我希望保留使用 GPMC 手动恢复 WMI 过滤器备份的功能。因此,.mof需要一种在 WMI 过滤器导出时仅使用 GPMC 创建的文件的方法。


1有趣的是,多年来,不同的微软员工显然已经研究过类似的问题,并且都在 TechNet 上发布了类似的解决方案:

答案1

A.mof是该实用程序的输入文件mofcomp,存在于每个 Windows 系统上。您只需提供文件名和相应的命名空间作为参数即可使其工作。

文件名显然是最简单的部分 - 这是您在导出 WMI 筛选器时指定的内容。但如果没有正确的命名空间mofcomp,则无法运行.mof导出,因为它不知道在哪里找到正在实例化的 MSFT_SomFilter 类:

C:\Users\john>mofcomp wmi-filter-export.mof
Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: wmi-filter-export.mof
MOF file has been successfully parsed
Storing data in the repository...
An error occurred while resolving the alias for object 1 defined on lines 2 - 18:
0X80041002 Class, instance, or property 'MSFT_SomFilter' was not found.
Compiler returned error 0x80041002

只需在网上搜索课程名称,MSFT_SomFilter你就能找到MSDN 上的类文档链接其中方便地指出:

| Namespace |  Root\policy |

因此,只需mofcomp使用适当的命名空间进行调用,然后观察它的工作情况。您可能需要在具有管理权限(即提升权限)的域控制器上运行此操作。

C:\Users\john>mofcomp -N:root\Policy wmi-filter-export.mof
Microsoft (R) MOF Compiler Version 10.0.14393.0
Copyright (c) Microsoft Corp. 1997-2006. All rights reserved.
Parsing MOF file: wmi-filter-export.mof
MOF file has been successfully parsed
Storing data in the repository...
WARNING: File wmi-filter-export.mof does not contain #PRAGMA AUTORECOVER.
If the WMI repository is rebuilt in the future, the contents of this MOF file will not be included in the new WMI repository.
To include this MOF file when the WMI Repository is automatically reconstructed, place the #PRAGMA AUTORECOVER statement on the first line of the MOF file.
Done!

ID = <GUID>请注意,如果已经存在与该行定义的 WMI 过滤器具有相同 GUID 的 WMI 过滤器.mof,它将被覆盖。如果该 GUID 尚未使用,则将创建一个新的 WMI 过滤器。

#PRAGMA AUTORECOVER警告在这里没有实际内容 - 没有定义任何新类.mof,因此在重建 WMI 存储库的情况下不会丢失任何内容。

相关内容