【问题标题】:Query Hardware Information using COM+ Automation and WMI使用 COM+ 自动化和 WMI 查询硬件信息
【发布时间】:2011-10-13 01:58:53
【问题描述】:

我正在开发具有更高信任度的 Silverlight 4(或可能 5)OOB 应用程序。我知道how to use AutomationFactory to query WMI,但是可以查询硬盘序列号等硬件信息吗?请注意,这是一个具有较高信任度的 OOB 应用程序,因此不存在安全风险。我将在我的 silverlight 应用程序上执行一些激活操作。

编辑:解决了!例如,您可以使用以下代码 sn -p 查询主板序列号:

    using (dynamic SWbemLocator = AutomationFactory.CreateObject("WbemScripting.SWbemLocator"))
    {
        SWbemLocator.Security_.ImpersonationLevel = 3;
        SWbemLocator.Security_.AuthenticationLevel = 4;
        dynamic IService = SWbemLocator.ConnectServer(".", @"root\cimv2");
        dynamic QueryResults = IService.ExecQuery(
            @"SELECT Product, SerialNumber FROM Win32_BaseBoard");
        dynamic QueryResult = QueryResults.ItemIndex(0);
        string name = QueryResult.Product;
        string value = QueryResult.SerialNumber;
        MessageBox.Show(name + "\r\n" + value);
    }

提前致谢。

【问题讨论】:

    标签: silverlight automation wmi com+


    【解决方案1】:

    基本上,如果您可以在 VBScript 中执行此操作,那么您可以使用 OOB+Elevated trust 执行此操作。尤其是 WMI,通常由通常用 VBScript 编写的管理脚本使用。因此,最好的方法是搜索您想要执行的操作的 VBScript 示例,然后使用 dynamic 类型简单地移植到 C#。

    【讨论】:

    • 谢谢,我完全按照你说的做了,而且成功了!我用一个例子编辑了我的问题。
    猜你喜欢
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2012-10-24
    • 2019-07-04
    • 2012-12-19
    相关资源
    最近更新 更多