सी # से मैं एक सीआईएम विधि को कॉल करने का प्रयास कर रहा हूं:

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-बिट/एएससीआई स्ट्रिंग चाहता है, लेकिन सी # यूनिकोड स्ट्रिंग्स के साथ काम करता है। मैं इसे MI_STRINGA डेटा प्रकार कैसे दूं?

मैंने बाइट [] और चार [], और पॉइंटर्स को मार्शल मेमोरी भाग की कोशिश की। लेकिन यह केवल अन्य डेटा प्रकारों में परिणत होता है जो इसे MI_STRINGA में परिवर्तित नहीं कर सकता है।

0
Jan 18 अप्रैल 2019, 23:14

1 उत्तर

सबसे बढ़िया उत्तर

कोई बात नहीं। MI_STRINGA में A का अर्थ सरणी है, ASCII या ANSI नहीं। तो एक साधारण स्ट्रिंग [] करेगा ....

0
Jan 19 अप्रैल 2019, 08:49