devAlice
← Windows

Windows 11 開発者セットアップ — 開封後の 1 時間

Windows 11 向け一本道セットアップ:winget・WSL2・Git・SSH。新しい PC を git push できる状態へ。

Windows 開発には 2 つのスタイルがある:(a) すべてを WSL2 / Linux 内で行う、(b) PowerShell + Git Bash でネイティブ実行する。このガイドは両方をセットアップして、プロジェクトごとに選べるようにする。Node / Go / Python なら WSL2 が圧倒的に有利。.NET・ゲーム・Tauri・Win32 API ならネイティブ一択。Windows 初期セットアップの本質はどちらかを選ぶことではなく、両方の選択肢を準備しておくことにあると考える — プロジェクトによって最適な実行環境が変わるからこそ、当初から制約を作らない構成が重要だ。

対象:winget が使用可能な Windows 11(22H2 以降)。Windows 10 でもほぼ動作するが、winget の細部で差異がある。

TL;DR

  1. Windows 11 システム設定 4 つ(エクスプローラーの拡張子/隠しファイル表示、クリップボード履歴、仮想デスクトップショートカット)
  2. winget で 8 つの必須ツールを 1 行インストール(Git、GH CLI、Windows Terminal、PowerShell 7、VS Code、mise、ripgrep、fzf)
  3. WSL2 + Ubuntu 24.04:wsl --install -d Ubuntu-24.04
  4. Git グローバル設定 + SSH ed25519 → GitHub に登録 → gh auth login

前提条件

  • Windows 11 22H2 以上winver で確認。これが winget がバンドルされた最初のビルド。
  • 管理者権限 — WSL2 インストールとシステムスコープの winget パッケージに必要。
  • インターネット + Microsoft アカウント(Windows 11 Home では実質必須)。
  • ハードウェア仮想化 — BIOS / UEFI で Intel VT-x または AMD-V が有効(WSL2 の要件)。通常はデフォルトで有効。

systeminfo | findstr /C:"Hyper-V" で確認 — 「Hyper-V Requirements」のすべての行が「Yes」であること。


1. Windows 11 システム設定 — 5 分

1.1 エクスプローラー — 拡張子・隠しファイル・フルパスを表示

Win + E でエクスプローラーを開く → 表示 → 表示 → ファイル名拡張子 + 隠しファイル。PowerShell で一括設定:

# 拡張子 + 隠しファイルを表示
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name HideFileExt -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name Hidden -Value 1
Stop-Process -Name explorer -Force

1.2 クリップボード履歴(Win + V)

非常に便利だがデフォルトは OFF。Settings → System → Clipboard → Clipboard history を ON にする。

1.3 仮想デスクトップ

Ctrl + Win + ←/→ — デスクトップを切り替える。組み込みだが知らない人が多い。macOS のスワイプ切り替えに相当する Windows の機能。

1.4 PowerToys(オプション・強く推奨)

Microsoft 公式の生産性スイート。winget 1 行:

winget install Microsoft.PowerToys --source winget --silent

ハイライト:FancyZones(ウィンドウタイリング — Rectangle 相当)、PowerToys RunAlt + Space — Raycast 相当)、Keyboard Manager(キーリマッピング)。


2. winget — パッケージマネージャーの確認

winget は Windows 11 に同梱されている。非常に古いビルドではアップデートが必要。

winget --version
# v1.x.x  ← 表示されれば OK

表示されないか古い場合は、Microsoft Store で「App Installer」を検索してアップデートする。winget はこのパッケージに含まれている。

自動化スクリプト(オプション)

各ステップを踏む代わりに 1 本のスクリプトで実行したい場合は、必ずダウンロード → SHA-256 検証 → 内容確認 → 実行の順で行う。

setup-windows.ps1
# 1. ダウンロード
Invoke-WebRequest -Uri https://devalice.jaceclub.com/assets/windows/initial-setup/setup-windows.ps1 -OutFile setup-windows.ps1
 
# 2. SHA-256 検証
Get-FileHash setup-windows.ps1 -Algorithm SHA256
# expected: 75A9A5CC7B8804CF0808971A648B7174DADE3A5F32F2DB9C80A9783242EEEEBD
# (lowercase: 75a9a5cc7b8804cf0808971a648b7174dade3a5f32f2db9c80a9783242eeeebd)
 
# 3. 内容確認
notepad setup-windows.ps1
 
# 4. 実行(このセッションのみ実行ポリシーを緩和)
PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1

このスクリプトはべき等 — 途中で失敗した後に再実行しても安全。winget インストール + Git 設定 + SSH キー生成を自動化する。WSL2 インストールと GitHub へのキー登録は手動のまま。

各ステップを手動で実行したい場合は以下に進む。


3. winget 必須ツール — 10 分

3.1 8 つの必須ツールを 1 行で

winget install --silent --accept-source-agreements --accept-package-agreements `
  Git.Git `
  GitHub.cli `
  Microsoft.WindowsTerminal `
  Microsoft.PowerShell `
  Microsoft.VisualStudioCode `
  jdx.mise `
  BurntSushi.ripgrep.MSVC `
  junegunn.fzf
パッケージ用途
Git.GitGit for Windows(Git Bash 同梱)
GitHub.cligh
Microsoft.WindowsTerminalタブ付きターミナル — デフォルトコンソールより格段に優れる
Microsoft.PowerShellPowerShell 7(デフォルトは 5.1;7 は大幅改善)
Microsoft.VisualStudioCodeVS Code
jdx.miseランタイムバージョンマネージャー(Node・Python・…)
BurntSushi.ripgrep.MSVCrg — 高速 grep
junegunn.fzfファジーファインダー

一部のパッケージは PATH を反映させるために新しいターミナルが必要。

3.2 確認

git --version
gh --version
pwsh --version       # PowerShell 7
code --version
mise --version
rg --version

3.3 Windows Terminal をデフォルトに

Settings → プライバシーとセキュリティ → 開発者向け → ターミナル → Windows Terminal を選択。以降のコンソール起動はすべて Windows Terminal で開く。


4. WSL2 + Ubuntu — 10 分

本格的な Linux 作業をするなら WSL2 が主役。Node、Python、Docker はすべて WSL2 内の方がはるかにスムーズ。

4.1 インストール

管理者 PowerShell で(右クリック → 「管理者として実行」):

wsl --install -d Ubuntu-24.04

この 1 行で:

  1. WSL 機能を有効化
  2. Virtual Machine Platform を有効化
  3. WSL2 をデフォルトバージョンに設定
  4. Ubuntu 24.04 をダウンロード・インストール

再起動する。再起動後、Ubuntu が起動してユーザー名・パスワードを求める。

4.2 初期クリーンアップ

Ubuntu 内で:

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl unzip

現在の Ubuntu フォルダを Windows VS Code で開く(WSL Remote 拡張が自動インストールされる):

code .

WSL ファイルにはエクスプローラーから \\wsl$\Ubuntu-24.04\home\<user> でアクセスできる。Linux ファイル I/O は WSL パス(/home/...)内が最速。Windows パス(/mnt/c/...)にコードを置くと大幅に遅くなる。

4.3 WSL の状態を確認

PowerShell から:

wsl --status
wsl --list --verbose
# NAME            STATE           VERSION
# Ubuntu-24.04    Running         2

5. Git グローバル設定 + SSH — 10 分

WSL と Windows は独立した git 設定を持つ。両方をセットアップする。

5.1 Windows 側の Git 設定(PowerShell)

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global core.autocrlf true   # Windows 改行コードを自動処理
git config --global core.editor "code --wait"

5.2 SSH キー — ed25519

ssh-keygen -t ed25519 -C "you@example.com"
# デフォルトパス:$env:USERPROFILE\.ssh\id_ed25519(Enter で承認)
# パスフレーズ:オプション

ssh-agent の起動 + キーの追加(管理者 PowerShell):

# サービスの自動起動
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
 
# キーの追加
ssh-add $env:USERPROFILE\.ssh\id_ed25519

5.3 公開鍵を GitHub に登録

Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard

https://github.com/settings/ssh/new を開く → タイトル:「Windows 11 (PC 名)」→ キーを貼り付ける → Add SSH key

5.4 gh CLI 認証

gh auth login
# GitHub.com → HTTPS → Y(GitHub 資格情報で Git を認証)→ ウェブブラウザでログイン

5.5 WSL 側の Git 設定(オプション、WSL をメイン環境にする場合)

Ubuntu 内で同様に:

git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
ssh-keygen -t ed25519 -C "you@example.com"
# 公開鍵を表示 → GitHub に別途登録(マシン表面ごとに別のキーにすると監査が明確になる)
cat ~/.ssh/id_ed25519.pub

ヒント:Windows の %USERPROFILE%\.ssh を WSL の ~/.ssh にシンボリックリンクしてキーを共有することもできるが、パーミッションがおかしくなることが多い。別々のキーを保持する方が安全。


6. 確認 — すべて正しくインストールされたか?

PowerShell から:

Write-Host "--- Versions ---"
[System.Environment]::OSVersion.Version
git --version
gh --version | Select-Object -First 1
pwsh --version
wsl --list --verbose
 
Write-Host "--- GitHub auth ---"
ssh -T git@github.com 2>&1 | Select-Object -First 1
gh auth status 2>&1 | Select-Object -First 3

期待される出力:

--- Versions ---
Major  Minor  Build
-----  -----  -----
   10      0  22631   (Windows 11 22H2+)
git version 2.x.x.windows.x
gh version 2.x.x
PowerShell 7.x.x
NAME            STATE           VERSION
Ubuntu-24.04    Running         2
--- GitHub auth ---
Hi <your-username>! You've successfully authenticated, ...
github.com
  ✓ Logged in to github.com account <your-username>

WSL 側の確認は Ubuntu 内で:

git --version
ssh -T git@github.com 2>&1 | head -1

7. トラブルシューティング

wsl --install0x80070003 または仮想化エラーで失敗する

BIOS で VT-x / AMD-V が無効。再起動して BIOS に入る → CPU Configuration → Virtualization Technology → Enabled → 保存して再起動。

winget が「command not found」

App Installer が存在しないか非常に古い。Microsoft Store で「App Installer」を検索してインストール / アップデート。

PowerShell スクリプトの実行がブロックされる

.\setup-windows.ps1 : File ... cannot be loaded because running scripts is disabled on this system.

このセッションのみ許可:

PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1

ユーザースコープで永続設定:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

git push で「Permission denied (publickey)」が返る

ssh-add -l                                # エージェントにキーがあるか?
ssh -vT git@github.com 2>&1 | Select -Last 20
  • ssh-agent サービスが停止している可能性 → Start-Service ssh-agent
  • 公開鍵が GitHub にない可能性 → https://github.com/settings/keys を確認

WSL 内の時刻がスリープ後にずれる(過去/未来)

サスペンド後によくある。WSL 内で:

sudo hwclock -s

winget が「found multiple packages」で拒否する

ID の衝突。--id でピン留め:

winget install --id Git.Git --exact

Windows Terminal で CJK テキストが崩れる

Settings(Ctrl + ,)→ そのプロファイル → Appearance → Font face → Cascadia Mono または D2Coding(日本語・CJK を正しくカバーするフォント)。


8. 次のステップ

このガイドは「Windows 11 で git push できる」状態で終わる。その後:

  • WSL2 の応用 — Docker Desktop ↔ WSL2 統合、メモリキャップ(%USERPROFILE%\.wslconfig)— WSL チューニング
  • 開発ツール — 言語ランタイム(Node・Python)、エディター拡張
  • AI エージェント環境 — Claude Code セットアップ — /ai-agents/claude-code
  • Mac との並行利用 — 入力共有、ファイル同期 — /multi-os/input-sharing

参考リンク

更新履歴

  • 2026-05-12 — 英語翻訳初稿(devAlice M3 i18n シード)