调用 CIM 方法需要 MI_STRINGA 数据类型

Calling CIM method requires a MI_STRINGA data type

我正在尝试从 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-bit/ascii 字符串,但 C# 使用 unicode 字符串进行操作。 我如何给它一个 MI_STRINGA 数据类型?

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

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