複雑な理由により、cmd.exe
の同一のコピーを作成し、名前をcmd-2.exe
に変更することを余儀なくされました。これをタスクバーのショートカットとして配置し、異なるタスクバーグループに「グループ化」します。
時々これを忘れて、新しいcmd.exe
を開くには、そのタスクバーアイコンを中クリックして新しいcmd.exe
を開きます。次にdir
などのコマンドを入力すると、次のようなナンセンスが大量に出力されます。DNS bad key
は、誤ってcmd-2.exe
を使用した場合にのみ発生します。 「cmd.exe
」なので、「実用的な」問題ではありません。
しかし、なぜそのメッセージがまったく出力されないのでしょうか。なんらかのDNSルックアップなどに失敗しているように見えますか?ローカルコンピューター上のファイルを一覧表示するdir
の発行にDNSがまったく関係しているのはなぜですか?私はネットワークを設定しておらず、クラウドドライブもありません。 (どうやら)dir
を発行したときにDNSクエリが行われているのは恐ろしいです。
たぶんDNS bad key
は、ドメインネームシステムとはまったく関係のないものを指しますか?その文脈で「悪いキー」が何であるかさえ知りません。
2番目のcmd.exeは、ローカライズされた文字列の検索とその後の読み込みに失敗し、cmd.exe.muiサテライトリソースライブラリからローカライズされた文字列を読み込みます。
これは10.0.18362.1(160101.0800)から取得した、実際に言っていることです。
これは実際には、単純なdir
コマンド出力の最初の3行です。
これは面白いです。デフォルトのシステムメッセージテーブルには、メッセージ番号0x235Fおよび0x235Bのエントリはありません。したがって、最初の2つの出力では、@ harrymcのコンソールのスクリーンショットに示すように、その不可解なメッセージが表示されます。
しかし、0x2339の場合、デフォルトのシステムメッセージテーブルにエントリがあり、KernelBase.dll.muiに物理的に格納されて、「DNS bad key」というテキストをポイントしています。
コマンドプロセッサのリソースの "Directory of%1"行の番号を共有するのはたまたまです。cmd.exeの開発者が予期しないフォールバックです。したがって、DNS参照は単なる偶然であり、何でもかまいません。
適切なメッセージには可変引数(ディレクトリ名)が含まれていますが、DNSメッセージには含まれていません。そのため、それ以降は何も出力されなくなります。単に終了するだけかもしれません。
私は問題を再現することができました:
(私はメッセージがあまり有益ではないことに同意します。)
問題は、Vista以降、すべてのテキストメッセージが個別のファイルにコンパイルされるため、Windowsが新しいCMD名でメッセージファイルを検索し、それを見つけられないことです。
cmd.exe
をcmd-2.exe
にコピーするだけでは不十分です。また、フォルダ%WinDir%\System32\en-US
(または言語)にファイルcmd.exe.mui
をcmd-2.exe.mui
にコピーする必要があります。そうしないと、cmd-2.exe
がメッセージ。
注:ここでの「DNS」は、インターネット ドメインネームシステム を指すものではありません。これは単なる偶然です。