Windows에서 컴퓨터 이름을 변경해야하는 이유는 무엇입니까?


30

Windows 기반 컴퓨터 (클라이언트 또는 서버)의 호스트 이름 / 컴퓨터 이름을 변경하려면 재부팅해야합니다. 컴퓨터 이름이 변경되면 보류중인 컴퓨터 이름이 시스템 레지스트리에 저장되고 다음 부팅시 적용됩니다. 이것이 왜 필요한지에 대한 많은 기술 문서를 찾을 수 없었습니다.

시스템 재부팅없이 호스트 이름 변경이 완료되지 않은 이유에 대한 기술적 문제에 대해 올바른 방향으로 알려주시겠습니까?


1
재부팅이 필요한 이유에 대한 MSDN 기사 링크와 함께 허용 된 답변에 설명을 추가했습니다.
Ameer Deen

링크 된 기사 가 재부팅이 필요한 이유를 설명하지는 않습니다 . 결국, 다른 위치로 복사하는 것이 문제라면, 이름을 변경하라는 명령으로 계속 복사 할 수 있습니다. 허용되는 답변의 핵심 문장은 "시스템 호스트 이름을 사용하는 Microsoft 및 타사에서 작성하는 많은 Windows 서비스 및 응용 프로그램은 일반적으로 시작시 한 번만 읽고 다시 읽지 않습니다."입니다.
ToolmakerSteve

답변:


56

머신 이름을 바꾼 직후에 다시 시작할 필요는 없습니다. 모든 서비스와 기능이 새 이름을 선택할 것으로 기대하지는 않습니다.

시스템 환경 변수와 같은 것은 시스템 시작시 한 번 읽습니다. 이러한 변수를 변경하면 Windows의 다양한 구성 요소가 다시 시작될 때까지 해당 구성 요소를 선택하지 않습니다. 이러한 구성 요소 중 일부는 OS와 깊이 통합되어 있으므로 전체 OS를 다시 시작할 수도 있습니다.

시스템 호스트 이름을 사용하는 Microsoft 및 타사가 작성하는 많은 Windows 서비스 및 응용 프로그램은 일반적으로 시작시 한 번만 읽고 다시 읽지 않습니다.

컴퓨터의 호스트 이름을 읽는 응용 프로그램을 작성하고 있다면 변경되는 경우를 대비하여 주기적으로 폴링하는 것이 어리석은 일입니다.

Linux와 같은 운영 체제에서도 동일한 내용이 표시됩니다. 재부팅하지 않고 호스트 이름을 변경할 수 있지만 시스템의 기본 구성 요소 중 일부를 다시 시작하여 새 이름을 가져 오도록해야합니다. 리눅스는 Windows보다 모듈화되어 있지만 Windows는 모듈화 측면에서 먼 길을 왔습니다.

Windows 시스템이 컴퓨터 이름 바꾸기 작업을 보류 중인지 여부를 감지하는 한 가지 방법은 레지스트리를 확인하는 것입니다. 내용이

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName

HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName

동일하지 않습니다. 즉, 시스템에 다음에 시스템을 재부팅 할 때 완료되는 보류중인 이름 바꾸기 작업이 있습니다.


10
팁 Ryan에게 감사합니다. dotnetpeek을 사용하여 System.Environment.MachineName에 대한 코드를 찾았습니다. Kernel32.dll의 GetComputerName 함수를 사용합니다. "로컬 컴퓨터의 NetBIOS 이름을 검색합니다.이 이름은 시스템 시작시 시스템에서 레지스트리를 읽을 때 설정됩니다." ( msdn.microsoft.com/en-us/library/windows/desktop/… ). 다시 말해, 시작시 간단히 캐시됩니다. 백업 할 문서가 필요했습니다. 감사.
Ameer Deen

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.