使用COM + Automation和WMI查询硬件信息

时间:2011-07-26 03:15:36

标签: silverlight automation wmi com+

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

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

    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);
    }

提前致谢。

1 个答案:

答案 0 :(得分:2)

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