Не изменение имени компьютера, а изменение $ env: ComputerName - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь изменить имя компьютера на машине windows. У меня очень странный результат.

Код, который я использую:

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;
    }
}

Он устанавливает Environment Variable ComputerName, но не устанавливает имя устройства . см. изображения ниже.

PowerShell ComputerName

System Name

EDIT It изменил реестр.

RegEdit

1 Ответ

1 голос
/ 16 июня 2020

Если я правильно прочитал документацию , вы должны:

  • использовать ComputerNamePhysicalDnsHostname вместо ComputerNamePhysicalNetBIOS
  • , и вам НЕ следует звонить SetComputerName до SetComputerNameEx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...