# [メモ] 会社pc構築手順

新しくPCを構築することになったので手順をメモしておく。  
なお、手順は今使っているPCからの移行手順となっているので、本当に私以外にはあまり有用ではないような気がする。。

なお、OSはWindows 11 Pro（intel core i5）を使っている。順次分かりやすさ優先で追記しているので、実際に実行した順番とは異なる。そのため、この通り試しても動かないかも。

## ユーザプロファイルの名称を変更する

会社のPCは職場アカウント（AzureAD; 個人用アカウントであるMicrosoftアカウントとは異なる）でセットアップ済みで、ユーザプロファイルの名前が日本語名になっていた。ユーザプロファイル名がASCIIでない場合、開発者としてはトラブルが発生しそうなので、英語名に変更する。

よく紹介されているローカルアカウントを作成してから切り替える方法は、個人用アカウントの場合しか利用できないようだ。なので、レジストリ変更で対応した。 （ただし、これはこれでトラブル発生しやすいらしいので注意）

1. 管理者権限を持つローカルアカウントを作成する。
    
2. 作成したローカルアカウントでログイン
    
3. レジストリの以下のキーを編集して変更
    
    ```ps1
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<userSID>\ProfileImagePath
    ```
    
4. ログアウトし、元のアカウントでログイン
    
5. 1で作成したローカルアカウントを削除
    

<div data-node-type="callout">
<div data-node-type="callout-emoji">❗</div>
<div data-node-type="callout-text">この設定変更が関係あるのか分からないが、設定後に再起動をした後に「ユーザープロファイルを読み込めません。」と表示され、サインインができなくなった。その際は、<a target="_blank" rel="noopener noreferrer nofollow" href="https://jp.ext.hp.com/v-ivr/common/os-howto/faq/51/" style="pointer-events: none">このサイト</a>を参考に高速スタートアップをBIOSで無効化して一度ログインし、再起動をおこなうことで復旧できた。再起動してサインインできることを確認した後は、高速スタートアップをBIOSで有効化しても問題なくサインインできた。 調べてみると、<a target="_blank" rel="noopener noreferrer nofollow" href="https://nanige.blog/blog/23379239" style="pointer-events: none">HP 社製のストアアプリ「myHP」が原因で発生するとの話が出てきた</a>ので、念のため「myHP」のアンインストールをしている。</div>
</div>

なお、[このサイト](https://jp.ext.hp.com/techdevice/windows10sc/26/#SI_cRWs3ZXrfLlMM97)に記載があるとおり、レジストリに古いユーザプロファイルのパスが残るため、置き換えをした方が良い（と思われる）。置き換えはregeditを使えば良いのだが、いろいろ面倒なので、私は[Registry Finder](https://registry-finder.com/)というツールを使用して対応した。

## Windowsの開発者向けオプション変更

* ファイル拡張子を表示する
    
* タイトルバーに完全なパスを表示する
    
* スタート画面で別のユーザとして実行するオプションを表示する
    

## Windowsのパス長制限解除

管理者権限のPowerShellで以下を実行

```ps
Set-ItemProperty "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem" -Name LongPathsEnabled -value 1
```

## 右クリックメニューをWin10以前のものに戻す

プライベートのPCであれば許容の範囲だが、仕事用だと新しいコンテクストメニューは使いづらいように見えるので変更する。というかいい加減カスタマイズできるようにしてほしい &gt; Microsoftさん  
**管理者権限ではない**PowerShellで以下を実行

```ps
New-Item "Registry::HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}"
New-Item "Registry::HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32"
New-ItemProperty -Path "Registry::HKEY_CURRENT_USER\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" -Name '(Default)' -Value ""
```

なんとなくPowershellでエントリを追加したが、思っていたより面倒だった...  
素直に`reg.exe`を使ったほうがよさそう。

その後は、エクスプローラーを再起動する。

## 電源メニューに休止状態の追加

管理者権限のコマンドプロンプトで以下を実行

```java
powercfg.exe /hibernate on
```

再起動すると表示されるようになる...はずだが、上手くいかなかったので[このサイト](https://atmarkit.itmedia.co.jp/ait/articles/2204/11/news020.html)を参考にGUIで設定した。

## スタートメニューのWeb検索機能を無効化する

[ASCII.jp：Windows 11、スタートメニュー検索でウェブの検索結果を表示させない方法](https://ascii.jp/elem/000/004/080/4080258/)を参考に設定する。

## Scoopのインストール

[Scoop](https://scoop.sh/#/)とはWindows向けのパッケージマネージャ。  
Microsoftのパッケージマネージャであるwingetでインストールできないアプリケーション用に用意。

```ps1
Invoke-WebRequest -UseBasicParsing get.scoop.sh -Outfile installer.ps1
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
./installer.ps1
```

## アプリケーションのインストール

<div data-node-type="callout">
<div data-node-type="callout-emoji">❗</div>
<div data-node-type="callout-text">wingetでインストール／アップデートをする際、ポータブルアプリケーション（インストーラの無いアプリ）の場合は、現時点ではシンボリックリンクの作成が可能な環境（管理者権限 もしくは 開発モード有効）でおこなった方がいい。シンボリックリンクが使える環境なら、<code>%LOCALAPPDATA%\Microsoft\WinGet\Links\</code>に実行ファイルがリンクされる場合が多く、別アプリから参照する際に扱いやすい。</div>
</div>

### Teams

ブラウザでダウンロードしたインストーラからおこなう、のだがエラーが出てうまくいかない。 以下のコマンドでインストールする。

```ps1
Add-AppxPackage .\MSTeams-x64.msix
```

### Firefox

* ブラウザでダウンロードしたインストーラを使ってインストール
    
* プロファイル(`%APPDATA%\Mozilla\Firefox\Profiles\hogehoge`)は旧PCから移動
    
* プロファイル変更のため、`-p`付でFirefoxを起動。新しいプロファイルを作成したら、その中身を旧PCからコピーしたプロファイルの中身で差し替える。
    
* 旧プロファイルに設定していた多段タブ（[参考](https://pc-plaza.com/firefox-108-multirow-tabs/)）に対応させるため、以下の操作を実施
    
    * `toolkit.legacyUserProfileCustomizations.stylesheets` を `true` に変更
        
    * `%PROGRAMFILES%/Mozilla Firefox` の `config.js` を移動
        
    * `%PROGRAMFILES%/Mozilla Firefox/defaults/pref` に `config-prefs.js` を入れる
        

### Thunderbird

```ps1
winget install -ei Mozilla.Thunderbird
```

* プロファイル(`%APPDATA%\Thunderbird\Profiles\hogehoge`)は旧PCから移動
    
* プロファイルの移行手順はFirefoxと同じ。
    

### Link Shell Extension

```ps1
winget install -ei HermannSchinagl.LinkShellExtension
```

### Sysinternals Suite

```ps1
winget install -ei --id 9P7KNL5RWT25
```

ポータブル版であれば個別インストール（`winget install -ei --id Microsoft.Sysinternals.ProcessExplorer`）もできるようだったが、スタートメニューに追加されないようなので、ストア版をインストールした。

### PowerToys

```ps1
winget install -ei --id Microsoft.PowerToys
```

設定は以前のPCのものを復元。

### WSL

事前に旧PCからメインで使用しているOSイメージをバックアップする。

```java
wsl --export Debian Debian.tar.gz
```

[WSL環境をセットアップ](https://learn.microsoft.com/ja-jp/windows/wsl/install)  
管理者権限のPowershellを使って以下のコマンドを実行。

```ps1
wsl --install --no-distribution
```

これだけだとWSL1は使用できないので、以下のコマンドを実行。

```ps1
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```

一度PCを再起動  
バックアップしたイメージを新PCに復元する。

```ps1
mkdir $env:LOCALAPPDATA\wsl\debian
wsl --import Debian $env:LOCALAPPDATA\wsl\debian .\Debian.tar.gz --version 1
```

インポートした場合、デフォルトユーザが適切に設定されないため、レジストリを変更する。  
（`wsl.cof`を使う方法もありますが、あえてレジストリで設定しています）

```ps1
Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\* | ? { $_.DistributionName -eq "Debian" } | Set-ItemProperty -Name DefaultUid -Value 1000
```

セキュリティソフトとしてESETを使っているため、DNS解決ができない問題がある。  
したがって、[このサイト](https://blog.succi0303.com/entry/2023/11/19/221536)を参考に、以下の通りファイアウォールルールを追加する。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1713175507392/a2d9e687-ccbf-4870-996f-659b80344011.png align="center")

### PeaZip

```ps1
winget install -ei --id Giorgiotani.Peazip
```

### Edge

* プロファイル(`%LOCALAPPDATA%\Microsoft\Edge\User Data`)を旧PCからコピーする。
    
* [このサイト](https://ikt-s.com/new-edge-import-data/#:~:text=%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B-,%E3%83%97%E3%83%AD%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97,%E3%81%99%E3%81%B9%E3%81%A6%E3%82%92%E3%82%B3%E3%83%94%E3%83%BC%E3%81%97%E3%81%BE%E3%81%99%E3%80%82)を参考にパスワードを移行する。
    

#### Edgeで度々表示される「Microsoft Edgeを既定のブラウザーとして設定する」を表示されないようにしたい

以前は「edge://flags」を使って設定できたようだが、現在はできないようだ。  
[レジストリで設定できる項目にそれらしいものがあった](https://learn.microsoft.com/ja-jp/deployedge/microsoft-edge-policies#defaultbrowsersettingscampaignenabled)ので、これを設定して様子を見ることに。  
管理者権限で起動したコマンドプロンプトで以下を実行する。

```java
reg add "HKLM\Software\Policies\Microsoft\Edge" /v "DefaultBrowserSettingsCampaignEnabled" /t REG_DWORD /d "0"
```

### Google Chat

* PWAなので、ブラウザから[このリンク](https://mail.google.com/chat/u/0/#chat/home)にアクセスして、インストールする。
    

### Google Chrome

```ps1
winget install -ei --id Google.Chrome
```

* プロファイル(`%LOCALAPPDATA%\Google\Chrome\User Data`)を旧PCからコピーする。
    

### git

```ps1
winget install -ei --id Git.Git
```

Git Bash を管理者権限で開き、以下のコマンドを実行

```bash
git config --system core.longpaths true
```

### cmder

```java
scoop install main/cmder
```

### Visual Studio Code

```ps1
winget install -ei --id Microsoft.VisualStudioCode
```

[このサイト](https://www.naporitansushi.com/migrate-vscode-settings/#)を参考に設定ファイルを旧PCから移行する。

* `%HOMEPATH%\.vscode`
    
* `%APPDATA%\Code\User`
    
* `%AppData%\Code\Workspaces`
    

### Google Drive

```ps1
winget install -ei --id Google.GoogleDrive
```

Googleアカウントでログインして有効化。

### Onedrive

アプリはインストール済みなので、Microsoftアカウントでログイン。

### rclone

```ps1
winget install -ei --id Rclone.Rclone
```

設定ファイルは `rclone config file` で表示されるパスのものを旧PCから新PCに移動。

### BrokenURL

ブラウザの選択ツール。以下のURLからインストール。  
https://brokenevent.com/projects/brokenurl

設定は旧PCの`%APPDATA%\BrokenEvent.BrokenUrl`以下のファイルを参考にして移行。

### KeePass

```ps1
winget install -ei --id DominikReichl.KeePass
```

### DevToys

```ps1
winget install -ei --id 9PGCV4V3BK4W
```

### DBeaver

```ps1
winget install -ei --id "dbeaver.dbeaver"
```

設定ファイルは、`%APPDATA%\DBeaverData`から移動。

### A5:SQL Mk-2 (A5M2)

[このサイト](https://www.vector.co.jp/soft/dl/winnt/business/se422726.html)からダウンロード。ポータブル版としてセットアップ。設定は旧PCから移行。

### JDK8

```ps1
winget install -ei --id BellSoft.LibericaJDK.8.Full
```

### JDK21 (LTS)

```ps1
winget install -ei --id "Microsoft.OpenJDK.21"
```

### Python

```ps1
winget install -ei --id "Python.Python.3.12"
```

### Miniforge3

mambaを使ったPython環境マネージャー。 スクリプト的な用途はこっちを使ってる。

```ps1
winget install -ei --id CondaForge.Miniforge3
```

<div data-node-type="callout">
<div data-node-type="callout-emoji">📢</div>
<div data-node-type="callout-text">なお、Miniforgeはインストーラでのアップデートができない。(=wingetでのアップデートができない)ので注意。私はうっかりアップデートした結果、（インストール先を変更していたため）複数のMiniforgeをインストールすることになり、環境がおかしくなった。</div>
</div>

旧環境は以下のコマンドでエクスポート

```java
mamba env export -n hoge -f hoge.yaml
```

そして以下のコマンドでインポート。

```java
mamba env create -f hoge.yaml
```

### RoboSync

robocopyのGUIラッパー。以下のURLからダウンロード。 https://www.vector.co.jp/soft/dl/winnt/util/se519824.html

### WinMerge

```ps1
winget install -ei --id WinMerge.WinMerge
```

### Windows Terminal

* `%LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState`にある設定ファイルを旧PCのもので置き換え。
    
* 設定/規定値/開始ディレクトリを「親プロセスディレクトリの使用」に変更
    

### OBS Studio

```ps1
winget install -ie --id OBSProject.OBSStudio
```

* 仮想カメラのプレースホルダ画像を変更したい場合は、`C:\Program Files\obs-studio\data\obs-plugins\win-dshow\placeholder.png` (PNG形式/1920x1080) を差し替える。
    

### node.js(LTS)

```ps1
winget install -ei --id OpenJS.NodeJS.LTS
```

### Visual Studio Build Tools 2022

```ps1
winget install -ei --id Microsoft.VisualStudio.2022.BuildTools
```

### WireShark

```ps1
 winget install -ei --id WiresharkFoundation.Wireshark
```

### smtp4dev

ダミーのメールサーバ  
https://github.com/rnwood/smtp4dev からダウンロード。

### LibreOffice

```ps1
winget install -ei --id TheDocumentFoundation.LibreOffice.LTS
```

### Podman Desktop

Dockerの代替。

```ps1
winget install -ei --id RedHat.Podman-Desktop
```

### Adobe Reader

```ps1
winget install -ei --id Adobe.Acrobat.Reader.64-bit
```

### EarTrumpet

音量調整。あんまり使ってない。

```ps1
winget install -ei --id "9NBLGGH516XP"
```

### CubePDF

`winget`でインストールされるバージョンが古いため、[このページ](https://www.cube-soft.jp/cubepdf/)から直接ダウンロードしてインストール。

### CubePDF Utility

[このページ](https://www.cube-soft.jp/cubepdfutility/)から直接ダウンロードしてインストール。

### CubePDF ImagePicker

[窓の杜](https://forest.watch.impress.co.jp/library/software/cubepdf_ip/)からダウンロード・インストール

### PowerShell (最新版)

```ps1
winget install -ei --id Microsoft.PowerShell --source winget
```

### Hyper-V

管理者権限のPowerShellで以下を実行

```ps1
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
```

### WinSCP

```ps1
winget install -ei --id WinSCP.WinSCP
```

### VirtualBox

```ps1
winget install -ei --id Oracle.VirtualBox
```

### ImHex

バイナリエディタ

```ps1
winget install -ei --id WerWolv.ImHex
```

### FavBinEdit

[ここ](https://www.vector.co.jp/soft/cmt/winnt/util/se504539.html)からダウンロード

### DiskInfo3

[ここ](https://forest.watch.impress.co.jp/library/software/diskinfo/)からダウンロード

### Inkscape

```ps1
winget install -ei --id Inkscape.Inkscape
```

### GIMP

```ps1
winget install -ei --id GIMP.GIMP
```

### gsudo

[sudo for windows](https://devblogs.microsoft.com/commandline/introducing-sudo-for-windows/)も出る予定らしいが、まだ降ってこないのと、こちらの方が便利そうなのでインストール。

```ps1
winget install -ei --id gerardog.gsudo
```

### sqlcmd

```ps1
winget install -ei --id Microsoft.Sqlcmd
```

### SQL Server ODBC Driver

pyodbcから使用するには、ODBCドライバが必要であるため、以下からインストールする。  
(Microsoft ODBC Driver 18 for SQL Server)

https://learn.microsoft.com/ja-jp/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver16#download-for-windows

### Mery

Wingetでインストールできるのだが、ポータブル版を使用したい かつ 無断登録で[作者の方が「あまり気持ちの良いものではない」旨を記載している](https://www.haijin-boys.com/discussions/6072)ので、手動で[このページ](https://www.haijin-boys.com/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8)からZIP版をダウンロード・展開をおこなってセットアップをした。  
ZIP版をポータブル版に変更するために、[このページ](https://www.haijin-boys.com/software/mery/mery-tips#13)に記載の内容を実施。

Mery ver.2とver.3(ベータ版)との差異がかなり大きいことに気づく。 使いたい機能がver.3にしかないので、そちらに乗り換える。ベータ版については、特に配布ページが決まっていない？ようなので、[開発者の方のブログの「Mery」タグへのリンク](https://www.haijin-boys.com/software/mery)を貼る。ここから、ポータブル版のファイルをダウンロード。

### pandoc

```ps1
winget install -ei --id JohnMacFarlane.Pandoc
```

### Notepad++

ポータブル版を使用したいので、手動で[このページ](https://notepad-plus-plus.org/downloads/)からポータブル版をダウンロード・展開をおこなってセットアップをした。

### Docker / Docker Compose

[このページ](/windows-container-on-windows-11-pro)を参照

### duckdb

CSV等のクエリを実行

```ps1
winget install -ei --id DuckDB.cli
```

### pipx

```java
scoop install pipx
pipx ensurepath
```

### jbang

```java
scoop bucket add jbangdev https://github.com/jbangdev/scoop-bucket
scoop install jbang
```

### harlequin

CLIで実行可能なSQLエディタ  
デフォルトでduckdbが使用できる。

```java
pipx install harlequin
pipx inject harlequin harlequin-odbc
```

### Twinkle Tray

輝度調整のアプリ

```ps1
winget install -ei --id "9PLJWWSV01LK"
```

### Nushell

いい感じのデータ検索用シェル。DBにも接続できればサイコーなのだが。

```ps1
winget install -ei --id Nushell.Nushell
```

### .NET 8

```ps1
winget install -ei --id Microsoft.DotNet.SDK.8
```

### Loqseq

```ps1
winget install -ei --id Logseq.Logseq
```

### pdftk

```ps1
winget install -ei --id PDFLabs.PDFtk.Server
```

### Paint.net

```ps1
winget install -ei --id dotPDN.PaintDotNet
```

### Cassava Editor

CSV編集ソフト。[窓の杜](https://forest.watch.impress.co.jp/library/software/cassavaedit/)からダウンロード。

### WinFsp

```ps1
winget install -ei --id WinFsp.WinFsp
```

### Obsidian

LogSeqから移行。wingetでもインストールできそうだけど、普通に[公式サイト](https://obsidian.md/download)からインストールした。

### キーボードシミュレータ

[Vector](https://www.vector.co.jp/soft/winnt/util/se391764.html)からダウンロード。 パスワードマネージャーが使えない場面で重宝。

### TreeSizeFree

DiskInfo3の動作が重くなってしまったのでその代替として。 [ここ](https://www.jam-software.com/treesize)からダウンロード

### KSnip

スクリーンショットを撮影するアプリ。Windows標準のアプリと並行して使用。 範囲指定してキャプチャできるのが便利。  
[ここ](https://github.com/ksnip/ksnip)からダウンロード。PowerToysを使って、以下のように設定することで、グローバルショートカットで呼び出せるようにしている。

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1756906335358/0ddace7a-1bdb-4afb-becc-c774eaa40e25.png align="center")

### Klogg

[ここ](https://klogg.filimonov.dev/)からダウンロード。ログファイルのビュワー。

### Go

```ps1
winget install -ei --id GoLang.Go
```

### uv

Pythonにおけるnpmのようなもの。管理者権限での実行を推奨。

```ps1
winget install -ei --id astral-sh.uv
```

### pixi

uvのconda版のようなもの。   
conda-forgeをリポジトリとして使ったマルチプラットフォーム対応のパッケージマネージャのように使うことも出来る。   

```ps1
winget install -ei --id prefix-dev.pixi
```

### Rust

```ps1
winget install -ei --id Rustlang.Rustup
```

