[メモ] 会社pc構築手順

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

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

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

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

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

  1. 管理者権限を持つローカルアカウントを作成する。

  2. 作成したローカルアカウントでログイン

  3. レジストリの以下のキーを編集して変更

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<userSID>\ProfileImagePath
  4. ログアウトし、元のアカウントでログイン

  5. 1で作成したローカルアカウントを削除

Warning

この設定変更が関係あるのか分からないが、設定後に再起動をした後に「ユーザープロファイルを読み込めません。」と表示され、サインインができなくなった。その際は、このサイトを参考に高速スタートアップをBIOSで無効化して一度ログインし、再起動をおこなうことで復旧できた。再起動してサインインできることを確認した後は、高速スタートアップをBIOSで有効化しても問題なくサインインできた。 調べてみると、HP 社製のストアアプリ「myHP」が原因で発生するとの話が出てきたので、念のため「myHP」のアンインストールをしている。

なお、このサイトに記載があるとおり、レジストリに古いユーザプロファイルのパスが残るため、置き換えをした方が良い(と思われる)。置き換えはregeditを使えば良いのだが、いろいろ面倒なので、私はRegistry Finderというツールを使用して対応した。

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

  • ファイル拡張子を表示する

  • タイトルバーに完全なパスを表示する

  • スタート画面で別のユーザとして実行するオプションを表示する

Windowsのパス長制限解除

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

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

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

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

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を使ったほうがよさそう。

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

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

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

powercfg.exe /hibernate on

再起動すると表示されるようになる…はずだが、上手くいかなかったのでこのサイトを参考にGUIで設定した。

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

ASCII.jp:Windows 11、スタートメニュー検索でウェブの検索結果を表示させない方法を参考に設定する。

Scoopのインストール

ScoopとはWindows向けのパッケージマネージャ。
Microsoftのパッケージマネージャであるwingetでインストールできないアプリケーション用に用意。

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

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

Warning

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

Teams

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

Add-AppxPackage .\MSTeams-x64.msix

Firefox

  • ブラウザでダウンロードしたインストーラを使ってインストール

  • プロファイル(%APPDATA%\Mozilla\Firefox\Profiles\hogehoge)は旧PCから移動

  • プロファイル変更のため、-p付でFirefoxを起動。新しいプロファイルを作成したら、その中身を旧PCからコピーしたプロファイルの中身で差し替える。

  • 旧プロファイルに設定していた多段タブ(参考)に対応させるため、以下の操作を実施

    • toolkit.legacyUserProfileCustomizations.stylesheetstrue に変更

    • %PROGRAMFILES%/Mozilla Firefoxconfig.js を移動

    • %PROGRAMFILES%/Mozilla Firefox/defaults/prefconfig-prefs.js を入れる

Thunderbird

winget install -ei Mozilla.Thunderbird
  • プロファイル(%APPDATA%\Thunderbird\Profiles\hogehoge)は旧PCから移動

  • プロファイルの移行手順はFirefoxと同じ。

winget install -ei HermannSchinagl.LinkShellExtension

Sysinternals Suite

winget install -ei --id 9P7KNL5RWT25

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

PowerToys

winget install -ei --id Microsoft.PowerToys

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

WSL

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

wsl --export Debian Debian.tar.gz

WSL環境をセットアップ
管理者権限のPowershellを使って以下のコマンドを実行。

wsl --install --no-distribution

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

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

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

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

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

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

セキュリティソフトとしてESETを使っているため、DNS解決ができない問題がある。
したがって、このサイトを参考に、以下の通りファイアウォールルールを追加する。

PeaZip

winget install -ei --id Giorgiotani.Peazip

Edge

  • プロファイル(%LOCALAPPDATA%\Microsoft\Edge\User Data)を旧PCからコピーする。

  • このサイトを参考にパスワードを移行する。

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

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

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

Google Chat

  • PWAなので、ブラウザからこのリンクにアクセスして、インストールする。

Google Chrome

winget install -ei --id Google.Chrome
  • プロファイル(%LOCALAPPDATA%\Google\Chrome\User Data)を旧PCからコピーする。

git

winget install -ei --id Git.Git

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

git config --system core.longpaths true

cmder

scoop install main/cmder

Visual Studio Code

winget install -ei --id Microsoft.VisualStudioCode

このサイトを参考に設定ファイルを旧PCから移行する。

  • %HOMEPATH%\.vscode

  • %APPDATA%\Code\User

  • %AppData%\Code\Workspaces

Google Drive

winget install -ei --id Google.GoogleDrive

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

Onedrive

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

rclone

winget install -ei --id Rclone.Rclone

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

BrokenURL

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

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

KeePass

winget install -ei --id DominikReichl.KeePass

DevToys

winget install -ei --id 9PGCV4V3BK4W

DBeaver

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

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

A5:SQL Mk-2 (A5M2)

このサイトからダウンロード。ポータブル版としてセットアップ。設定は旧PCから移行。

JDK8

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

JDK21 (LTS)

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

Python

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

Miniforge3

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

winget install -ei --id CondaForge.Miniforge3
📢
なお、Miniforgeはインストーラでのアップデートができない。(=wingetでのアップデートができない)ので注意。私はうっかりアップデートした結果、(インストール先を変更していたため)複数のMiniforgeをインストールすることになり、環境がおかしくなった。

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

mamba env export -n hoge -f hoge.yaml

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

mamba env create -f hoge.yaml

RoboSync

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

WinMerge

winget install -ei --id WinMerge.WinMerge

Windows Terminal

  • %LocalAppData%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalStateにある設定ファイルを旧PCのもので置き換え。

  • 設定/規定値/開始ディレクトリを「親プロセスディレクトリの使用」に変更

OBS Studio

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

node.js(LTS)

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

Visual Studio Build Tools 2022

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

WireShark

 winget install -ei --id WiresharkFoundation.Wireshark

smtp4dev

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

LibreOffice

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

Podman Desktop

Dockerの代替。

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

Adobe Reader

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

EarTrumpet

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

winget install -ei --id "9NBLGGH516XP"

CubePDF

wingetでインストールされるバージョンが古いため、このページから直接ダウンロードしてインストール。

CubePDF Utility

このページから直接ダウンロードしてインストール。

CubePDF ImagePicker

窓の杜からダウンロード・インストール

PowerShell (最新版)

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

Hyper-V

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

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

WinSCP

winget install -ei --id WinSCP.WinSCP

VirtualBox

winget install -ei --id Oracle.VirtualBox

ImHex

バイナリエディタ

winget install -ei --id WerWolv.ImHex

FavBinEdit

ここからダウンロード

DiskInfo3

ここからダウンロード

Inkscape

winget install -ei --id Inkscape.Inkscape

GIMP

winget install -ei --id GIMP.GIMP

gsudo

sudo for windowsも出る予定らしいが、まだ降ってこないのと、こちらの方が便利そうなのでインストール。

winget install -ei --id gerardog.gsudo

sqlcmd

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でインストールできるのだが、ポータブル版を使用したい かつ 無断登録で作者の方が「あまり気持ちの良いものではない」旨を記載しているので、手動でこのページからZIP版をダウンロード・展開をおこなってセットアップをした。
ZIP版をポータブル版に変更するために、このページに記載の内容を実施。

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

pandoc

winget install -ei --id JohnMacFarlane.Pandoc

Notepad++

ポータブル版を使用したいので、手動でこのページからポータブル版をダウンロード・展開をおこなってセットアップをした。

Docker / Docker Compose

このページを参照

duckdb

CSV等のクエリを実行

winget install -ei --id DuckDB.cli

pipx

scoop install pipx
pipx ensurepath

jbang

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

harlequin

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

pipx install harlequin
pipx inject harlequin harlequin-odbc

Twinkle Tray

輝度調整のアプリ

winget install -ei --id "9PLJWWSV01LK"

Nushell

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

winget install -ei --id Nushell.Nushell

.NET 8

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

Loqseq

winget install -ei --id Logseq.Logseq

pdftk

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

Paint.net

winget install -ei --id dotPDN.PaintDotNet

Cassava Editor

CSV編集ソフト。窓の杜からダウンロード。

WinFsp

winget install -ei --id WinFsp.WinFsp

Obsidian

LogSeqから移行。wingetでもインストールできそうだけど、普通に公式サイトからインストールした。

キーボードシミュレータ

Vectorからダウンロード。 パスワードマネージャーが使えない場面で重宝。

TreeSizeFree

DiskInfo3の動作が重くなってしまったのでその代替として。 ここからダウンロード

KSnip

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

Klogg

ここからダウンロード。ログファイルのビュワー。

Go

winget install -ei --id GoLang.Go

uv

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

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

pixi

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

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

Rust

winget install -ei --id Rustlang.Rustup