0

从 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 的其他数据类型。

4

1 回答 1

0

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

于 2019-04-19T08:49:19.430 回答