【问题标题】:Calling CIM method requires a MI_STRINGA data type调用 CIM 方法需要 MI_STRINGA 数据类型
【发布时间】:2019-04-18 20:14:23
【问题描述】:

我正在尝试从 C# 调用 CIM 方法:

string str = "1.1.1.1";
var param = new CimMethodParametersCollection();
...
param.Add(CimMethodParameter.Create("NotifyServers", str, CimFlags.In));
session.InvokeMethod(_NameSpace, "PS_DnsServerPrimaryZone", "SetByParameters", param);

问题是它导致错误消息:WinRM 客户端无法处理请求。 MI 类型 MI_STRING 的属性“NotifyServers”与架构中的预期类型不匹配:MI_STRINGA。指定正确的类型并重试该操作。

看起来好像它需要一个 8 位/ascii 字符串,但 C# 使用 unicode 字符串操作。 如何给它一个 MI_STRINGA 数据类型?

我尝试了 byte[] 和 char[],以及指向封送内存块的指针。但它只会导致无法转换为 MI_STRINGA 的其他数据类型。

【问题讨论】:

    标签: c# wmi cim


    【解决方案1】:

    没关系。 MI_STRINGA 中的 A 表示数组,而不是 ASCII 或 ANSI。 所以一个简单的 string[] 就可以了....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-30
      • 2015-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      • 2011-02-14
      • 2014-08-05
      • 1970-01-01
      相关资源
      最近更新 更多