ややこしい理由で、cmd.exe
の同じコピーを作ってcmd-2.exe
に名前を変えて、タスクバーにショートカットとして置いて別のタスクバーグループに「グループ化」させることを余儀なくされています
時々、このことを忘れてしまい、新しいcmd.exe
を開くためにタスクバーのアイコンをミドルクリックして新しいcmd.exe
を開くことがあります。その後、dir
のようなコマンドを入力すると、DNS bad key
を含む無意味なコマンドがたくさん出てきます。DNS bad key
は、cmd-2.exe
を誤って使ってしまった場合にしか起こらず、”本物 “のcmd.exe
を開いた場合には起こらないので、”実用的 “な問題ではありません
しかし、なぜそのメッセージが全く出てこないのか不思議です。どうやらDNSの検索か何かに失敗しているのでしょうか?私のローカルコンピュータ上のファイルを一覧表示するためにdir
を発行するのに、なぜDNSが全く関係しているのでしょうか?私はネットワークの設定もクラウドドライブも何もしていない。dir
を発行したときに(どうやら)DNSの問い合わせがあるのが怖い
もしかしてDNS bad key
はドメイン名システムとは全く関係のないものを指しているのでは?その文脈で「悪い鍵」が何を意味しているのかすら分からない
98 Khalid 2020-02-10
2つ目のcmd.exeでは、cmd.exe.mui衛星リソースライブラリからローカライズされた文字列を検索してロードすることができませんでした
ここでは、10.0.18362.1 (160101.0800) から取得した、それが本当に言おうとしていることを示しています
- 0x235F: “ドライブ %1 のボリュームは %2 です
- 0x235B: “ボリュームのシリアル番号は %1 です”
- 0x2339: “%1 のディレクトリ”
これは実際には、プレーンなdir
コマンド出力の最初の3行です
これは面白いですね。デフォルトのシステムメッセージテーブルにはメッセージ番号0x235Fと0x235Bのエントリがありません。そのため、最初の2つの出力では、@harrymcさんのコンソールのスクリーンショットにあるような暗号的なメッセージが表示されます
しかし、0x2339については、KernelBase.dll.muiに物理的に格納されているデフォルトのシステムメッセージテーブルに「DNS bad key」というテキストを指すエントリがあります
それは偶然にもコマンドプロセッサのリソースの「%1のディレクトリ」行の番号を共有しています:cmd.exeの開発者が予想していなかったフォールバック。つまり、DNS の参照は単なる偶然の一致であり、何でもありなのです
適切なメッセージには変数引数(ディレクトリ名)が含まれているのに対し、DNSメッセージには含まれていないことに注意してください。そのため、その後の出力がないのではないかと思います – 終了するだけかもしれません
210 dlatikay 2020-02-10
なんとか重複してしまいました
(メッセージの内容があまり参考にならないのは同意します)
問題は、Vistaから始まるすべてのテキストメッセージが別のファイルにコンパイルされているため、Windowsは新しいCMD名のメッセージファイルを検索してしまい、それを見つけることができないことです
cmd.exe
をcmd-2.exe
にコピーするだけでは十分ではありません。また、%WinDir%\System32\en-US
(あるいはあなたの言語) フォルダにファイル cmd.exe.mui
から cmd-2.exe.mui
をコピーする必要があります
注意:ここでいう「DNS」とは、インターネットドメイン名システムのことではありません。これは単なる偶然です
112 harrymc 2020-02-10