我正在尝试在Windows计算机上更改ComputerName。我得到一个非常奇怪的结果。
我正在使用的代码是:
public class MachineService
{
[DllImport("Kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetComputerNameA([MarshalAs(UnmanagedType.LPStr)] string computerName);
[DllImport("Kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetComputerName([MarshalAs(UnmanagedType.LPStr)] string computerName);
[DllImport("Kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool SetComputerNameEx(ComputerNameFormat NameType, [MarshalAs(UnmanagedType.LPStr)] string computerName);
public static bool ChangeName(string name)
{
var envVar = SetComputerName(name);
var ex = SetComputerNameEx(ComputerNameFormat.ComputerNamePhysicalNetBIOS, name);
return envVar && ex;
}
}
它确实设置了环境变量ComputerName,但没有设置设备的名称。请参见下面的图像。
编辑它已更改注册表。
如果我正确阅读了documentation,则应该:
ComputerNamePhysicalDnsHostname
而不是ComputerNamePhysicalNetBIOS
SetComputerName
之前致电SetComputerNameEx