Windows ユーザーアカウント移行手順書¶
概要¶
Windows のユーザープロファイルパスにスペースが含まれている問題を解消するため、新しいローカルアカウントを作成しデータを移行する。
- 旧アカウント:
Kazuma Teramachi→C:\Users\Kazuma Teramachi\ - 新アカウント:
kazuma→C:\Users\kazuma\ - 作業目標: スペースなしのユーザープロファイルへ完全移行し、旧アカウントを削除する
前提条件¶
- 外付けHDDまたはNAS等、バックアップ先のストレージが利用可能であること
- 作業は旧アカウントに管理者権限がある状態で開始すること
- 所要時間目安: 半日〜1日
Phase 1: 事前準備(旧アカウントで実施)¶
1-1. バックアップ先の準備¶
バックアップ先ディレクトリを作成する。パスは環境に合わせて変更すること。
1-2. インストール済みソフトウェア一覧の記録¶
# レジストリからインストール済みアプリ一覧を取得(64ビット)
Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Sort-Object DisplayName |
Export-Csv -Path "$backupRoot\installed_apps.csv" -NoTypeInformation -Encoding UTF8
# 32ビットアプリも取得(漏れ防止)
Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* |
Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |
Sort-Object DisplayName |
Export-Csv -Path "$backupRoot\installed_apps_x86.csv" -NoTypeInformation -Encoding UTF8
# winget管理のアプリ一覧(テキスト版 + インポート可能なJSON版)
winget list > "$backupRoot\winget_list.txt"
winget export -o "$backupRoot\winget-packages.json"
# scoopを使っている場合
# scoop list > "$backupRoot\scoop_list.txt"
# scoop export > "$backupRoot\scoop_packages.json"
1-3. ユーザープロファイルの重要データをバックアップ¶
$oldUser = "C:\Users\Kazuma Teramachi"
# 標準フォルダ
$standardFolders = @("Documents", "Desktop", "Downloads", "Pictures", "Videos", "Music")
foreach ($folder in $standardFolders) {
if (Test-Path "$oldUser\$folder") {
robocopy "$oldUser\$folder" "$backupRoot\Profile\$folder" /E /XJ /R:1 /W:1 /LOG+:"$backupRoot\robocopy_profile.log"
}
}
# dotfiles(ホームディレクトリ直下の設定ファイル)
$dotfiles = @(
".gitconfig",
".npmrc",
".bashrc",
".bash_profile",
".wslconfig",
".vimrc",
".condarc"
)
New-Item -ItemType Directory -Path "$backupRoot\Dotfiles" -Force
foreach ($file in $dotfiles) {
if (Test-Path "$oldUser\$file") {
Copy-Item "$oldUser\$file" "$backupRoot\Dotfiles\$file" -Force
}
}
# .ssh ディレクトリ(SSH鍵・config)
if (Test-Path "$oldUser\.ssh") {
robocopy "$oldUser\.ssh" "$backupRoot\Dotfiles\.ssh" /E /R:1 /W:1
}
# .kube ディレクトリ(kubectl設定がある場合)
if (Test-Path "$oldUser\.kube") {
robocopy "$oldUser\.kube" "$backupRoot\Dotfiles\.kube" /E /R:1 /W:1
}
# Salesforce CLI 認証情報
if (Test-Path "$oldUser\.sf") {
robocopy "$oldUser\.sf" "$backupRoot\Dotfiles\.sf" /E /R:1 /W:1
}
if (Test-Path "$oldUser\.sfdx") {
robocopy "$oldUser\.sfdx" "$backupRoot\Dotfiles\.sfdx" /E /R:1 /W:1
}
# Claude Code 設定
if (Test-Path "$oldUser\.claude") {
robocopy "$oldUser\.claude" "$backupRoot\Dotfiles\.claude" /E /R:1 /W:1
}
# エージェント設定(Gemini CLI / AntiGravity IDE)
$agentDirs = @(".gemini", ".antigravity")
foreach ($dir in $agentDirs) {
if (Test-Path "$oldUser\$dir") {
robocopy "$oldUser\$dir" "$backupRoot\Dotfiles\$dir" /E /R:1 /W:1 /LOG+:"$backupRoot\robocopy_profile.log"
}
}
# Mylab_SL フォルダ(手動確認後バックアップ)
if (Test-Path "$oldUser\Mylab_SL") {
robocopy "$oldUser\Mylab_SL" "$backupRoot\Profile\Mylab_SL" /E /XJ /R:1 /W:1 /LOG+:"$backupRoot\robocopy_profile.log"
}
1-4. AppData の選択的バックアップ¶
AppData は丸ごとコピーしない。必要なアプリの設定のみ選択的にバックアップする。
$appDataTargets = @(
# VS Code
@{ Src = "$oldUser\AppData\Roaming\Code\User"; Dst = "$backupRoot\AppData\Roaming\Code\User" },
# Windows Terminal
@{ Src = "$oldUser\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState"; Dst = "$backupRoot\AppData\WindowsTerminal" },
# npm global config
@{ Src = "$oldUser\AppData\Roaming\npm"; Dst = "$backupRoot\AppData\Roaming\npm" },
# PowerShell プロファイル
@{ Src = "$oldUser\Documents\PowerShell"; Dst = "$backupRoot\AppData\PowerShell" },
@{ Src = "$oldUser\Documents\WindowsPowerShell"; Dst = "$backupRoot\AppData\WindowsPowerShell" },
# PowerToys
@{ Src = "$oldUser\AppData\Local\Microsoft\PowerToys"; Dst = "$backupRoot\AppData\PowerToys" },
# Obsidian(ウィンドウ設定・プラグイン設定)
@{ Src = "$oldUser\AppData\Roaming\obsidian"; Dst = "$backupRoot\AppData\Obsidian" },
# calibre ライブラリ設定
@{ Src = "$oldUser\AppData\Roaming\calibre"; Dst = "$backupRoot\AppData\calibre" },
# LM Studio 設定(モデルは別途 1-11 で移動)
@{ Src = "$oldUser\AppData\Roaming\LM Studio"; Dst = "$backupRoot\AppData\LMStudio" },
# Tailscale
@{ Src = "$oldUser\AppData\Local\Tailscale"; Dst = "$backupRoot\AppData\Tailscale" },
# Sunshine(ゲームストリーミング設定)
@{ Src = "$oldUser\AppData\Roaming\Sunshine"; Dst = "$backupRoot\AppData\Sunshine" }
)
foreach ($target in $appDataTargets) {
if (Test-Path $target.Src) {
robocopy $target.Src $target.Dst /E /R:1 /W:1 /LOG+:"$backupRoot\robocopy_appdata.log"
}
}
注意:
installed_apps.csvの内容に合わせて追加・削除すること。 追加候補: DaVinci Resolve、Docker Desktop 設定、MySQL Workbench など。
1-5. WSL2 ディストリビューションのエクスポート¶
# 現在のWSLディストリビューション一覧を確認
wsl --list --verbose
# 各ディストリビューションをエクスポート(名前は実際のものに合わせる)
wsl --shutdown
wsl --export Ubuntu "$backupRoot\wsl-ubuntu.tar"
# 他のディストロがあれば同様に
# wsl --export Debian "$backupRoot\wsl-debian.tar"
1-6. 環境変数の記録¶
# ユーザー環境変数
[System.Environment]::GetEnvironmentVariables("User") |
Out-File "$backupRoot\env_user.txt" -Encoding UTF8
# システム環境変数
[System.Environment]::GetEnvironmentVariables("Machine") |
Out-File "$backupRoot\env_machine.txt" -Encoding UTF8
# PATH を見やすく記録
$env:PATH -split ";" | Out-File "$backupRoot\env_path.txt" -Encoding UTF8
1-7. タスクスケジューラの記録¶
Get-ScheduledTask | Where-Object { $_.Principal.UserId -like "*Kazuma*" } |
Select-Object TaskName, TaskPath, State |
Export-Csv "$backupRoot\scheduled_tasks.csv" -NoTypeInformation -Encoding UTF8
1-8. 資格情報マネージャーの記録¶
Windows に保存されている資格情報(Git Credential Manager、リモートデスクトップ等)を記録する。
注意: パスワード本体はエクスポートされないが、どのサービスの認証情報が存在するかを把握できる。 移行後に再認証が必要なサービスの一覧として活用する。
1-9. レジストリのエクスポート¶
アプリ固有の設定が HKCU\SOFTWARE 配下に保存されていることが多い。丸ごとエクスポートしておくと復元時に役立つ。
1-10. バックアップ完了確認¶
# バックアップ先のディレクトリ構成を確認
Get-ChildItem -Path $backupRoot -Recurse -Depth 2 | Format-Table FullName, Length
チェックポイント: ここまで完了したら Phase 2 に進む。
1-11. 事前:大容量データのCドライブ解放(任意・推奨)¶
アカウント移行前に容量を圧迫している以下2点を対処しておくと、作業がしやすくなる。
LM Studio モデルをDドライブへ移動(約98GB 回収)¶
# LM Studio を起動し、設定 → Models Directory を "D:\LMStudio\models" 等に変更してから実施
robocopy "C:\Users\Kazuma Teramachi\.lmstudio" "D:\LMStudio" /E /MOVE /R:1 /W:1
注意: robocopy の
/MOVEは移動後に元データを削除する。実行前に LM Studio を終了しておくこと。 移動後、LM Studio の設定で Models Directory をD:\LMStudio\modelsへ変更すること。
iCloud Photos をオンデマンドに変更(最大112GB 回収)¶
- iCloud for Windows を起動
写真→ 「iPhoneのストレージを最適化」 を選択- ローカルのオリジナルデータが削除され、サムネイルのみになる(クラウドには全データ保持)
注意: オンデマンド化後は Wi-Fi 環境下でないと高解像度写真を開けない。
Phase 2: 新アカウント作成(旧アカウントで実施)¶
2-1. 新ローカルアカウントの作成¶
GUI で行う場合: 1. 設定 → アカウント → 他のユーザー → アカウントの追加 2. 「このユーザーのサインイン情報がありません」を選択 3. 「Microsoft アカウントを持たないユーザーを追加する」を選択 4. ユーザー名: kazuma(スペースなし、ASCII文字のみ) 5. パスワードを設定
PowerShell で行う場合:
2-2. 管理者権限の付与¶
2-3. 新アカウントでの初回サインイン¶
- 旧アカウントからサインアウト
- 新アカウント
kazumaでサインイン - Windows の初期セットアップを完了させる
C:\Users\kazuma\が作成されたことを確認
チェックポイント: 以降の作業はすべて新アカウント
kazumaで行う。
Phase 3: データ移行(新アカウントで実施)¶
3-1. 標準フォルダの復元¶
$backupRoot = "D:\backup\migration"
$newUser = "C:\Users\kazuma"
$standardFolders = @("Documents", "Desktop", "Downloads", "Pictures", "Videos", "Music")
foreach ($folder in $standardFolders) {
if (Test-Path "$backupRoot\Profile\$folder") {
robocopy "$backupRoot\Profile\$folder" "$newUser\$folder" /E /XJ /R:1 /W:1 /LOG+:"$newUser\restore.log"
}
}
3-2. dotfiles の復元¶
# dotfiles
$dotfiles = @(".gitconfig", ".npmrc", ".bashrc", ".bash_profile", ".wslconfig", ".vimrc", ".condarc")
foreach ($file in $dotfiles) {
if (Test-Path "$backupRoot\Dotfiles\$file") {
Copy-Item "$backupRoot\Dotfiles\$file" "$newUser\$file" -Force
}
}
# .ssh
if (Test-Path "$backupRoot\Dotfiles\.ssh") {
robocopy "$backupRoot\Dotfiles\.ssh" "$newUser\.ssh" /E /R:1 /W:1
}
# .kube
if (Test-Path "$backupRoot\Dotfiles\.kube") {
robocopy "$backupRoot\Dotfiles\.kube" "$newUser\.kube" /E /R:1 /W:1
}
# Salesforce CLI
if (Test-Path "$backupRoot\Dotfiles\.sf") {
robocopy "$backupRoot\Dotfiles\.sf" "$newUser\.sf" /E /R:1 /W:1
}
if (Test-Path "$backupRoot\Dotfiles\.sfdx") {
robocopy "$backupRoot\Dotfiles\.sfdx" "$newUser\.sfdx" /E /R:1 /W:1
}
# Claude Code
if (Test-Path "$backupRoot\Dotfiles\.claude") {
robocopy "$backupRoot\Dotfiles\.claude" "$newUser\.claude" /E /R:1 /W:1
}
# エージェント設定(Gemini CLI / AntiGravity IDE)
foreach ($dir in @(".gemini", ".antigravity")) {
if (Test-Path "$backupRoot\Dotfiles\$dir") {
robocopy "$backupRoot\Dotfiles\$dir" "$newUser\$dir" /E /R:1 /W:1
}
}
dotfiles 内の旧パス置換¶
復元した設定ファイルに旧ユーザーパスがハードコードされている可能性がある。以下で一括置換する。
# .gitconfig 内の旧パス置換
if (Test-Path "$newUser\.gitconfig") {
(Get-Content "$newUser\.gitconfig") `
-replace 'C:/Users/Kazuma Teramachi', 'C:/Users/kazuma' `
-replace 'C:\\Users\\Kazuma Teramachi', 'C:\Users\kazuma' |
Set-Content "$newUser\.gitconfig"
}
# .npmrc 内の旧パス置換
if (Test-Path "$newUser\.npmrc") {
(Get-Content "$newUser\.npmrc") `
-replace 'C:/Users/Kazuma Teramachi', 'C:/Users/kazuma' `
-replace 'C:\\Users\\Kazuma Teramachi', 'C:\Users\kazuma' |
Set-Content "$newUser\.npmrc"
}
# Claude Code 設定内の旧パス置換
if (Test-Path "$newUser\.claude") {
Get-ChildItem "$newUser\.claude" -File -Recurse | ForEach-Object {
$content = Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue
if ($content -and $content -match "Kazuma Teramachi") {
$content `
-replace 'C:/Users/Kazuma Teramachi', 'C:/Users/kazuma' `
-replace 'C:\\Users\\Kazuma Teramachi', 'C:\Users\kazuma' `
-replace 'C:\\\\Users\\\\Kazuma Teramachi', 'C:\\\\Users\\\\kazuma' |
Set-Content $_.FullName
Write-Host "Updated: $($_.FullName)"
}
}
}
# Salesforce CLI 設定内の旧パス置換
foreach ($sfDir in @("$newUser\.sf", "$newUser\.sfdx")) {
if (Test-Path $sfDir) {
Get-ChildItem $sfDir -File -Recurse -Include *.json | ForEach-Object {
$content = Get-Content $_.FullName -Raw -ErrorAction SilentlyContinue
if ($content -and $content -match "Kazuma Teramachi") {
$content `
-replace 'C:/Users/Kazuma Teramachi', 'C:/Users/kazuma' `
-replace 'C:\\Users\\Kazuma Teramachi', 'C:\Users\kazuma' `
-replace 'C:\\\\Users\\\\Kazuma Teramachi', 'C:\\\\Users\\\\kazuma' |
Set-Content $_.FullName
Write-Host "Updated: $($_.FullName)"
}
}
}
}
3-3. SSH鍵のパーミッション修正¶
# SSH秘密鍵のアクセス権を現在のユーザーのみに制限
$sshKeys = Get-ChildItem "$newUser\.ssh" -File | Where-Object { $_.Name -notmatch "\.pub$" }
foreach ($key in $sshKeys) {
icacls $key.FullName /inheritance:r /grant:r "${env:USERNAME}:(R)"
}
# config と known_hosts は読み書き可能に
foreach ($file in @("config", "known_hosts")) {
$path = "$newUser\.ssh\$file"
if (Test-Path $path) {
icacls $path /inheritance:r /grant:r "${env:USERNAME}:(RW)"
}
}
3-4. AppData の復元¶
# VS Code(アプリインストール後に実施)
if (Test-Path "$backupRoot\AppData\Roaming\Code\User") {
robocopy "$backupRoot\AppData\Roaming\Code\User" "$newUser\AppData\Roaming\Code\User" /E /R:1 /W:1
}
# Windows Terminal
if (Test-Path "$backupRoot\AppData\WindowsTerminal") {
$wtPath = "$newUser\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState"
if (Test-Path $wtPath) {
robocopy "$backupRoot\AppData\WindowsTerminal" $wtPath /E /R:1 /W:1
}
}
# PowerShell プロファイル
if (Test-Path "$backupRoot\AppData\PowerShell") {
robocopy "$backupRoot\AppData\PowerShell" "$newUser\Documents\PowerShell" /E /R:1 /W:1
}
if (Test-Path "$backupRoot\AppData\WindowsPowerShell") {
robocopy "$backupRoot\AppData\WindowsPowerShell" "$newUser\Documents\WindowsPowerShell" /E /R:1 /W:1
}
# PowerToys
if (Test-Path "$backupRoot\AppData\PowerToys") {
robocopy "$backupRoot\AppData\PowerToys" "$newUser\AppData\Local\Microsoft\PowerToys" /E /R:1 /W:1
}
# Obsidian
if (Test-Path "$backupRoot\AppData\Obsidian") {
robocopy "$backupRoot\AppData\Obsidian" "$newUser\AppData\Roaming\obsidian" /E /R:1 /W:1
}
# calibre
if (Test-Path "$backupRoot\AppData\calibre") {
robocopy "$backupRoot\AppData\calibre" "$newUser\AppData\Roaming\calibre" /E /R:1 /W:1
}
# Sunshine
if (Test-Path "$backupRoot\AppData\Sunshine") {
robocopy "$backupRoot\AppData\Sunshine" "$newUser\AppData\Roaming\Sunshine" /E /R:1 /W:1
}
3-5. WSL2 の復元¶
# WSLディストリビューションのインポート(インストール先はユーザーフォルダ外を推奨)
wsl --import Ubuntu "C:\WSL\Ubuntu" "$backupRoot\wsl-ubuntu.tar"
デフォルトユーザーの設定は以下のいずれかの方法で行う。
方法A: Windows側コマンド
# Ubuntuのバージョンに応じて実行ファイル名が異なる
# バージョン不明の場合: Get-Command ubuntu*.exe で確認
ubuntu2404.exe config --default-user kazuma
# ubuntu2204.exe config --default-user kazuma
# ubuntu.exe config --default-user kazuma
方法B: WSL内の設定ファイル(より確実)
設定後、WSL を再起動して反映:
注意: ここでの
kazumaは WSL 内の Linux ユーザー名。Windows のアカウント名とは別。
3-6. ソフトウェアの再インストール¶
winget import による一括インストール(推奨)¶
# Phase 1-2 でエクスポートしたJSONを使って一括インストール
winget import -i "$backupRoot\winget-packages.json" --accept-package-agreements --accept-source-agreements
注意:
winget importでは Microsoft Store アプリやインストーラが特殊なものは失敗することがある。 失敗したものはwinget_list.txtやinstalled_apps.csvを参照して個別対応する。
個別インストール(失敗したものや winget 非対応のもの)¶
# ========== 開発ツール ==========
winget install Git.Git
winget install GitHub.cli
winget install Microsoft.VisualStudioCode
winget install OpenJS.NodeJS # Node.js 24.x
winget install Docker.DockerDesktop
winget install Microsoft.WindowsTerminal
winget install Microsoft.PowerToys
# ========== DB ==========
# SQL Server 2019 は C:\SQL2019 の installer から再インストール推奨
winget install Oracle.MySQL
winget install Oracle.MySQLWorkbench
winget install Microsoft.SQLServerManagementStudio
winget install Microsoft.AzureDataStudio
# ========== AI / LLM ==========
winget install LMStudio.LMStudio
# LM Studio 起動後、Models Directory を D:\LMStudio\models に設定
# ========== クラウド・同期 ==========
winget install Apple.iTunes # iCloud も同梱
winget install Google.GoogleDrive
winget install Tailscale.Tailscale
# ========== メディア・映像 ==========
# DaVinci Resolve は Blackmagic サイトから手動インストール
winget install VideoLAN.VLC
winget install calibre.calibre
# ========== ユーティリティ ==========
winget install 7zip.7zip
winget install Obsidian.Obsidian
winget install CPUID.CPU-Z
winget install LizardByte.Sunshine
# ========== ドライバ(手動インストール)==========
# NVIDIA ドライバ: https://www.nvidia.com/ja-jp/drivers/
# Wacom ドライバ: https://www.wacom.com/ja-jp/support/product-support/drivers
# Corsair iCUE: https://www.corsair.com/ja/ja/s/downloads
# Logicool Options+: https://www.logicool.co.jp/ja-jp/software/logi-options-plus.html
Salesforce CLI の再認証¶
3-7. 環境変数の復元¶
バックアップした環境変数を確認し、必要なものを再設定する。
# バックアップした環境変数を確認
Get-Content "$backupRoot\env_user.txt"
Get-Content "$backupRoot\env_path.txt"
# 必要に応じてユーザー環境変数を設定(例)
# [System.Environment]::SetEnvironmentVariable("GOPATH", "C:\Users\kazuma\go", "User")
注意: 旧ユーザーパスを含む環境変数は新パスに修正すること。 特に
OLLAMA_MODELS等、データディレクトリを旧パスで指定しているものに注意。
Phase 4: 検証(新アカウントで実施)¶
以下のチェックリストをすべて確認する。
4-1. 基本環境¶
# ユーザープロファイルパスの確認
echo $env:USERPROFILE
# 期待値: C:\Users\kazuma
# ホームディレクトリにスペースがないことの確認
$env:USERPROFILE -match "\s"
# 期待値: False
4-2. Git / SSH¶
4-3. WSL2 / 開発ツール¶
WSL 内で以下を確認:
4-4. Claude Code¶
設定ファイル内の旧パス残存チェック(重要):
$claudeDir = "$env:USERPROFILE\.claude"
if (Test-Path $claudeDir) {
$hits = Get-ChildItem $claudeDir -File -Recurse | Select-String -Pattern "Kazuma Teramachi" -List
if ($hits) {
Write-Host "旧パスが残存しています:" -ForegroundColor Yellow
$hits | ForEach-Object { Write-Host " $($_.Path):$($_.LineNumber) $($_.Line)" }
} else {
Write-Host "Claude Code 設定内に旧パスなし - OK" -ForegroundColor Green
}
}
4-5. アプリケーション動作確認¶
手動で以下を確認する:
開発・ツール - [ ] VS Code: 拡張機能、設定が復元されていること - [ ] Windows Terminal: プロファイル設定が復元されていること - [ ] Docker Desktop: 起動・コンテナ操作が正常なこと - [ ] GitHub CLI (gh auth status): 認証が有効なこと - [ ] PowerToys: ショートカット等の設定が復元されていること
AI / LLM - [ ] LM Studio: モデル一覧が表示・ロードできること(Models Directory が D ドライブを向いていること) - [ ] .gemini / .antigravity: 各エージェント設定が復元されていること
DB - [ ] SQL Server 2019: サービスが起動していること (services.msc) - [ ] MySQL 8.0: 接続確認 (mysql -u root -p) - [ ] MySQL Workbench / Azure Data Studio: 接続設定が復元されていること
クラウド・同期 - [ ] iCloud: 写真同期、ドライブ同期が正常なこと - [ ] Google Drive: 同期が正常なこと - [ ] Tailscale: VPN 接続が正常なこと (tailscale status) - [ ] OneDrive: 同期が正常なこと
メディア・映像 - [ ] DaVinci Resolve: 起動・プロジェクト確認(ライセンス再認証が必要な場合あり) - [ ] Obsidian: Vault が開けること(パス: G:\マイドライブ\GeminiCLI\ObsidianVault) - [ ] Sunshine: ストリーミング設定が復元されていること
ハードウェア - [ ] Wacom タブレット: ドライバ認識・設定復元 - [ ] Logicool Options+: マウス・キーボード設定 - [ ] Corsair iCUE: ライティング等の設定
ライセンス再認証が必要なアプリ - [ ] Adobe Acrobat: 旧アカウントでデアクティベート → 新アカウントで再認証 - [ ] Microsoft Office: アカウント再サインイン
4-6. npm / pip グローバルパッケージの確認¶
# npm グローバルパッケージの確認
npm list -g --depth=0
# prefix が新パスを指していることを確認
npm config get prefix
# 期待値: C:\Users\kazuma\AppData\Roaming\npm(または新パス配下)
# pip パッケージの確認(Python を使っている場合)
pip list
pip config list
4-7. シンボリックリンク残存チェック¶
4-8. パスにスペースが残っていないか最終確認¶
# 環境変数に旧パスが残っていないか確認
$env:PATH -split ";" | Where-Object { $_ -match "Kazuma Teramachi" }
# 期待値: 何も出力されない
# ユーザー環境変数全体をチェック
[System.Environment]::GetEnvironmentVariables("User").GetEnumerator() |
Where-Object { $_.Value -match "Kazuma Teramachi" }
# 期待値: 何も出力されない
Phase 5: クリーンアップ(問題なく1週間運用できた後に実施)¶
重要: 最低1週間 は新アカウントで運用してから実施する。 週次バッチやタスクスケジューラなど、週1回しか動かない処理の問題を検知するため。
5-1. Microsoft アカウントの紐付け変更(必要な場合)¶
設定 → アカウント → 「Microsoft アカウントでのサインインに切り替える」から実行。
5-2. 旧アカウントの削除¶
5-3. 旧プロファイルフォルダの処理¶
すぐに削除せず、まずリネームして1ヶ月程度様子を見る。
# バックアップが存在することを再確認
Test-Path "D:\backup\migration"
# 旧プロファイルフォルダをリネーム(即削除しない)
Rename-Item -Path "C:\Users\Kazuma Teramachi" -NewName "Kazuma Teramachi.old"
# 1ヶ月後、問題がなければ削除
# Remove-Item -Path "C:\Users\Kazuma Teramachi.old" -Recurse -Force
5-4. バックアップの保管¶
移行バックアップは最低1ヶ月は保持する。問題が発覚した場合に復元できるようにするため。
トラブルシューティング¶
| 症状 | 対処 |
|---|---|
| SSH接続が拒否される | .ssh 内の秘密鍵パーミッションを確認。icacls で現ユーザーのみに制限 |
| WSLが起動しない | wsl --unregister Ubuntu → 再インポート |
| VS Codeの拡張機能が消えた | Settings Sync が有効なら再同期。無効なら拡張機能を手動再インストール |
| ライセンス認証エラー(Adobe等) | 旧アカウントでデアクティベート → 新アカウントで再認証 |
| タスクスケジューラが動かない | scheduled_tasks.csv を参照し、新ユーザーで再登録 |
| Docker Desktopが起動しない | アンインストール → 再インストール。WSL2バックエンドの再設定 |
| 旧パスを参照するエラーが出る | Phase 4-8 の手順で残存パスを特定し修正 |
| LM Studio でモデルが見つからない | Settings → Models Directory を D:\LMStudio\models に再設定 |
| SQL Server サービスが起動しない | services.msc で SQL Server (MSSQLSERVER) を手動起動。接続ユーザー設定を確認 |
| MySQL に接続できない | services.msc で MySQL80 サービスを確認。root パスワードをリセットする場合は --skip-grant-tables で起動 |
| Tailscale が接続できない | tailscale login で再認証 |
| iCloud 写真が同期しない | iCloud for Windows を再インストール後、Apple ID で再サインイン |
| .gemini / .antigravity の設定が消えた | $backupRoot\Dotfiles\.gemini / .antigravity から復元 |
npm install -g でパーミッションエラー | npm config set prefix "C:\Users\kazuma\AppData\Roaming\npm" で再設定 |
| Claude Code の hook/MCP 設定エラー | ~\.claude\ 配下を Select-String "Kazuma Teramachi" で検索して旧パスを置換 |
| Ollama のモデルが見つからない | OLLAMA_MODELS 環境変数のパスを確認・再設定 |
| Salesforce CLI の認証エラー | sf org login web で再認証。.sf/ .sfdx/ 内のパスも確認 |
| 資格情報マネージャーの認証が消えた | credentials_list.txt を参照し、各サービスで再認証 |