我正在开发一个具有更高信任度的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);
}
提前致谢。
答案 0 :(得分:2)
如果您可以在VBScript中执行此操作,那么您可以使用OOB + Elevated trust进行此操作。特别是WMI通常由通常用VBScript编写的管理脚本使用。因此,最好的方法是搜索您想要做的事情的VBScript示例,然后使用dynamic
类型简单地移植到C#。