Windows 11 Home 個人用セットアップメモ
新規に Windows 11 PCを購入したので、個人用セットアップメモ。
主に WSL2によるLinux系開発、機械学習、Mac からのリモート接続での利用を想定。(あとはゲーム)
ユーザディレクトリを変更
Windows セットアップ時に Microsoftアカウントを作成するとホームディレクトリが勝手に先頭5文字のフォルダで作成されてしまうため、セットアップ完了後に変更。
下記手順を参考にユーザディレクトリを変更。ローカルアカウントを再作成して再度Microsoftアカウントと紐づける。
-
[Windows 11] ユーザー用のフォルダー名の変更
- 手順の中でローカルアカウントを2回作るが、1回目は一時的な名前を指定し、2回目(「新規ローカルアカウントの作成」の手順)で作りたいユーザディレクトリの名前で作成する。
WSL2 のインストール
WSL2 インストール手順
- 利用できるディストリビューションの確認
PS> wsl --list --online
- 今回は AlmaLinux 9 をインストール
PS> wsl --install AlmaLinux-9
- 再起動する
機械学習用には CUDA Toolkitが WSL2-Ubuntu にしか対応してないようなので別途 Ubuntu で環境構築する
と書いたが、推奨のインストールパッケージがUbuntuにしか提供されてないというだけで、自分で Meta Packageからインストールの手順を適切に実行すれば良い。これを試してみた手順は以下の記事に記載した。
WSL2 設定
Linux パーミッションを有効にする
/etc/wsl.conf
[automount]
options = "metadata"
ssh ログイン設定
OpenSSH サービスの有効化
-
(1) 「設定」「システム」「オプション機能」から「OpenSSHサーバー」をインストール
-
(2) サービスパネル(
services.msc
)から「OpenSSH SSH Server」を自動起動、開始を設定 -
(3) 「セキュリティが強化されたWindows Defender ファイヤウォール」(
wf.msc
)から「受信の規則」「新しい規則」「ポート」「22」 -
参照URL
ssh 鍵認証の設定
管理者権限があるユーザでログインするため、「管理ユーザー」用の設定を行う。
- (1) 接続元端末の公開鍵ファイルをWindows側へ一旦パスワード認証で scp する(以下
id_ecdsa.pub
として記載) - (2) 管理者権限で PowerShell を開く
- (3) 公開鍵の内容を管理ユーザ用認証キーファイル
administrators_authorized_keys
へ追記する
Add-Content -Force -Path $env:ProgramData\ssh\administrators_authorized_keys -Value (Get-Content -Path .\id_ecdsa_genesis.pub)
- (4)
administrators_authorized_keys
のパーミッションを設定する
icacls.exe "$env:ProgramData\ssh\administrators_authorized_keys" /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
- (5) 接続元端末からssh鍵認証でログインできることを確認する
備忘録: パーミッション設定前後の状態
- 設定前の状態
> icacls.exe $env:ProgramData\ssh\administrators_authorized_keys
C:\ProgramData\ssh\administrators_authorized_keys NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
NT AUTHORITY\Authenticated Users:(I)(RX)
- 設定後の状態
> icacls.exe $env:ProgramData\ssh\administrators_authorized_keys
C:\ProgramData\ssh\administrators_authorized_keys NT AUTHORITY\SYSTEM:(F)
BUILTIN\Administrators:(F)
ssh ログインシェルの変更
ssh ログイン時のシェルを powershell.exe へ変更する。
- (1) 管理者権限で PowerShell を開く
- (2)
powershell.exe
のパスの確認
> (Get-Command powershell.exe).Source
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- (3) レジストリを変更しログインシェルを変更する
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value (Get-Command powershell.exe).Source -PropertyType String -Force
なお、ログインシェルを WSL2 の bash.exe に変更すると、クライアント側からの scp や Emacs + Tramp が正常に動作しなくなるため使えない。WSL2 内への直接 ssh 接続は別途検討する。
- 参照URL
キーボード配列カスタイマイズ
US配列変換、左右Alt(変換・無変換)でIME制御
Ctrl/CapsLock 変換
Windows 関連の設定
Windows 電源設定
カバーを閉じておいても ssh ログインができるようにスリープを停止
- 「設定」「システム」「電源とバッテリー」
- 「画面、スリープ、休止状態のタイムアウト」「次の時間の経過後にデバイスをスリープ状態にする」を「なし」
- 「カバー、電源とスリープ 個のボタン コントロール」「カバーを閉じると、PCが」を「何も行わない」
PowerShell・コマンドライン設定
Windows Terminal ベル音のオフ
デフォルトではベル音が結構大きくてびっくりするのでオフにする。
- ターミナルを開いて「設定」(
Ctrl + ,
)を開く - 「プロファイル」→「規定値」→「詳細設定」→「ベル通知スタイル」を開く
- 「音によるチャイム」のチェックボックスを外して「保存」する
- 必要に応じてほかのプロファイル(WSL2用の AlmaLinux-9, Ubuntu-24.04 など)も同様に変更する
PowerShell 補完を bash 風にする
TBD: プロファイル実行ポリシーの適切な設定方法を調査する。それまでは 以下の設定内容の行をPowerShell 起動のたびに実行する
TBD: コマンド行編集も bash 風にする
- プロファイルを新規作成する(すでに作成済みの場合は不要)
New-Item -ItemType File -Path $PROFILE.CurrentUserAllHosts -Force
- プロファイルをエディタで開く
notepad $PROFILE.CurrentUserAllHosts
- 以下の行を追記して、保存、終了する
Set-PSReadLineKeyHandler -Key Tab -Function Complete
- 参照情報
PowerShell sudo の有効化 (TBD)
Windows デスクトップ設定
- タスクバーを左に表示
- 「タスクバーで右クリック」 → 「タスクバーの動作」 → 「タスクバーの配置」 を「左揃え」に変更
- ウィンドウのスナップ機能(画面上部に持っていくと勝手にレイアウトされるやつ)の停止
- 「設定」 → 「システム」 → 「マルチタスク」 → 「ウィンドウのスナップ」 を「オフ」に変更
- Alt + Tab で Edge の画面をまとめる
- 「設定」 → 「システム」 → 「マルチタスク」 → 「スナップまたは Alt+Tab を押したときにアプリのタブを表示する」 を「タブを表示しない」に変更
リモートデスクトップ?
Windows 11 Home Edition ではリモートデスクトップ経由での利用はできない(初めて知った)。フリーでも使えるものを探してみたが、結局 Pro Edition にアップグレードするのが一番面倒がなさそう。
以下備忘録
-
TightVNC
- サーバ(Windows): TightVNC 2.8.85
- ビュワー(MacOS): Remote Ripple (App Store経由)
- 簡単な操作なら可能だが描画が遅く実用には向かない
- RDP Wrapper 1.6.2
- Chromeブラウザやアンチウイルスソフトで危険判定される、グレーゾーンなところあり、などから利用は避ける
- Chrome Remote Desktop
- 一時的に招待する使い方はできるが継続的にログイン利用するには向かなそう
- その他商用製品の無料利用版
- いずれもアカウント作成、サーバ経由のためのインターネット接続が必要など、自宅内LANでの利用とは想定が異なる
- TeamViewer
- AnyDesk
- RealVNC VNC Connect
(今後も他にあれば随時追記)