重命名计算机无效的方法参数C#

重命名计算机无效的方法参数C#,c#,methods,parameters,wmi,rename,C#,Methods,Parameters,Wmi,Rename,为什么这样做有效: using System; using System.Management; public class InvokeMethod { public static void Main() { ManagementClass processClass = new ManagementClass("Win32_Process"); ManagementBaseObject inParams = processClass.GetMet

为什么这样做有效:

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);
无效的方法参数。
我知道你必须以管理员的身份运行它,因为它可以做任何事情,但我只想让它工作。

你不需要设置用户名和密码,它们默认为null,因为计算机将始终处于工作组中,也不必担心域问题。这看起来很相关:此链接更直接地回答了你的问题:@MattSmith我试过:字符串oldName=System.Environment.MachineName;ManagementClass重命名=新的管理类(“Win32_Computersystem.Name=”“+oldName+”);在第二行出现了无效的参数。不管怎样,那个家伙是对的,它工作正常。