不更改计算机名称,但更改 $env:ComputerName
Not Changing Computer Name, but changing $env:ComputerName
我正在尝试更改 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
- 你不应该在
SetComputerNameEx
之前调用 SetComputerName
我正在尝试更改 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
- 你不应该在
SetComputerNameEx
之前调用
SetComputerName