查询 WMI 的权限

查询 WMI 的权限

我有一个项目要删除用户的管理员权限。我们在升级期间使用的应用程序针对 WMI 运行查询:

Namespace: root\Microsoft\sqlserver\computermanagement10
Class: sqlserviceadvancedproperty

由于我已从用户中删除了管理员权限,因此在查询该命名空间和类时无法返回任何数据,因此安装失败,提示未安装适当的 SQL Server 版本。

我尝试从上到下向命名空间添加权限,但没有成功。如果我将管理员权限重新添加到设备上的用户帐户,查询将再次有效。

我正在使用 powershell 来测试:

gwmi -namespace root\Microsoft\sqlserver\computermanagement10 -class sqlserviceadvancedproperty

当我以非管理员权限运行此程序时,它不会给出任何错误或任何提示。它只是返回 null 并将我带回命令提示符。以管理员权限运行,我得到了一大堆数据。

是否有人知道用户需要访问 Windows 中的哪些特定项目才能查询特定的 WMI 命名空间?

答案1

据我所知,这些是需要获得许可的地点:

  • 目录:\Windows\System32\WBEM

  • HKLM\SOFTWARE\Microsoft\WBEM

  • WMI 管理 (wmimgmt.msc) 中的适当权限

这些信息似乎对我的原帖没有帮助。验证这些信息后,我以本地管理员身份登录后,没有得到相同查询的结果。

事实证明,我在 GPO 中添加 MSSQLSERVER 服务权限时遗漏了一个帐户。内置帐户“SERVICE”必须对该服务具有读取权限,否则您将无法查询该 WMI 类。如果您

sc sdshow mssqlserver 

从命令行来看,“SERVICE”的 SDDL 应如下所示:

(A;;CCLCSWLOCRRC;;;SU)

如果您必须处理 SDDL 字符串,我发现这些非常有用:

相关内容