※本ページにはプロモーション(広告)が含まれています
Windowsでフォルダを別の場所に「見せかけたい」「パスを変えずに実態だけ移動したい」と思ったことはありませんか?そんな場面で役立つのがシンボリックリンクです。
ショートカットとは違い、OSレベルで動作するためコマンドプロンプトやアプリケーションからも透過的にアクセスできます。OneDriveのフォルダ移動・ゲームのインストール先変更・開発環境の整備など、幅広い場面で活躍します。
この記事では、Windowsのシンボリックリンクを作成・確認・削除するすべての手順を、エラー対処や管理者権限不要の方法まで含めて徹底解説します。
- シンボリックリンクとショートカット・ハードリンク・ジャンクションの違い
- mklinkコマンドの全オプション(/D・/H・/J)と具体的な使い方
- OneDrive・ゲームフォルダ・開発環境での実践的ユースケース
- 管理者権限なしでシンボリックリンクを作成する方法(Developer Mode)
- 「アクセスが拒否されました」「一般エラー」の原因と解決法
- シンボリックリンクの確認・削除方法
- PowerShellでの代替コマンド(New-Item)
シンボリックリンクとは?ショートカットとの違いをわかりやすく解説
シンボリックリンクとは、別の場所にあるファイルやフォルダへの「参照パス」を持つ特殊なファイルです。OSがアクセスを透過的に中継するため、リンク先に実際のデータがあるかのように扱えます。
Windowsのショートカット(.lnkファイル)との最大の違いは、OSレベルで動作する点です。ショートカットはWindowsのエクスプローラーが解釈するだけですが、シンボリックリンクはコマンドプロンプト・PowerShell・アプリケーション・バッチファイルすべてから透過的に参照できます。
ショートカット・シンボリックリンク・ハードリンク・ジャンクションの比較
| 種類 | 対象 | 別ドライブ | ネットワーク | 管理者権限 | 元削除後 |
|---|---|---|---|---|---|
| ショートカット(.lnk) | ファイル・フォルダ | ○ | ○ | 不要 | リンク切れ |
| シンボリックリンク | ファイル・フォルダ | ○ | ○ | 通常必要(※) | リンク切れ |
| ハードリンク | ファイルのみ | × | × | 不要 | リンクが実体を保持 |
| ジャンクション | フォルダのみ | ○(同一PC) | × | 不要 | リンク切れ |
※ Developer Modeを有効にすると管理者権限なしで作成可能(後述)
いつシンボリックリンクを使うべきか
以下の状況ではシンボリックリンクが特に有効です。
- アプリケーションのデータフォルダをSSDからHDDに移動したいが、パスは変えられない
- OneDriveの同期フォルダに含めたくないフォルダを、別ドライブに実態を置いて管理する
- ゲームのインストール先をCドライブからDドライブに移動する(Steam・Epic等)
- 開発環境でNode.jsのモジュールや設定ファイルを複数プロジェクトで共有する
- バッチファイルやスクリプトでパスをハードコードしていて変更できない
シンボリックリンク作成の事前準備
動作条件の確認
シンボリックリンクを作成するには以下の条件が必要です。
- ファイルシステム:NTFSフォーマットのドライブのみ対応(FATやexFATは不可)
- 権限:管理者権限(またはDeveloper Modeが有効なアカウント)
- OS:Windows Vista以降(Windows 10・11でも同様の手順で使用可能)
NTFSかどうか確認する方法
エクスプローラーでドライブを右クリック→「プロパティ」を開くと、「ファイルシステム:NTFS」と表示されていれば問題ありません。
管理者権限のコマンドプロンプトを起動する
シンボリックリンク作成には管理者として実行したコマンドプロンプトが必要です。
Windows 10・11の場合:
- スタートボタンを右クリック(またはWin+X)
- 「Windows ターミナル(管理者)」または「コマンドプロンプト(管理者)」をクリック
- ユーザーアカウント制御(UAC)の確認ダイアログで「はい」をクリック
- タイトルバーに「管理者:コマンドプロンプト」と表示されれば準備完了
Windows 7・8の場合:
- スタートメニューで「cmd」と入力
- 「コマンドプロンプト」を右クリック→「管理者として実行」
mklinkコマンドの使い方(全オプション解説)
Windowsでシンボリックリンクを作成するコマンドは mklink です。コマンドプロンプトで mklink /? と入力すると使い方が表示されます。
基本構文
MKLINK [[/D] | [/H] | [/J]] リンク名 ターゲット
オプション一覧
| オプション | 種類 | 対象 | 別ドライブ | 主な用途 |
|---|---|---|---|---|
| (なし) | ファイルシンボリックリンク | ファイル | ○ | 設定ファイル・DLLの共有 |
| /D | ディレクトリシンボリックリンク | フォルダ | ○ | フォルダの仮想配置・移動 |
| /H | ハードリンク | ファイル | × | 同一ドライブ内のファイル複製 |
| /J | ジャンクション | フォルダ | ○(同一PC) | 管理者権限なしでフォルダリンク |
ファイルへのシンボリックリンクを作成する(オプションなし)
mklink C:\Users\user\Desktop\config.ini C:\MyApp\config.ini
これにより、デスクトップの config.ini がアプリの設定ファイルを指すシンボリックリンクになります。どちらから編集しても同じファイルが更新されます。
フォルダへのシンボリックリンクを作成する(/D)
mklink /D C:\Games\MyGame D:\GameData\MyGame
Cドライブの C:\Games\MyGame フォルダがDドライブの実態を指すようになります。ゲームランチャーにはCドライブのパスを登録したまま、実際のデータはDドライブに置けます。
注意:パスにスペースが含まれる場合はダブルクォートで囲む
mklink /D "C:\Program Files\MyGame" "D:\Game Data\MyGame"
ハードリンクを作成する(/H)
mklink /H C:\Backup\document.docx C:\Users\user\Documents\document.docx
ハードリンクは元ファイルと同一のデータを参照します。元ファイルを削除してもハードリンク側が実体を保持します。ただし同一ドライブ内のファイルにのみ使用可能です。
ジャンクションを作成する(/J)
mklink /J C:\OldPath\Data D:\NewPath\Data
ジャンクションはフォルダ専用で、管理者権限がなくても作成できるのが最大のメリットです。同一PC内の別ドライブへのリンクに適しています。ただしネットワーク上のフォルダには使えません。
実践ユースケース:シンボリックリンクの活用例
ユースケース①:OneDriveのフォルダを別ドライブに移動する
OneDriveの同期フォルダ内に大容量フォルダを置きたくない場合に有効です。実態をDドライブに移動し、元のパスにシンボリックリンクを張ります。
- OneDriveフォルダ内の対象フォルダを Dドライブにコピー(例:
D:\OneDriveData\Photos) - 元のフォルダを削除する前に、正常にコピーされたか確認する
- 元のフォルダを削除:
rmdir /S /Q "C:\Users\user\OneDrive\Photos" - シンボリックリンクを作成:
mklink /D "C:\Users\user\OneDrive\Photos" "D:\OneDriveData\Photos"
OneDriveは Photos フォルダが存在すると認識したまま、実データはDドライブに保存されます。
ユースケース②:ゲームのインストール先をCドライブからDドライブに変更する
SteamなどのゲームをCドライブにインストールしてしまったが、容量不足でDドライブに移したい場合です。
- ゲームのフォルダを
D:\SteamGames\GameNameにコピーまたは移動 - 元のフォルダを削除(コピー元)
- シンボリックリンクを作成:
mklink /D "C:\Program Files (x86)\Steam\steamapps\common\GameName" "D:\SteamGames\GameName"
Steamはゲームが元の場所にあると認識するため、ゲームを再インストールせずにDドライブを使えます。
ユースケース③:開発環境の設定ファイルを複数プロジェクトで共有する
Node.jsプロジェクトで .eslintrc.json や .prettierrc を複数プロジェクトで共有したい場合:
mklink C:\Projects\ProjectB\.eslintrc.json C:\Projects\SharedConfig\.eslintrc.json mklink C:\Projects\ProjectC\.eslintrc.json C:\Projects\SharedConfig\.eslintrc.json
これで SharedConfig フォルダの設定ファイルを変更するだけで、全プロジェクトに反映されます。
ユースケース④:アプリのデータフォルダをSSDからHDDに移す
ゲームのセーブデータや動画編集ソフトのキャッシュなど、パスを変更できないアプリのデータを大容量HDDに移す場合:
mklink /D "C:\Users\user\AppData\Local\AppName\Cache" "D:\AppCache\AppName"
管理者権限なしでシンボリックリンクを作成する方法(Developer Mode)
Windows 10 バージョン1703以降では、開発者モード(Developer Mode)を有効にすることで管理者権限なしにシンボリックリンクを作成できます。
Developer Modeを有効にする手順
- スタートメニュー→「設定」(歯車アイコン)を開く
- 「更新とセキュリティ」→「開発者向け」をクリック
- 「開発者モード」を選択してONにする
- 確認ダイアログが表示されたら「はい」をクリック
- 設定が適用されるまで数秒待つ
有効化後は、通常のコマンドプロンプト(管理者権限なし)からも mklink コマンドが実行できます。
注意:Developer Modeは開発用途向けの設定です。セキュリティリスクを理解した上で有効化してください。企業の管理PCでは IT管理者の許可が必要な場合があります。
シンボリックリンクの確認方法
dirコマンドで確認する
コマンドプロンプトで dir を実行すると、シンボリックリンクは <SYMLINK> や <SYMLINKD> と表示されます。
dir C:\Users\user\Desktop
出力例:
2026/03/16 10:00 <SYMLINKD> Photos [D:\OneDriveData\Photos] 2026/03/16 10:00 <SYMLINK> config.ini [C:\MyApp\config.ini]
<SYMLINKD>… ディレクトリシンボリックリンク(/D で作成)<SYMLINK>… ファイルシンボリックリンク(オプションなし)<JUNCTION>… ジャンクション(/J で作成)
PowerShellで確認する
Get-Item "C:\Users\user\Desktop\Photos" | Select-Object Name, LinkType, Target
出力例:
Name LinkType Target
---- -------- ------
Photos SymbolicLink {D:\OneDriveData\Photos}
シンボリックリンクの削除方法
重要:シンボリックリンクを削除しても、リンク先の実データは削除されません。逆に、リンク先フォルダを誤って削除しないよう注意が必要です。
ファイルシンボリックリンクの削除
del C:\Users\user\Desktop\config.ini
ディレクトリシンボリックリンク・ジャンクションの削除
rmdir C:\Users\user\Desktop\Photos
⚠️ 注意:rmdir /S(中身も削除)は絶対に使わないこと!シンボリックリンクフォルダに /S オプションをつけて削除すると、リンク先の実データまで削除される危険があります。必ず rmdir(/Sなし)で削除してください。
エクスプローラーから削除する場合の注意
エクスプローラーでシンボリックリンクを右クリック→削除するとリンクファイル自体が削除されます。ただしフォルダシンボリックリンクを「フォルダ内に入ってからDeleteキー」で削除しようとすると、リンク先の実データを削除する恐れがあるため、必ずリンク自体を右クリックして削除してください。
PowerShellでシンボリックリンクを作成する(New-Item)
PowerShellでも同様の操作が可能です。スクリプトに組み込む場合はPowerShellの方が扱いやすい場面もあります。
ファイルシンボリックリンクの作成
New-Item -ItemType SymbolicLink -Path "C:\Desktop\config.ini" -Target "C:\MyApp\config.ini"
ディレクトリシンボリックリンクの作成
New-Item -ItemType SymbolicLink -Path "C:\Games\MyGame" -Target "D:\GameData\MyGame"
ジャンクションの作成
New-Item -ItemType Junction -Path "C:\OldPath\Data" -Target "D:\NewPath\Data"
ハードリンクの作成
New-Item -ItemType HardLink -Path "C:\Backup\file.txt" -Target "C:\Original\file.txt"
mklink vs New-Item 比較
| 項目 | mklink(CMD) | New-Item(PowerShell) |
|---|---|---|
| コマンドの長さ | 短い | 長い |
| スクリプト組み込み | △(バッチ向け) | ○(PowerShell向け) |
| エラーハンドリング | △ | ○(try-catchが使える) |
| 既存リンクの上書き | 不可(一度削除が必要) | -Force オプションで可能 |
| 利用環境 | コマンドプロンプト | PowerShell・Windows Terminal |
よくあるエラーと解決方法
エラー①:「アクセスが拒否されました」
原因:管理者権限のないコマンドプロンプトからmklinkを実行している
解決方法:
- コマンドプロンプトを管理者として実行する(スタートボタン右クリック→「コマンドプロンプト(管理者)」)
- または、Developer Modeを有効にしてから通常のコマンドプロンプトで実行する
エラー②:「ファイルはすでに存在します」
原因:指定したリンク名のファイルまたはフォルダがすでに存在している
解決方法:
- リンク名を別の名前に変更する
- または既存のファイル・フォルダを削除してから再実行する
エラー③:「指定されたパスが見つかりません」(一般エラー)
原因:ターゲットのパスが存在しない、またはパスの記述が誤っている
解決方法:
- ターゲットパスが正しく存在するか確認:
dir D:\GameData\MyGame - パスにスペースが含まれている場合はダブルクォートで囲む
- パスの区切り文字を
\(バックスラッシュ)に統一する
エラー④:「このオプションはこのコマンドでは使用できません」
原因:オプションの指定が間違っている。たとえばフォルダリンクに /D をつけ忘れた、またはハードリンクをフォルダに対して作成しようとしている
解決方法:
- フォルダへのリンクは必ず
/D(シンボリック)または/J(ジャンクション)を指定する - ハードリンク(
/H)はファイルにしか使えない
エラー⑤:シンボリックリンクをたどるとアクセスできない
原因:リンク先のパスが存在しない(リンク切れ)、またはネットワークドライブが切断されている
解決方法:
- ターゲットが存在するか確認する
- ターゲットが別のドライブやネットワーク上にある場合は接続状態を確認する
- リンク切れの場合はシンボリックリンクを削除して再作成する
エラー⑥:PowerShellで「このコマンドレットに対してバッファーに書き込む権限がありません」
原因:PowerShellを管理者権限で起動していない
解決方法:PowerShellを「管理者として実行」で起動してから New-Item を実行する
シンボリックリンクの活用テクニック
相対パスを使ったシンボリックリンク
mklinkでは絶対パスだけでなく相対パスも使用できます。ポータブル環境(USBドライブなど)では相対パスが便利です。
cd C:\Users\user\Desktop mklink config.ini ..\..\MyApp\config.ini
既存のシンボリックリンクを更新する(PowerShell)
Remove-Item "C:\Games\MyGame" -Force New-Item -ItemType SymbolicLink -Path "C:\Games\MyGame" -Target "E:\NewGameData\MyGame"
シンボリックリンクをまとめて一覧表示する(PowerShell)
Get-ChildItem -Path C:\Users\user -Recurse | Where-Object { $_.LinkType -ne $null } | Select-Object FullName, LinkType, Target
このコマンドで指定フォルダ以下のシンボリックリンクをすべてリストアップできます。
よくある質問(FAQ)
Q1. シンボリックリンクとショートカット(.lnk)はどう違いますか?
A. ショートカットはWindowsのエクスプローラーだけが解釈する特殊ファイル(.lnk形式)です。コマンドプロンプトやアプリケーションからはショートカット自体がファイルとして見えます。一方シンボリックリンクはOSレベルで動作するため、すべてのプログラムから透過的にリンク先へアクセスできます。
Q2. シンボリックリンクを削除すると元のファイルも消えますか?
A. いいえ、シンボリックリンク(リンク自体)を削除しても元データは残ります。ただしフォルダシンボリックリンクに rmdir /S を使うとリンク先のデータごと削除されるため注意してください。
Q3. シンボリックリンクを通じてファイルを編集すると元ファイルも変わりますか?
A. はい。シンボリックリンクは参照先への「窓口」なので、リンク経由で編集・保存した内容は実データに直接反映されます。
Q4. 管理者権限なしでシンボリックリンクは作れますか?
A. Windows 10 バージョン1703以降では「開発者モード(Developer Mode)」を有効にすることで、管理者権限なしでシンボリックリンクを作成できます。設定→更新とセキュリティ→開発者向け から有効にできます。
Q5. シンボリックリンクは別ドライブをまたいで作れますか?
A. はい。ファイルシンボリックリンク(オプションなし)とディレクトリシンボリックリンク(/D)は別ドライブへのリンクが可能です。ハードリンク(/H)のみ同一ドライブ内に限られます。
Q6. シンボリックリンク先のフォルダを削除するとどうなりますか?
A. リンク切れになります。シンボリックリンク自体はそのまま残りますが、アクセスしようとすると「パスが見つかりません」などのエラーが発生します。シンボリックリンクも合わせて削除するか、新しいターゲットで再作成してください。
Q7. ジャンクション(/J)とシンボリックリンク(/D)はどちらを使えばよいですか?
A. 管理者権限がない場合はジャンクション(/J)を選ぶと便利です。ただしネットワーク上のフォルダへのリンクが必要な場合はシンボリックリンク(/D)を使う必要があります。同一PC内のフォルダリンクであれば、どちらでも動作はほぼ同じです。
Q8. PowerShellのNew-Itemとmklinkはどちらがおすすめですか?
A. 手動で一度だけ作成するならmklinkの方がコマンドが短くて済みます。スクリプトに組み込んで自動化する場合や、エラーハンドリングが必要な場合はPowerShellのNew-Itemが適しています。
Q9. Windows 11でもmklinkコマンドは使えますか?
A. はい、Windows 11でもmklinkコマンドは完全に使用できます。手順はWindows 10と同じです。スタートボタン右クリック→「ターミナル(管理者)」でWindows Terminalを管理者権限で開き、そのままmklinkコマンドを実行できます。
Q10. シンボリックリンクが正しく作成されたか確認するにはどうすればよいですか?
A. コマンドプロンプトで dir コマンドを実行すると、シンボリックリンクは <SYMLINKD> または <SYMLINK> と表示されます。PowerShellでは Get-Item "リンクパス" | Select-Object LinkType, Target でリンクの種類とリンク先を確認できます。
📚 あわせて読みたい
まとめ
Windowsのシンボリックリンクは、フォルダやファイルを別の場所に「透過的に見せる」強力な仕組みです。ショートカットと違いOSレベルで動作するため、アプリやコマンドラインからも違和感なく利用できます。
| やりたいこと | コマンド | 管理者権限 |
|---|---|---|
| ファイルへのシンボリックリンク | mklink リンク名 ターゲット |
必要 |
| フォルダへのシンボリックリンク | mklink /D リンク名 ターゲット |
必要 |
| ハードリンク(ファイルのみ) | mklink /H リンク名 ターゲット |
不要 |
| ジャンクション(フォルダのみ) | mklink /J リンク名 ターゲット |
不要 |
| リンクの確認 | dir または Get-Item |
不要 |
| リンクの削除(フォルダ) | rmdir リンク名(/Sなし) |
不要 |
「アクセスが拒否されました」エラーは管理者権限で起動し直すことで解決できます。Developer Modeを有効にすれば管理者権限なしでも使えるようになります。OneDriveのフォルダ移動やゲームのインストール先変更など、日常的な用途にもぜひ活用してください。
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!