Windows 기반 컴퓨터 (클라이언트 또는 서버)의 호스트 이름 / 컴퓨터 이름을 변경하려면 재부팅해야합니다. 컴퓨터 이름이 변경되면 보류중인 컴퓨터 이름이 시스템 레지스트리에 저장되고 다음 부팅시 적용됩니다. 이것이 왜 필요한지에 대한 많은 기술 문서를 찾을 수 없었습니다.
시스템 재부팅없이 호스트 이름 변경이 완료되지 않은 이유에 대한 기술적 문제에 대해 올바른 방향으로 알려주시겠습니까?
Windows 기반 컴퓨터 (클라이언트 또는 서버)의 호스트 이름 / 컴퓨터 이름을 변경하려면 재부팅해야합니다. 컴퓨터 이름이 변경되면 보류중인 컴퓨터 이름이 시스템 레지스트리에 저장되고 다음 부팅시 적용됩니다. 이것이 왜 필요한지에 대한 많은 기술 문서를 찾을 수 없었습니다.
시스템 재부팅없이 호스트 이름 변경이 완료되지 않은 이유에 대한 기술적 문제에 대해 올바른 방향으로 알려주시겠습니까?
답변:
머신 이름을 바꾼 직후에 다시 시작할 필요는 없습니다. 모든 서비스와 기능이 새 이름을 선택할 것으로 기대하지는 않습니다.
시스템 환경 변수와 같은 것은 시스템 시작시 한 번 읽습니다. 이러한 변수를 변경하면 Windows의 다양한 구성 요소가 다시 시작될 때까지 해당 구성 요소를 선택하지 않습니다. 이러한 구성 요소 중 일부는 OS와 깊이 통합되어 있으므로 전체 OS를 다시 시작할 수도 있습니다.
시스템 호스트 이름을 사용하는 Microsoft 및 타사가 작성하는 많은 Windows 서비스 및 응용 프로그램은 일반적으로 시작시 한 번만 읽고 다시 읽지 않습니다.
컴퓨터의 호스트 이름을 읽는 응용 프로그램을 작성하고 있다면 변경되는 경우를 대비하여 주기적으로 폴링하는 것이 어리석은 일입니다.
Linux와 같은 운영 체제에서도 동일한 내용이 표시됩니다. 재부팅하지 않고 호스트 이름을 변경할 수 있지만 시스템의 기본 구성 요소 중 일부를 다시 시작하여 새 이름을 가져 오도록해야합니다. 리눅스는 Windows보다 모듈화되어 있지만 Windows는 모듈화 측면에서 먼 길을 왔습니다.
Windows 시스템이 컴퓨터 이름 바꾸기 작업을 보류 중인지 여부를 감지하는 한 가지 방법은 레지스트리를 확인하는 것입니다. 내용이
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName
과
HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName
동일하지 않습니다. 즉, 시스템에 다음에 시스템을 재부팅 할 때 완료되는 보류중인 이름 바꾸기 작업이 있습니다.
재부팅을 건너 뛰는 스크립트는 다음과 같습니다. https://gist.github.com/timnew/2373475