VSCode制限モードを解除する方法!安全性を理解して正しく設定する完全ガイド

プログラミング・IT

VSCodeでフォルダを開いたら、突然「制限モード」という見慣れない表示が出て、拡張機能が使えなくなった経験はありませんか?

「今まで普通に使えていたのに…」「信頼できるフォルダなのになぜ?」と困惑する方も多いでしょう。実は、これはVSCode 1.57(2021年5月)から導入されたワークスペース信頼性機能によるセキュリティ対策なんです。

制限モードは、悪意のあるコードからあなたを守る重要な機能ですが、自分のプロジェクトや信頼できるフォルダでも表示されてしまうことがあります。

この記事では、制限モードの仕組みから安全な解除方法、永続的な設定まで、初心者でも安心して対処できるように詳しく解説していきます。

スポンサーリンク
  1. 1. VSCode制限モードとは?セキュリティの仕組み
    1. 制限モードが導入された理由
    2. 制限モードで制限される機能
    3. 制限モードが発動する条件
  2. 2. 制限モードを今すぐ解除する3つの方法
    1. 方法1:通知バーから解除(最も簡単)
    2. 方法2:コマンドパレットから解除
    3. 方法3:左下のアイコンから解除
  3. 3. フォルダを永続的に信頼する設定
    1. 信頼済みフォルダの追加
    2. 親フォルダをまとめて信頼
    3. ネットワークドライブの信頼設定
  4. 4. 制限モードを完全に無効化する方法(非推奨)
    1. グローバル設定で無効化
    2. 起動オプションで無効化
    3. 一時的な無効化
  5. 5. 拡張機能ごとの制限モード対応
    1. 制限モードでも動作する拡張機能
    2. 制限モードで動作しない拡張機能
    3. 拡張機能の個別設定
  6. 6. セキュリティを保ちながら制限モードを管理
    1. 安全な運用のベストプラクティス
    2. フォルダごとの信頼戦略
    3. 制限モードでの安全な作業方法
  7. 7. よくあるトラブルと解決方法
    1. 問題1:毎回制限モードが表示される
    2. 問題2:WSLで制限モードが解除できない
    3. 問題3:Git操作ができない
    4. 問題4:Remote-SSHで常に制限モード
  8. 8. 企業・チーム環境での制限モード管理
    1. グループポリシーでの制御
    2. チーム開発での推奨設定
    3. CI/CD環境での対応
  9. 9. 制限モードの詳細設定オプション
    1. すべての設定項目一覧
    2. プロファイル別の設定
  10. 10. よくある質問(FAQ)
    1. Q1: 制限モードを解除しても大丈夫?
    2. Q2: 制限モードでできることは?
    3. Q3: 信頼設定はどこに保存される?
    4. Q4: チーム全体で同じ設定にしたい
    5. Q5: 制限モードが原因でビルドできない
  11. まとめ:制限モードと上手に付き合う方法

1. VSCode制限モードとは?セキュリティの仕組み

制限モードが導入された理由

VSCodeの制限モード(Restricted Mode)は、信頼されていないコードからユーザーを保護するセキュリティ機能です。

なぜ必要なのか:

問題のシナリオ:
1. インターネットから怪しいプロジェクトをダウンロード
2. VSCodeで開く
3. 悪意のある拡張機能設定が自動実行
4. システムが危険にさらされる

制限モードがあれば:
→ 拡張機能の実行を制限
→ 自動タスクの実行を防止
→ 安全に内容を確認できる

制限モードで制限される機能

実行が制限されるもの:

1. 拡張機能
   - すべての拡張機能が無効化
   - 一部の組み込み拡張機能のみ動作

2. デバッグ機能
   - launch.jsonの実行制限
   - タスクランナーの制限

3. ワークスペース設定
   - .vscode/settings.jsonの一部無効
   - tasks.jsonの実行制限

4. ターミナル
   - 自動実行コマンドの制限
   - シェル統合の制限

制限モードが発動する条件

自動的に制限モードになるケース:

1. 初めて開くフォルダ
   - ローカルフォルダ
   - ネットワークドライブ

2. ダウンロードしたファイル
   - ZIPを解凍したフォルダ
   - Gitでクローンしたリポジトリ(初回)

3. 外部メディア
   - USBドライブ
   - 外付けHDD

4. リモート接続
   - SSH経由のフォルダ
   - WSL内のフォルダ(設定次第)

2. 制限モードを今すぐ解除する3つの方法

方法1:通知バーから解除(最も簡単)

手順:

  1. 青い通知バーをクリック
上部に表示される青いバー:
「制限モード」という表示がある
  1. 「信頼する」ボタンをクリック
選択肢:
- 「信頼する」:現在のフォルダを信頼
- 「親フォルダを信頼」:上位フォルダごと信頼
- 「信頼しない」:制限モードのまま
  1. 確認ダイアログで「はい、信頼します」
警告メッセージを確認
→ 問題なければ信頼を選択

方法2:コマンドパレットから解除

ショートカットキーで素早く解除:

1. コマンドパレットを開く
   Windows/Linux: Ctrl + Shift + P
   Mac: Cmd + Shift + P

2. 次のコマンドを入力
   "Trust"

3. 表示される選択肢から選ぶ
   - "Workspaces: Manage Workspace Trust"
   - "Trust Workspace & Continue"

4. 信頼を選択

方法3:左下のアイコンから解除

ステータスバーからの操作:

1. VSCode左下の「制限モード」アイコンをクリック
   (盾に×マークのアイコン)

2. 表示されるメニューから選択
   - 「このウィンドウで信頼する」
   - 「すべてのウィンドウで信頼する」

3. 確認して完了

3. フォルダを永続的に信頼する設定

信頼済みフォルダの追加

特定のフォルダを常に信頼する設定:

  1. 設定画面を開く
Ctrl + , (Windows/Linux)
Cmd + , (Mac)
  1. 検索ボックスに入力
"workspace trust"
  1. 「信頼済みフォルダとワークスペース」を選択
Security › Workspace › Trust: Trusted Folders
  1. フォルダを追加
{
  "security.workspace.trust.trustedFolders": [
    "C:\\Users\\YourName\\Documents\\Projects",
    "D:\\Development",
    "/home/username/projects"
  ]
}

親フォルダをまとめて信頼

開発フォルダ全体を信頼する:

例:すべての開発プロジェクトを信頼

C:\Dev\* を信頼すると:
├── C:\Dev\project1  ✓ 信頼される
├── C:\Dev\project2  ✓ 信頼される
├── C:\Dev\test      ✓ 信頼される
└── C:\Dev\sandbox   ✓ 信頼される

設定方法:

{
  "security.workspace.trust.trustedFolders": [
    "C:\\Dev"  // このフォルダ以下すべて信頼
  ]
}

ネットワークドライブの信頼設定

UNCパスやマップドライブの設定:

{
  "security.workspace.trust.trustedFolders": [
    "\\\\server\\share\\projects",
    "Z:\\SharedProjects",
    "//nas/development"
  ],
  "security.workspace.trust.untrustedFiles": "open"
}

4. 制限モードを完全に無効化する方法(非推奨)

グローバル設定で無効化

すべてのフォルダを自動的に信頼(危険):

// settings.json に追加
{
  "security.workspace.trust.enabled": false
}

GUI での設定方法:

1. 設定を開く(Ctrl + ,)
2. 検索:"security.workspace.trust.enabled"
3. チェックを外す
4. VSCodeを再起動

起動オプションで無効化

コマンドラインから制限モードを無効にして起動:

# Windows
code --disable-workspace-trust

# Mac/Linux
code --disable-workspace-trust

# 特定のフォルダを信頼して開く
code --trust /path/to/folder

一時的な無効化

現在のセッションのみ無効化:

# 環境変数で制御
export VSCODE_DISABLE_WORKSPACE_TRUST=1
code .

# Windowsの場合
set VSCODE_DISABLE_WORKSPACE_TRUST=1
code .

5. 拡張機能ごとの制限モード対応

制限モードでも動作する拡張機能

信頼不要な拡張機能の種類:

動作するもの:
✓ テーマ・カラースキーム
✓ アイコンテーマ
✓ 言語の基本サポート
✓ シンタックスハイライト
✓ スニペット(一部)

例:
- Material Theme
- Material Icon Theme
- Python(基本機能のみ)
- Markdown All in One(一部機能)

制限モードで動作しない拡張機能

信頼が必要な拡張機能:

動作しないもの:
✗ コード実行系
✗ デバッガー
✗ Linter/Formatter
✗ Git統合機能
✗ ターミナル統合

例:
- Live Server
- Code Runner
- Prettier
- ESLint
- GitLens(高度な機能)

拡張機能の個別設定

特定の拡張機能だけを制限モードで有効化:

// .vscode/extensions.json
{
  "recommendations": [
    "esbenp.prettier-vscode",
    "dbaeumer.vscode-eslint"
  ],
  "unwantedRecommendations": [],
  "restrictedConfigurations": {
    "prettier.enable": false,
    "eslint.enable": false
  }
}

6. セキュリティを保ちながら制限モードを管理

安全な運用のベストプラクティス

推奨設定:

{
  // 基本は制限モードを有効に保つ
  "security.workspace.trust.enabled": true,
  
  // 信頼するフォルダは明示的に指定
  "security.workspace.trust.trustedFolders": [
    "~/my-projects",
    "C:\\Work\\trusted-repos"
  ],
  
  // 空のウィンドウは信頼
  "security.workspace.trust.emptyWindow": true,
  
  // 新規ファイルの扱い
  "security.workspace.trust.untrustedFiles": "prompt",
  
  // スタートアップエディタを表示
  "security.workspace.trust.startupPrompt": "once"
}

フォルダごとの信頼戦略

信頼レベルの分類:

常に信頼:
├── 自分のプロジェクト
├── 会社の公式リポジトリ
└── 信頼できるチームのコード

確認後に信頼:
├── オープンソースプロジェクト
├── 教材・サンプルコード
└── 同僚から共有されたコード

信頼しない(制限モードのまま):
├── 不明なソースのコード
├── 一時的な確認用ファイル
└── 潜在的に危険なスクリプト

制限モードでの安全な作業方法

コードレビュー時の推奨手順:

1. 制限モードのまま開く
2. ファイル内容を確認
3. 怪しいコードがないかチェック
   - .vscode/settings.json
   - tasks.json
   - launch.json
   - 拡張機能の推奨設定

4. 問題なければ信頼して作業

7. よくあるトラブルと解決方法

問題1:毎回制限モードが表示される

原因と解決策:

原因:
- 信頼設定が保存されていない
- 異なるパスでアクセスしている
- シンボリックリンクの問題

解決方法:
1. 親フォルダごと信頼する
2. 絶対パスで設定を保存
3. 実体のパスを信頼リストに追加

// 設定例
{
  "security.workspace.trust.trustedFolders": [
    "C:\\Dev",  // 親フォルダを信頼
    "C:\\Users\\Name\\Documents\\GitHub"
  ]
}

問題2:WSLで制限モードが解除できない

WSL特有の対処法:

# WSL側のパスを信頼
code --trust \\wsl$\Ubuntu\home\user\projects

# Windows側の設定
{
  "security.workspace.trust.trustedFolders": [
    "\\\\wsl$\\Ubuntu\\home\\user\\projects",
    "\\\\wsl.localhost\\Ubuntu\\home\\user"
  ]
}

問題3:Git操作ができない

制限モードでのGit対策:

症状:
- Gitの変更が表示されない
- コミットができない
- ブランチ切り替え不可

対処法:
1. フォルダを信頼する
2. または、ターミナルでGitコマンドを使用
3. 別のGitクライアントを使用

# コマンドラインでの操作
git add .
git commit -m "message"
git push

問題4:Remote-SSHで常に制限モード

リモート接続の設定:

// リモートマシンの設定
{
  "remote.SSH.defaultForwardedPorts": [],
  "remote.SSH.remotePlatform": {
    "server-name": "linux"
  },
  "security.workspace.trust.enabled": false  // リモートのみ無効化
}

8. 企業・チーム環境での制限モード管理

グループポリシーでの制御

組織全体の設定:

// 組織のデフォルト設定
{
  "security.workspace.trust.enabled": true,
  "security.workspace.trust.trustedFolders": [
    "\\\\company-server\\projects",
    "C:\\CompanyProjects"
  ],
  "security.workspace.trust.untrustedFiles": "prompt"
}

チーム開発での推奨設定

プロジェクトごとの設定ファイル:

// .vscode/settings.json
{
  "recommendations": [
    "ms-vscode.workspace-trust"
  ],
  "security.workspace.trust.banner": "always",
  "files.exclude": {
    "**/.git": false,
    "**/node_modules": true
  }
}

CI/CD環境での対応

自動化環境での制限モード回避:

# GitHub Actions の例
- name: Setup VSCode
  run: |
    code --install-extension ms-vscode.extension-name
    code --trust ${{ github.workspace }}
    code --disable-workspace-trust

9. 制限モードの詳細設定オプション

すべての設定項目一覧

{
  // 制限モード機能の有効/無効
  "security.workspace.trust.enabled": true,
  
  // 信頼するフォルダのリスト
  "security.workspace.trust.trustedFolders": [],
  
  // 信頼されていないファイルを開く際の動作
  "security.workspace.trust.untrustedFiles": "prompt",
  // "prompt": 確認する
  // "open": そのまま開く
  // "newWindow": 新しいウィンドウで開く
  
  // 起動時のプロンプト表示
  "security.workspace.trust.startupPrompt": "once",
  // "always": 常に表示
  // "once": 一度だけ表示
  // "never": 表示しない
  
  // バナーの表示設定
  "security.workspace.trust.banner": "untilDismissed",
  // "always": 常に表示
  // "untilDismissed": 閉じるまで表示
  // "never": 表示しない
  
  // 空のウィンドウの信頼設定
  "security.workspace.trust.emptyWindow": true
}

プロファイル別の設定

用途に応じたプロファイル作成:

// 開発用プロファイル
{
  "name": "Development",
  "settings": {
    "security.workspace.trust.enabled": false
  }
}

// レビュー用プロファイル
{
  "name": "Code Review",
  "settings": {
    "security.workspace.trust.enabled": true,
    "security.workspace.trust.untrustedFiles": "newWindow"
  }
}

10. よくある質問(FAQ)

Q1: 制限モードを解除しても大丈夫?

A: 状況によります:

安全に解除できるケース:
✓ 自分で作成したプロジェクト
✓ 公式リポジトリからクローンしたコード
✓ 信頼できる同僚のコード
✓ 有名なオープンソースプロジェクト

解除を避けるべきケース:
✗ 不明なソースからのダウンロード
✗ メールで送られてきた謎のコード
✗ 怪しいWebサイトのサンプル
✗ セキュリティを学習中のコード

Q2: 制限モードでできることは?

A: 基本的な作業は可能です:

制限モードでもできること:
- ファイルの閲覧・編集
- 基本的な検索・置換
- シンタックスハイライト
- ファイルの保存
- 基本的なGit操作(CLI)

できないこと:
- 拡張機能の実行
- デバッグ実行
- タスクの自動実行
- 一部のIntelliSense機能

Q3: 信頼設定はどこに保存される?

A: ユーザーデータフォルダに保存されます:

Windows:
%APPDATA%\Code\User\settings.json

Mac:
~/Library/Application Support/Code/User/settings.json

Linux:
~/.config/Code/User/settings.json

Q4: チーム全体で同じ設定にしたい

A: ワークスペース設定を共有します:

// .vscode/settings.json (リポジトリに含める)
{
  "recommendations": [
    "必要な拡張機能のID"
  ],
  "security.workspace.trust.description": "このプロジェクトは安全です"
}

Q5: 制限モードが原因でビルドできない

A: 以下の手順で解決:

1. フォルダを信頼する
2. VSCodeを再起動
3. 拡張機能が有効になっているか確認
4. ターミナルで直接ビルドコマンドを実行

# 代替手段
npm run build  # ターミナルで直接実行

まとめ:制限モードと上手に付き合う方法

VSCodeの制限モードは、セキュリティを守る重要な機能です。しかし、適切に管理すれば、安全性と利便性を両立できます。

制限モード管理の3原則:

  1. デフォルトは制限モードを維持
    • 基本的にはセキュリティ優先
    • 必要な時だけ信頼を付与
  2. 信頼は慎重に、しかし効率的に
    • 開発フォルダは親ごと信頼
    • 不明なコードは制限モードで確認
  3. チームで設定を共有
    • プロジェクト設定を統一
    • セキュリティポリシーを文書化

正しく理解して設定すれば、制限モードはあなたの開発環境を守る頼もしい味方になります。

安全で快適なVSCodeライフを送りましょう!

コメント

タイトルとURLをコピーしました