Autor Beitrag
_mk_
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23



BeitragVerfasst: Di 11.10.22 14:22 
@All.

Die Ausführung der WMI-Methode mit Hilfe von ManagementClass.InvokeMethod schlägt mit der Fehlermeldung Die Parameter der Methode sind ungültig fehl. Die Methode InstallProductKey der WMI-Klasse SoftwareLicensingService erwartet den Parameter ProductKey als String. Wo liegt mein Fehler?

Vielen Dank im Voraus.

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
        private static void InstallProductKey(string productKey)
        {
            ManagementClass managementClass = new ManagementClass("SoftwareLicensingService");

            /* foreach (MethodData methodData in managementClass.Methods)
            {
                Debug.WriteLine(methodData.Name);
                if (methodData.InParameters != null && methodData.InParameters.Properties.Count > 0)
                {
                    foreach (PropertyData propertyData in methodData.InParameters.Properties)
                    {
                        Debug.WriteLine($"    {propertyData.Type} {propertyData.Name}");
                    }
                }
            } */


            // InstallProductKey method of the SoftwareLicensingService class
            // https://learn.microsoft.com/en-us/previous-versions/windows/desktop/sppwmi/installproductkey-softwarelicensingservice
            // unit32 InstallProductKey([in] string ProductKey);
            ManagementBaseObject inParams = managementClass.GetMethodParameters("InstallProductKey");
            inParams["ProductKey"] = productKey;

            //object[] methodArguments = { productKey };

            try
            {
                // object result = managementClass.InvokeMethod("InstallProductKey", methodArguments);
                var result = managementClass.InvokeMethod("InstallProductKey", inParams, null);

                Console.WriteLine($"Installing product key returned: {result}");
            }
            catch (Exception e)
            {

                Console.WriteLine("Failed to execute method");
                Console.WriteLine(e.Message);
                throw;
            }
        }
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 11.10.22 15:25 
Es sollte doch ein
ausblenden C#-Quelltext
1:
var result = managementClass.InvokeMethod("InstallProductKey"object[] { productKey });					

reichen :gruebel: