윈도우에서 커맨드로 hostname 변경하는 방법

윈도우에서 hostname을 변경하려면 보통 아래와 같이 GUI로 할 것이다.


하지만 배치스크립트를 돌리는 경우 hostname을 변경하려면 어떻게 해야 할까?

2가지 정도의 방법을 소개하겠다.

wmic 커맨드로 변경하기

관리자 권한으로 커맨드 창을 띄운 후 아래와 같이 입력해보자.

wmic ComputerSystem Where Name="%COMPUTERNAME%" Call Rename Name="NEW-HOSTNAME"

"%COMPUTERNAME%" 은 현재의 hostname을 받아주는 환경변수이기 때문에 Where 조건에 그대로 사용하면 된다. 물론 해당 변수를 사용하지 않고 직접 hostname을 입력해도 상관은 없다.

"NEW-HOSTNAME" 은 새로운 hostname이다. 이 부분만 각자 원하는 이름으로 변경하면 된다.

 C:\>wmic ComputerSystem Where Name="%COMPUTERNAME%" Call Rename Name="NEW-HOSTNAME"
Executing (\\WIN2008R2\ROOT\CIMV2:Win32_ComputerSystem.Name="WIN2008R2")->Rename()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
};

위 실행 결과를 보면 ReturnValue = 0; 으로 나왔다. 0으로 나오면 성공한 것이다. 물론 hostname 변경이기 때문에 리부팅을 해야 적용이 된다.

레지스트리 편집하기

※ 레지스트리 방법으로 변경할 경우 반드시 15자 이하로 해야 한다. 15자를 초과하면 리부팅 후 블루스크린이 뜬다.

관리자 권한으로 커맨드 창을 띄운 후 아래와 같이 입력해보자.

reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /d "NEW-HOSTNAME" /f

reg add "HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters" /v "NV Hostname" /d "NEW-HOSTNAME" /f

위와 같이 두 곳의 레지스트리 값을 수정해줘야 한다. 마찬가지로 "NEW-HOSTNAME" 부분에 새로운 hostname을 입력하면 되고, 리부팅 해야 적용된다.

C:\>reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /d "NEW-HOSTNAME" /f
작업을 완료했습니다.
C:\>
C:\>reg add "HKLM\SYSTEM\CurrentControlSet\services\Tcpip\Parameters" /v "NV Hostname" /d "NEW-HOSTNAME" /f
작업을 완료했습니다.
신고

  1. hongyang
    2014.02.07 00:28 신고

    wmic은 만병통치약인가

  2. 칼린츠
    2014.04.14 15:31 신고

    윈도우2008에서는 netdom이라는 명령으로도 가능하죠.
    wmic로 쓰다가 netdom 명령이 더 편한 것 같아서 요즘엔 netdom 명령을 주로 사용합니다.

    netdom renamecomputer "기존 호스트명" /newname:"변경될 호스트명"

    예) netdom renamecomputer %COMPUTERNAME% /newname:"NEW-HOSTNAME"
    이런식으로 사용 가능합니다.

    변경하겠냐는 안내 메시지를 생략하고 자동으로 리부팅까지 하려면

    예) netdom renamecomputer %COMPUTERNAME% /newname:"NEW-HOSTNAME" /force /reboot
    이렇게...