从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。
没关系。 MI_STRINGA中的A表示数组,而不是ASCII或ANSI。所以一个简单的字符串[]会做....