LNK ファイル形式とは?
.lnk ファイルは、Windows システムで使用されるショートカットファイルです。これらには、ローカルパス、UNC 共有、またはシェルアイテム ID リストによって識別されるターゲットのタイプと場所、および関連付けられたプログラムに関する情報が含まれています。
.lnk ファイルには、ユーザー定義の追加情報が含まれる場合があります。.exe アプリケーションに関連付けられている場合、ウィンドウの状態、作業ディレクトリ、コマンドライン引数など、参照先プログラムの初期起動属性を指定することもできます。Windows では、.lnk ファイルはターゲットファイルと同じアイコンを表示します。.lnk 拡張子はデフォルトでファイル名から隠されており、エクスプローラーには表示されません。
バイナリ形式は、Microsoft によって MS-SHLLINK 仕様(2010年公開)として文書化されています。すべての .lnk ファイルは、固定の 76 バイトヘッダーで始まります。マジックバイト 4C 00 00 00 に続いて、固定のシェルリンククラス CLSID が配置されます。関連するショートカット形式には、.url(インターネットショートカット)や .pif(レガシー DOS プログラムショートカット)があります。
.lnk ショートカットが機能しなくなった場合
名前や場所など、ターゲットファイルのパラメータを変更すると、そのファイルに繋がるすべてのショートカットファイルが無効になります。ドライブレターの変更やネットワーク共有のマッピングの変更も、デスクトップショートカットが消える原因となります。Windows には、壊れたショートカットを自動的に修復しようとするリンク追跡サービスが含まれています。修復に失敗した場合は、ショートカットを再作成するか、「プロパティ」ダイアログからターゲットパスを更新することが推奨される解決策です。
セキュリティと安全性
リスク: HIGHLNK は Windows において最も悪用される初期アクセス形式の一つです。ショートカットは、攻撃者が制御する引数と偽装されたアイコン(PDF、フォルダなど)を使用して、cmd や PowerShell を密かに起動できます。2022年に Microsoft がインターネット経由の Office マクロをブロックして以来、ZIP/ISO メール添付ファイル内の LNK は主要なマルウェアベクターとなりました。歴史的な LNK の欠陥には、CVE-2010-2568(Stuxnet、アイコン解析時のコード実行)や ZDI-CAN-25373 / CVE-2025-9491(プロパティダイアログで実際のコマンドを隠す空白パディング引数、2017年頃から11以上の国家支援グループによって悪用され、2025年11月のアップデートでようやく修正)が含まれます。ユーザーへのルール:メールや USB で届いた .lnk を決してダブルクリックせず、代わりに LECmd/ExifTool で検査し、Windows を最新の状態に保ってください。USB ドライブ上の «ショートカットウイルス» はフォルダを隠して悪意のあるショートカットに置き換えます。リンクを削除するだけでなく、ウイルススキャンと attrib コマンドでクリーンアップしてください。
形式の詳細
概要LNK ファイルを開くプログラム
HKCU\...\FileExts\.lnk\UserChoice を削除してエクスプローラーを再起動します。 LECmd.exe -f file.lnk - 何も実行せずに完全なメタデータ(ターゲット、タイムスタンプ、マシン ID)をダンプします。フォレンジックの標準ツールです。 技術的詳細
詳細仕様| コンテナタイプ | 固定長バイナリヘッダー(76 バイト)に続く、可変長のオプションデータブロック |
| マジックバイト | 4C 00 00 00 01 14 02 00 … C0 00 … 46 - 最初の 4 バイトがヘッダーサイズをエンコード。4〜19 バイト目が固定シェルリンククラス CLSID を保持(共にオフセット 0) |
| MIME タイプ | application/x-ms-shortcut |
| バイト順序 | すべての数値フィールドでリトルエンディアン |
| 文字列エンコーディング | コードページ (ANSI) または Unicode (UTF-16 LE)。ShellLinkHeader 内のフラグがいずれのエンコーディングであるかを示します |
| ターゲット参照タイプ | ローカルファイルまたはフォルダパス、UNC ネットワークパス、ボリュームルート、または EnvironmentVariableDataBlock を介した環境変数展開パス |
| 主要なデータ構造 | ShellLinkHeader, LinkTargetIDList (ITEMIDLIST), LinkInfo, StringData ブロック, ExtraData ブロック - ヘッダー以外はすべてオプション |
| ウィンドウ状態フィールド | ヘッダー内の ShowCommand:1 = 通常、3 = 最大化、7 = 最小化 |
| ホットキーフィールド | 仮想キーコードと修飾フラグ(Shift, Ctrl, Alt)を組み合わせたヘッダー内の 16 ビット値 |
| 相対パスのサポート | オプションの RelativePath 文字列により、ターゲットが同じボリューム内で移動された場合に Windows シェルがショートカットを自己修復できます |
| 埋め込まれたターゲットのタイムスタンプ | ターゲットの作成、最終書き込み、最終アクセスの FileTime 値が LinkInfo に保存されており、.lnk ファイルはデジタルフォレンジックにおいて貴重なアーティファクトとなります |
| アイコンの保存 | 個別の IconLocation パス文字列と、そのファイル内のアイコンリソースを指す整数 IconIndex |
| 拡張子の可視性 | デフォルトで Windows シェルにより非表示。`HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced` の HideFileExt 値によって制御されます |
| セキュリティ履歴 | Stuxnet (CVE-2010-2568) によって悪用:悪意のある .lnk ファイルがアイコン描画時にコード実行を誘発。MS10-046(2010年8月)で修正済み |
| プラットフォームサポート | Windows 95 およびそれ以降のすべての Windows バージョンにネイティブ対応。Linux および macOS では liblnk (lnkinfo) や ExifTool を介して解析可能 |
| リリース日 | 1995 (Windows 95); binary format publicly documented since 2010 as MS-SHLLINK |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | learn.microsoft.com |
LNK の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。LNK ファイルについて最初の質問をしてみましょう。
よくある質問
すべてのファイルが .lnk ショートカットに変わってしまいました。どうすれば元に戻せますか?
attrib -h -r -s /s /d X:\*.*(X: を該当するドライブに置き換えてください)を実行して隠し状態を解除します。その後、残った .lnk ファイルを削除してください。すべてのショートカットがメモ帳や Word で開くようになってしまいました。 .lnk の関連付けを直すには?
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice を削除し、エクスプローラーを再起動するか、PC を再起動してください。.lnk ファイルは危険ですか?
ショートカットが何を指しているか確認するには?
Mac や Linux で Windows の .lnk ファイルを開けますか?
拡張子を表示する設定にしても .lnk 拡張子が見えないのはなぜですか?
NeverShowExt フラグを介して常にこれを隠しているため、ショートカットには曲がった矢印のアイコンのみが表示されます。マルウェアはこの仕様を悪用して、«invoice.pdf.lnk» を «invoice.pdf» のように偽装します。