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

问题描述 投票:0回答:1

从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个回答
0
投票

没关系。 MI_STRINGA中的A表示数组,而不是ASCII或ANSI。所以一个简单的字符串[]会做....

© www.soinside.com 2019 - 2024. All rights reserved.