Y2K問題対応の名残か? まことしやかに語られる「NET.EXE」とは別に「NET1.EXE」が存在する理由:その知識、ホントに正しい? Windowsにまつわる都市伝説(233)
Windowsのインストール先ディレクトリを眺めていると、怪しげに見える実行ファイルが見つかることがあります。そんなファイルに「NET.EXE」と「NET1.EXE」があります。ウイルスか何かが入り込んで、システムファイルのフリをしているのではないかと勘違いする人もいるかも。
「NET.EXE」と「NET1.EXE」はとっても似ていて、全然違う
「NET」コマンドは、共有リソースの作成や接続、切断、SMB(Server Message Block)セッションローカルユーザー/グループの作成や管理、コンピュータに接続している全セッションの一覧表示、メッセージの送信、サービスの開始や停止、設定など、Windowsの初期設定やトラブルシューティングに役立つさまざまな機能を備えています。
「NET.EXE」はその実行ファイルであり、「%Windir%\System32」ディレクトリに配置されています。同じ場所に「NET1.EXE」という実行ファイルも見つかるでしょう(画面1)。ファイルのプロパティを確認すると、どちらも「NET Command」となっています。
これらを「/?」オプション付きで実行してヘルプを参照すると、全く同じNETコマンドの構文が表示されます。また、一部のオプションは「NET.EXE」と「NET1.EXE」どちらでも機能しますが、異なる挙動をするオプションも存在します(画面2)。
つまり、これらは「シンボリックリンク」や「ハードリンク」といった、同一のものではありません。何よりもまず、ファイルサイズが全く違います。手元にある「Windows 11」のバージョン22H2で確認したところ、「NET1.EXE」のファイルサイズは「NET.EXE」の2.5倍でした。
NETコマンドのオプションに応じて「NET.EXE」は「NET1.EXE」を呼び出す
Windowsのモジュール(DLL)の依存関係を調べることができるフリーのユーティリティー「Dependency Walker」で、「NET.EXE」と「NET1.EXE」の依存関係を調べてみると、「NET1.EXE」の方がより多くのDLLと依存関係を持つことが分かります(画面3)。言い換えれば、より多くの機能が「NET1.EXE」の方に実装されていると想像できます。
また、Windows Sysinternalsの「Process Monitor」でNETコマンド実行時のファイルI/Oを調べてみると、「NET.EXE」だけで完結するオプションもあれば、子プロセスとして「NET1.EXE」を実行するオプションもありました(画面4)。
- Process Monitor(Windows Sysinternals|Microsoft Learn)
これらのことから想像すると、NETコマンドがサポートするさまざまなオプションは「NET.EXE」と「NET1.EXE」のどちらかに実装されており、必要に応じて「NET.EXE」が「NET1.EXE」を呼び出すという実装になっているものと思われます。
試しに、Windows 11で「NET1.EXE」を削除してみました(注:システムファイルであるためアクセス許可の制限によって簡単には削除できませんが、決してまねしないように)。NETコマンドのオプションを幾つか試してみると、多くのオプションが「システムエラー2」で失敗するようになります。「システムエラー2」が発生するオプションは、「NET1.EXE」の方に実装されているということです(画面5)。
「NET1.EXE」はY2K問題対応の名残だった?
同じ場所にある「NET.EXE」と「NET1.EXE」の存在は、ユーザーにとって怪しく見えるようで、インターネットを検索してみると、さまざまなユーザーフォーラムで古くから議論されてきたようです。
その中でまことしやかに語られているのは、「NET1.EXE」は「Windows NT」や「Windows 2000」のNETコマンドに存在した「2000年(Y2K)問題」を一時的に修正するために導入され、その後の新しいWindowsではY2K問題は解消済みであるものの、「NET1.EXE」を使用する古いアプリケーションやバッチとの互換性を維持するために「NET1.EXE」として残されたという説です。
NETコマンドのY2K問題については、既に「Microsoftサポート技術情報」が削除されているため、知りたい方はWebアーカイブサービスで「KB240195」や「KB319913」を検索してみてください。これらのサポート技術情報によると、Y2K問題はWindows NT 4.0 SP(Service Pack)6aやWindows 2000 SP4で「NET1.EXE」の更新版が提供されたことで解消されると書いてありました。
手元にあった最も古いメディア「Windows NT Workstation 4.0 SP1」を仮想マシン環境に新規インストールしてみたところ、「NET1.EXE」はY2K問題のために導入されたのではなく、それ以前から存在するものでした。
Windows NTの最初のバージョンである「Windows NT 3.1」には「NET1.EXE」はなかったようですが、「Windows NT 3.51」からはあったようです。Y2K問題は確かに「NET1.EXE」で修正されましたが、それは「NET1.EXE」の追加で修正されたのではなく、Y2K問題が影響するオプション(「USER」オプション)の実装部分が「NET1.EXE」に含まれていたということが真相のようです(画面6)。
画面6 「NET1.EXE」はWindows NT 4.0 SP6aでY2K問題修正のために追加された? いや最初から存在していた(「Windows 95」や「Windows 98」には「NET1.EXE」はなかったらしい)。Y2K問題が影響するオプションの実装部分が「NET1.EXE」にあったというだけ
筆者紹介
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP 2008 to 2023(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows 11一般提供開始、企業での導入/展開時に注意すべきポイントは?
MicrosoftはWindowsデスクトップOSの最新バージョンである「Windows 11」を正式にリリースし、Windows 11対応ハードウェアを搭載したWindows 10デバイスに対して、無料アップグレードの段階的なロールアウトを開始しました。 - Windows 11登場! 11で変わること、思ったほど変わらないこと
新しいWindows OS「Windows 11」の正式出荷が2021年10月5日に開始された。Windows 10からの無償アップグレードが可能であるため、どのような新機能が実装されたのか気になる人も多いのではないだろうか。そこで、本稿ではWindows 11の新機能、削除された機能などを簡単にまとめてみた。 - 買って、試して分かったWindows 365(契約・セットアップ編)
Microsoftからクラウド上でWindows 10が動く「クラウドPC」の利用可能なサブスクリプションサービス「Windows 365」の提供が開始された。早速、サブスクリプションを契約し、クラウドPCの設定を行ってみた。契約からセットアップまでで見えてきた便利な点、不便な点などをまとめてみた。 - いよいよ完全終了へ。Internet Explorer(IE)サポート終了スケジュール
長らくWindows OSに標準装備されてきたInternet Explorer(IE)。その「寿命」は各種サポートの終了時期に左右される。Windows OSごとにIEのサポート終了時期を分かりやすく図示しつつ、見えてきた「終わり」について解説する。