Windows 10에서 "dir" 발행에 DNS가 분명히 관여하는 이유는 무엇입니까?

Windows 10에서 "dir" 발행에 DNS가 분명히 관여하는 이유는 무엇입니까?

cmd.exe복잡한 이유로 인해 의 동일한 복사본을 만들고 이름을 으로 변경 해야 했습니다 cmd-2.exe. 이를 작업 표시줄에 바로가기로 넣어 다른 작업 표시줄 그룹에 "그룹화"했습니다.

때로는 이 사실을 잊어버리고 새 cmd.exe작업 표시줄 아이콘을 마우스 가운데 버튼으로 클릭하여 새 cmd.exe. 그런 다음 다음과 같은 명령을 입력하면 dir다음을 포함하여 말도 안되는 소리가 뱉어집니다. 이는 "실제"를 열지 않고 DNS bad key실수로 를 사용한 경우에만 발생하므로 "실용적인" 문제는 아닙니다.cmd-2.execmd.exe

그런데 왜 그 메시지가 인쇄되었는지 궁금합니다. 일종의 DNS 조회 등을 수행하지 못하는 것 같나요? dir내 로컬 컴퓨터의 파일 목록을 발행하는 데 DNS가 관련된 이유는 무엇입니까 ? 네트워크 설정도 없고, 클라우드 드라이브도 없고, 그런 것도 전혀 없습니다. .dir

아마도 DNS bad key도메인 이름 시스템과 전혀 관련이 없는 것을 의미하는 것일까요? 나는 그 맥락에서 "잘못된 키"가 무엇인지조차 모릅니다.

답변1

두 번째 cmd.exe는 cmd.exe.mui 위성 리소스 라이브러리에서 지역화된 문자열을 찾아서 로드하지 못합니다.

다음은 10.0.18362.1(160101.0800)에서 가져온 실제로 말하려는 내용입니다.

  • 0x235F: "드라이브 %1의 볼륨은 %2입니다."
  • 0x235B: "볼륨 일련 번호는 %1입니다."
  • 0x2339: "%1 디렉터리"

이것은 실제로 일반 명령 출력의 처음 세 줄입니다 dir.

이것은 재미있는 것입니다. 기본 시스템 메시지 테이블에는 메시지 번호 0x235F 및 0x235B에 대한 항목이 없습니다. 따라서 처음 두 출력의 경우 @harrymc의 콘솔 스크린샷에 표시된 것처럼 비밀스러운 메시지를 받게 됩니다.

그러나 0x2339의 경우 기본 시스템 메시지 테이블에 "DNS 잘못된 키"라는 텍스트를 가리키는 항목이 KernelBase.dll.mui에 물리적으로 저장되어 있습니다.

ResHacker에서 가져온 스크린샷

명령 프로세서 리소스의 "디렉터리 %1" 줄 번호를 공유하는 일이 발생합니다. 이는 cmd.exe 개발자가 예상하지 못한 대체 현상입니다. 따라서 DNS 참조는 우연일 뿐이며 무엇이든 될 수 있습니다.

적절한 메시지에는 가변 인수(디렉토리 이름)가 포함되어 있지만 DNS 메시지에는 포함되어 있지 않습니다. 그래서 그 이후에는 더 이상 출력이 없는 것 같습니다. 그냥 종료될 수도 있습니다.

답변2

문제를 복제했습니다.

여기에 이미지 설명을 입력하세요

(메시지가 그다지 유익하지 않다는 점에 동의합니다.)

문제는 Vista부터 모든 텍스트 메시지가 별도의 파일로 컴파일되므로 Windows가 새 CMD 이름으로 메시지 파일을 검색하지만 찾을 수 없다는 것입니다.

cmd.exe에 복사하는 것만으로는 충분하지 않습니다 cmd-2.exe. 또한 %WinDir%\System32\en-US 파일을 폴더(또는 해당 언어)에 복사해야 합니다 cmd.exe.mui. 그렇지 않으면 메시지를 발행해야 할 cmd-2.exe.mui때마다 이러한 미친 메시지를 받게 됩니다 .cmd-2.exe

참고: 여기서 "DNS"는 인터넷을 의미하지 않습니다. 도메인 명 시스템. 이것은 단지 우연일 뿐입니다.

관련 정보