【问题标题】:Does WMI access in .NET required administrative privileges?.NET 中的 WMI 访问是否需要管理权限?
【发布时间】:2023-04-02 03:18:01
【问题描述】:

我正在编写一个应用程序来获取一些系统信息。我想知道应用程序是否需要管理权限才能运行。我粗略地搜索了 WMI 文档、google 和 SO。

在我发现的所有内容中,我没有注意到任何提及它。我认为这意味着我不需要管理员权限。 (也因为我在 WinXP 机器上使用普通用户帐户对其进行了测试,并且运行良好。)

无论如何都是 .NET,x86 应用程序。需要在 XP 和 Win 7 上工作。

【问题讨论】:

  • 不,通常不会,除非在 WMI 类的 MSDN 文档中指出。 far 更常见的身份验证需求是尝试使用 WMI 访问另一台机器上的信息。告诉你你有一个特权问题,特别是在 C# 中,这并不害羞。有点像 pr0n,看到异常就知道了。

标签: c# .net wmi


【解决方案1】:

就像 Windows WMI 类、命名空间和实例中的每个文件、内核对象或任何其他需要安全性的对象一样,都有一个ACL,它定义了谁可以访问什么。 (基于SID) 连接到 WMI 被认为是一个 WMI 命名空间访问,它也有一个ACL。 WMI 上的大多数类和命名空间不需要管理帐户来连接和读取,写入是另一回事。 (请注意,远程访问时会发生变化,其顶部有一个DCOM 层,并且需要另一组权限,除非手动更改,否则这些权限是管理性的)

您可以使用 wbemtest.exe (C:\windows\system32\wbemtest.exe) 或 wmiexplorer(具有更好的 GUI)探索 WMI 类和命名空间,可以使用 wmimgmt.msc 和您可以看到 \\root\cimv2(默认命名空间)对所有经过身份验证的用户具有读取权限。

此外,微软有一个关于更改 wmi 权限的指南(假设您需要,通常是个坏主意):https://technet.microsoft.com/en-us/library/cc771551(v=ws.11).aspx

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多