なぜこれが機能するのですか:
using System;
using System.Management;
public class InvokeMethod
{
public static void Main()
{
ManagementClass processClass = new ManagementClass("Win32_Process");
ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
inParams["CommandLine"] = "calc.exe";
InvokeMethodOptions methodOptions = new InvokeMethodOptions(null, System.TimeSpan.MaxValue);
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, methodOptions);
}
}
そして、これは機能しません:
using System;
using System.Management;
public class Program
{
public static void Main()
{
ManagementClass rename = new ManagementClass("Win32_ComputerSystem");
ManagementBaseObject inParams = rename.GetMethodParameters("Rename");
inParams.SetPropertyValue("Name", "Name1234");
InvokeMethodOptions methodOptions = new InvokeMethodOptions(null, System.TimeSpan.MaxValue);
ManagementBaseObject outParams = rename.InvokeMethod("Rename", inParams, methodOptions);
Console.Read();
}
}
ここでの問題は次の行です。
ManagementBaseObject outParams = rename.InvokeMethod("Rename", inParams, methodOptions);
メソッド パラメータが無効です。何かを行うには管理者として実行する必要があることは理解していますが、機能させたいだけです。