Windowsセットアップ

はじめに

このページはWindowsの使い方がわからない筆者が筆者のために書いた。
ほとんどの記述はWindows 11を前提としている。

データ移行

端末を乗り換える場合はデータ移行が発生するだろう。
やり方としては以下が考えられる。

データ移行はエクスプローラーの操作やオンラインストレージの同期で済むなら、それが最も楽だ。しかし、現実はそう甘くない。ファイル数、ファイルサイズ、ファイル名の長さでコピーが途中で止まるか失敗する。エクスプローラー操作ではエクスプローラーが固まる。探索者がダウンとは何とも不吉である。途中で止まっても再開できればよいが、どこから再開すればよいか悩むはずだ。

そこで筆者はrobocopyを使う。マルチスレッドで動き、エクスプローラーと違って長いファイル名もコピー可能で、コピー失敗時のリトライ機能がある。その上、再開する場合にはすでにコピーしているファイルはスキップする。ログも残せる。

以下はrobocopyの使用例である。データ移行元の端末でコマンドプロンプトを立ち上げて使う。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
// \\192.168.1.1がデータ移行先となる新しい端末
// C:\dataがデータ移行元の今まで使っていた端末

// ネットワークドライブの割り当て
// 新しい端末のfolderを事前に共有フォルダとして設定して、同一ネットワーク内に居ることが前提
// passwordにパスワード、usernameにユーザー名を入れる
net use D: \\192.168.1.1\folder password /user:username

// Robocopyの影響を確認する
C:\Windows\System32\Robocopy.exe C:\data D:\data /L /E /XJ /R:3 /COMPRESS /LOG+:%USERPROFILE%\Desktop\log-dryrun.txt /XD "System Volume Information" "$RECYCLE.BIN"

// Robocopyでコピーを実行する
C:\Windows\System32\Robocopy.exe C:\data D:\data /E /XJ /R:3 /COMPRESS /LOG+:%USERPROFILE%\Desktop\log-run.txt /XD "System Volume Information" "$RECYCLE.BIN"

コマンドのオプションの詳細はrobocopyを参照してほしい。robocopyには /MIR オプションがあるが、そのオプションの特性でコピー元とコピー先の指定を間違えるとデータを失うため、凡ミスが多い筆者は絶対に使わない。データは引き継げれば良い。

エクスプローラー

ウェブ会議などで画面共有の際にエクスプローラーを映すかもしれない。エクスプローラーは左側に位置するナビゲーションバーやホームに最近の開いたファイル、フォルダを表示する機能を提供する。そのため、意図せずファイル名やフォルダ名がエクスプローラーに映ってしまうかもしれない。

そういった事態を回避するため、プライバシー欄にある以下3点のチェックを外す。

./images/figure_windows_explorer_01.png

説明は割愛するが、筆者はファイルの拡張子を表示する設定に変える。

パッケージマネージャー

1
2
$ winget --version
v1.3.2691

インストールするパッケージ

コマンドプロンプトを管理者権限で開いて、以下を実行する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
winget install GNU.Emacs
winget install Git.Git
winget install Microsoft.AzureCLI
winget install Microsoft.VisualStudioCode --silent
winget install Microsoft.VisualStudio.2019.Professional --silent # VFX Reference PlatformのCY2022に依存
winget install Microsoft.VisualStudio.2022.Professional --silent
winget install Mozilla.Firefox
winget install 7zip.7zip
winget install TeraTermProject.teraterm
winget install WinMerge.WinMerge
winget install hluk.CopyQ
winget install Atlassian.SourceTree --silent
winget install Postman.Postman
winget install Python.Python.3.9 --silent # VFX Reference PlatformのCY2022に依存

# winget install Microsoft.PowerToys

ネットワークと共有

./images/figure_networkprofile_01.png

共有の詳細設定を確認する。

  • プライベートネットワーク … 自宅や職場を想定

    • ネットワーク探索 が意図した値になっているか
    • ファイルとプリンターの共有 が意図した値になっているか
  • パブリックネットワーク … 外出先を想定

    • ネットワーク探索 がオフになっているか

      • 外出先のネットワークで自機をネットワークで示すことはほぼないはず。
    • ファイルとプリンターの共有 がオフになっているか

      • 外出先のネットワークで自機をハブにしたいことはほぼないはず。
  • すべてのネットワーク

    • パブリックフォルダーの共有 がオフになっているか (意図してオンにしている場合を除く)
    • パスワード保護共有 がオンになっているか (意図してオフにしている場合を除く)

リモートデスクトップ接続 (接続される側の設定)

./images/figure_rdp_01.png

./images/figure_rdp_02.png

./images/figure_rdp_03.png

./images/figure_rdp_04.png

ラップトップの蓋と電源

WindowsがラップトップPCで動いている場合、蓋を閉じた時にスリープするかなどを変更できる。

コントロールパネルを開き 電源オプション をクリックする。

./images/figure_laptop_futa_01.png

カバーを閉じた時の動作の選択 をクリックする。

./images/figure_laptop_futa_02.png

下図の赤枠内で任意の設定に変更する。

./images/figure_laptop_futa_03.png

マウス

筆者はMX Master 3 for Macを使う。Windowsでも利用できる。

./images/figure_mouse_01.png

./images/figure_mouse_02.png

./images/figure_mouse_03.png

./images/figure_mouse_04.png

キーボード

筆者が使うキーボードは基本はHHKB (US配列)であるが、JIS配列のキーボードを使う時もある。

キーボードを切り替える例としてはリモートデスクトップ接続でログインしたWindows ServerがJIS配列というケースである。大方のサーバーはキーボード配列の変更を出来ないだろうから、JIS配列のキーボードを取り出して自分のPC環境を変える。

残念ながら、Windowsでキーボード配列を変更するにはOSを再起動しなければならない。いや、前向きに考えよう。設定を変えてOSを再起動すればキーボード配列を変更できる。

設定で「時刻と言語 > 言語と地域」に移り、言語欄に「日本語」があるはず。その右端の3点リーダーをクリックして 言語オプション を開く。そうすると、下図の画面に辿り着くので レイアウトを変更する ボタンをクリックする。

./images/figure_keyboard_01.png

余談だが、筆者は毎度「時刻と言語 > 入力 > キーボードの詳細設定」と画面遷移してしまう。頭の中に「キーボード配列の変更なのだから、言語の画面に行って、入力に関係するから入力を選び、配列変更は表に出す項目ではないだろうから、キーボードの詳細設定に行けば良い」といった思い込みがあるせいだろう。ソフトウェアに頭が追従できていないのである。2022年現在の言い方をするとDXできていない。

GUIでなくコードでやるならレジストリを書き換えるようにすればいいのだろうが、そのやり方はWindows 7かWindows 8.1で卒業した。

話を元に戻そう。 レイアウトを変更する ボタンをクリックすると下図の画面が出る。そこでキーボード配列を選べばよい。いや、その後に再起動が必要だ。

./images/figure_keyboard_02.png

なお、選択肢に 接続済みキーボードレイアウトを使用する がある。これはWindows 10にはなかったように思う。筆者はWindows起動時に物理キーボードの配列に応じてハードウェアキーボードレイアウトが自動で変わることを期待して試した。

./images/figure_keyboard_03.png

手元で試した限りでは、この項目は設定画面で「今すぐ再起動する」ボタンを押した際に繋がっているキーボードの配列を参照するのみであった。US配列とJIS配列の切り替えを円滑にかつ自動で動作するものではなかった。

キーマップ

ソフトウェアでキーは割り当て直せる。これは便利である。ただ、自分自身に都合の良い物理キーボードを手に入れるのが一番楽である。

ソフトウェアでCAPS LOCKをCtrlに変更する (できない)

2022年10月29日現在、手元のWindows 11 21H2環境ではCAPS LOCKをCtrlに変更できなかった。今後のソフトウェアのバージョンアップで変更可能になるかもしれないので試したことをここに記録する。

PowerToysのKeyboard Mangerを使う

Power ToysのKeyboard Managerを使ってキーマップを変更する。Power Toysは winget などでインストールできる。

Power Toysを起動する。

./images/figure_keymap_01.png

Keyboard Manager をクリックする。

./images/figure_keymap_02.png

キーの再マップ をクリックする。

./images/figure_keymap_03.png

プラス記号のボタンをクリックするとウィンドウが表示されるので、そのウィンドウにあるプルダウンからCAPS LOCKを選択して、割り当て先としてCtrl (Left)を選ぶ。キーの再マップの画面でOKボタンをクリックして反映する。

./images/figure_keymap_04.png

ただし、手元のWindows 11 21H2で試した限りではCAPS LOCKを押すとCtrlキーがずっと押されているような状態になるか半角全角の切り替えが起きた。

Ctrl2Capを使う

Ctrl2CapはCtrlとCAPS LOCKを変換する機能を提供する。以下から入手できる。

管理者権限でターミナル (例えばコマンドプロンプト) を開く。そして以下コマンドを実行するとインストールできる。

1
ctrl2cap /install

アンインストールしたい場合は以下の通り。

1
ctrl2cap /uninstall

インストールはできるが、手元のWindows 11 21H2で試した限りではCAPS LOCKを押すとCtrlキーがずっと押されているような状態になるか半角全角の切り替えが起きた。

日本語入力とIME

IMEはWindows標準搭載のMicrosoft IMEを使う。筆者が使っているUS配列のHHKBには半角/全角キーがないので Alt + ` で切り替えをする。

ディスプレイ接続

画面の拡張

./images/figure_widgets_01.png

./images/figure_widgets_02.png

./images/figure_widgets_03.png

./images/figure_widgets_04.png

./images/figure_widgets_05.png

./images/figure_widgets_06.png

テキストエディタ

話が長くなる。別の機会にしよう。

Git

筆者はGit for Windowsで済むことが多い。分量が多くなってくるとAtlassianのSourceTreeを使う。

参考までにGitクライアントを以下に列挙した。

diff

例えば、Git for Windowsのbashでソースコードの差分を表示する場合は以下のようになる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
// GitHubにあるEmacsのソースコード https://github.com/emacs-mirror/emacs/commit/1d62c964238a82ccfcbd07a554abe8e6c096fcd5
$ git diff HEAD HEAD~
diff --git a/lisp/emacs-lisp/hierarchy.el b/lisp/emacs-lisp/hierarchy.el
index fb5d518b22..4cb5ba64a8 100644
--- a/lisp/emacs-lisp/hierarchy.el
+++ b/lisp/emacs-lisp/hierarchy.el
@@ -567,7 +567,7 @@ LABELFN is the same function passed to `hierarchy-convert-to-tree-widget'.
 INDENT is the same function passed to `hierarchy-convert-to-tree-widget'.

 CHILDRENFN is the function used to discover the children of ELEM."
-  (lambda (_widget)
+  (lambda (widget)
     (mapcar
      (lambda (item)
        (widget-convert

WinMerge

WinMergeで表示するようにしたい場合は以下のようにする。
なお、筆者の場合はWinMergeが %LOCALAPPDATA%Programs にある。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[diff]
    tool = WinMerge
[difftool "WinMerge"]
    path = $LOCALAPPDATA/Programs/WinMerge/WinMergeU.exe
    cmd = \"$LOCALAPPDATA/Programs/WinMerge/WinMergeU.exe\" -f \"*.*\" -e -u -r \"$LOCAL\" \"$REMOTE\"
[merge]
    tool = WinMerge
[mergetool "WinMerge"]
    path = $LOCALAPPDATA/Programs/WinMerge/WinMergeU.exe
    cmd = \"$LOCALAPPDATA/Programs/WinMerge/WinMergeU.exe\" -e -u \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[alias]
    wdiff = difftool -y -d -t WinMerge
    wmerge = mergetool -y -t WinMerge

Visual Studio

Visual StudioはVisual Studio Installerで構成(ワークロード)を変更できる。また、その構成を .vsconfig ファイルに出力できる。この辺りに関しては以下が詳しい。

Visual Studio構成を .vsconfig ファイルにエクスポート。管理者権限のコマンドプロンプトで実行する。

1
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" export --installPath "C:\Program Files\Microsoft Visual Studio\2022\Professional" --config "C:\vs-2022-pro.vsconfig" --quiet

Visual Studio構成を .vsconfig ファイルをインポート。管理者権限のコマンドプロンプトで実行する。

1
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Professional" --config "C:\vs-2022-pro.vsconfig" --quiet

インポートが何故か上手くいかない時がある。以下がその例である。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe" modify --installPath "C:\Program Files\Microsoft Visual Studio\2022\Professional" --config "C:\vs-2022-pro.vsconfig" --quiet

<省略: 実際には処理の様子がログに出る>

Warning: [1ab8:000c][2022-10-28T00:51:46] Attempt 0: failed to cancel updates. System.TimeoutException: The operation has timed out.
   at Microsoft.VisualStudio.Threading.TplExtensions.<WithTimeout>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.Setup.Installer.Services.UpdateProviderService.<DisableUpdateChecksAsync>d__19.MoveNext()
Warning: [1ab8:000c][2022-10-28T00:51:46] Failed to cancel channel update check
Warning: [1ab8:000c][2022-10-28T00:51:46] Shutting down the application with exit code 1
Warning: [1ab8:000c][2022-10-28T00:51:46] We are in the middle of checking for updates. Please wait a minute and try again.
[1ab8:0001][2022-10-28T00:51:46] Releasing singleton lock.
[1ab8:0001][2022-10-28T00:51:46] Releasing singleton lock succeed.
[1ab8:0001][2022-10-28T00:51:46] Releasing singleton lock.
[1ab8:0001][2022-10-28T00:51:46] Singleton lock does not exist. Releasing singleton lock skipped.
Warning: [1ab8:001f][2022-10-28T00:51:46] No previous catalog found at 'C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances\0fb1f266\catalog.previous.json'
Warning: [1ab8:001f][2022-10-28T00:51:47] No previous catalog found at 'C:\ProgramData\Microsoft\VisualStudio\Packages\_Instances\f0e18cf7\catalog.previous.json'
[1ab8:001f][2022-10-28T00:51:47] Status changed to NoUpdate
[1ab8:0001][2022-10-28T00:51:47] Closing the installer with exit code 1
[1ab8:0001][2022-10-28T00:51:47] Exit Code: 1
[1ab8:0001][2022-10-28T00:51:47] Cleared previous session ID.
[1ab8:0001][2022-10-28T00:51:50] Trying to remove channel manifest: C:\Users\User\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\078181f9\installChannelManifest.json
[1ab8:0001][2022-10-28T00:51:50] Trying to remove product manifest: C:\Users\User\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\078181f9\install_catalog.json
[1ab8:0001][2022-10-28T00:51:50] Trying to remove channel manifest: C:\Users\User\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\c392af98\installChannelManifest.json
[1ab8:0001][2022-10-28T00:51:50] Trying to remove product manifest: C:\Users\User\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\c392af98\install_catalog.json

末尾に "Trying to remove …" とログに出るが、ファイルだけでなく _Channels フォルダ内のデータを削除すると処理が正常に動くようになった。そのため、上手くいかない場合は以下のフォルダ内のデータを削除して、再度実行してみるとよいかもしれない。

1
%LOCALAPPDATA%\Microsoft\VisualStudio\Packages\_Channels

Windows Terminal

設定ファイルのパス。JSONファイルなので任意のテキストエディタで編集するのもありだが、Windows TerminalにGUIがある。

1
%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_{何らかの識別番号}\LocalState

Git for WindowsのBash

Git for WindowsにBashがある。これがあるとGit操作時に何かと便利である。そこでWindows Terminalのプロファイルに追加する。筆者はGit for WindowsをAtlassianのSourceTreeが取得するパッケージを使うので、パスがそのようになっているが基本的には bash.exe を指定すればよい。

Windows Terminalで Ctrl + , をタイプすると設定画面が開く。

Bashのパス

1
2
3
4
5
// Git for WindowsのGit Bash
C:\Program Files\Git\bin\bash.exe

// SourceTreeのGit Bash
%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\bash.exe

アイコンのパス

1
2
3
4
5
// Git for Windows
C:\Program Files\Git\mingw64\share\git\git-for-windows.ico

// SourceTree
%LOCALAPPDATA%\Atlassian\SourceTree\git_local\mingw32\share\git\git-for-windows.ico

x64 Native Tools Command Prompt for VS 2022

VC++環境下でビルドする場面があるので登録する。

コマンドプロンプトのパス

1
%comspec% /k "C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars64.bat"

アイコンのパスはWindows Terminalのプロファイルにあるコマンドプロンプトで設定しているアイコンと同じにした。

Windows Terminalが使えない場合

スタートメニューでWindows Terminalを検索してアプリとしてヒットしない場合がある。その場合はアプリ実行エイリアスの画面でターミナルのオン → オフ → オンを試してほしい。

下図はスタートメニューのアイコンで右クリックした際のスクリーンショット。Windows PowerShellとなっている。ここにターミナルが表示されてほしい。

./images/figure_windowsterminal_02.png

アプリ実行エイリアスの画面。ターミナルの項目をトグルし直す。

./images/figure_windowsterminal_03.png

その後、スタートメニューのアイコンで右クリックするとターミナルが表示されるようになった。

./images/figure_windowsterminal_04.png

Unity

UnityのLTSをインストールする。

Unity Hubのコマンドライン操作でUnity Editorをインストールできる。 -m はモジュールである。詳しくは後述のヘルプコマンドを参照されたい。

1
2
"C:\Program Files\Unity Hub\Unity Hub.exe" -- --headless install --version 2021.3.12f1 -m universal-windows-platform windows-il2cpp
"C:\Program Files\Unity Hub\Unity Hub.exe" -- --headless install --version 2020.3.41f1 -m universal-windows-platform windows-il2cpp

インストール済みのUnity Editorは以下のコマンドで確認できる。

1
2
3
>"C:\Program Files\Unity Hub\Unity Hub.exe" -- --headless editors -i
2020.3.41f1 , installed at C:\Program Files\Unity\Hub\Editor\2020.3.41f1\Editor\Unity.exe
2021.3.12f1 , installed at C:\Program Files\Unity\Hub\Editor\2021.3.12f1\Editor\Unity.exe

Unity Hubのコマンドラインは以下のヘルプコマンドを参照されたい。

1
"C:\Program Files\Unity Hub\Unity Hub.exe" -- --headless help

Windows Sandbox

./images/figure_windowssandbox_01.png

プログラムを試しに実行してみたいが、取り扱う内容によっては実行環境の用意に時間を要する場合がある。例えば、PowerShellスクリプトやバッチファイルでアプリインストールやフォルダやファイルの作成や削除などをして環境を初期化したい場合だ。しかも何度も試したい場合だ。

こういった場合には仮想マシンを用意するという手があるが、クラウドに仮想マシンを立てるか、ローカルマシンにハイパーバイザーを入れてOSをインストールして仮想マシンを構築せねばならない。この準備が面倒である。

アプリ Windows Sandbox は起動するだけでクリーンなWindows環境が手に入る。アプリを終了するとデータが消え真っ新になる。後始末のことを考えなくてよいので楽である。

どうやらvEthernet (Default Switch)を経由してインターネットに繋がるらしい。

./images/figure_windowssandbox_02.png

ただ、手元の環境 (Windows 11 21H2) ではWindows Sandboxを有効にしても、ホストのネットワークアダプターの一覧には vEthernet (Default Switch) が表示されなかった (上図参照)。そのDefault SwitchはHyper-Vでも利用するとのことだから、Hyper-Vを有効にしてみたが、結局はネットワークアダプターの一覧には変化がなかった。

グループポリシーを念のために確認してみたが、ネットワーク接続を禁止しているような設定ではなかった。

ひとまず、Windows Sandboxの利用を諦めた。

./images/figure_windowssandbox_03.png

./images/figure_windowssandbox_04.png

./images/figure_windowssandbox_05.png

未構成を選択しているが「このポリシー設定を構成しない場合は、ネットワークが有効になります。」とあるので、このままでよいはずだ。なお、有効にしてからWindowsを再起動してWindows Sandboxを起動してみたが、変化はなかった。

./images/figure_windowssandbox_06.png

Hyper-V

./images/figure_hyperv_01.png

Windows 11で動くので、いわゆるクライアントHyper-Vである。死後かもしれない。Windows ServerのHyper-Vとは差異があるので、区別するためにそう呼んでいると記憶している。

インストール方法

Hyper-Vは Windows の機能の有効化または無効化 で有効にする。
下図はWindows 11 Pro 22H2でのスクリーンショットである。

./images/figure_hyperv_02.png

余談: Default Switch

Hyper-Vを有効にすると、ネットワークアダプタに Default Switch が追加される(要出典)。
ただ、手元のPCではそれが追加されなかった。原因不明。

ネットワーク設定 - 仮想スイッチ

ネットワークに以下の種類がある。

  • Default Switch
  • 外部ネットワーク
  • 内部ネットワーク
  • プライベートネットワーク

以下の記事が詳しい。

Default Switchに関しては以下が詳しい。

Windows 11 開発環境 (WinDev2210Eval)

./images/figure_hyperv_11.png

Hyper-Vマネージャーが提供する クイック作成 には Windows 11 開発環境 がある。
何やら便利そうではあるが、よく読むと気になる記載がある。

Windows 11 VM のライセンス条項は、競合するどのWindows ライセンス条項よりも優先されます。

EULA

このまま Windows 11 開発環境 で仮想マシンを作成すると、その仮想マシンのデスクトップにEULA.pdfが置かれている。EULA.pdfを開くと文頭に MICROSOFT SOFTWARE EVALUATION LICENSE TERMS FOR VIRTUAL HARD DISK IMAGE WITH WINDOWS 11, VISUAL STUDIO, AND OTHER MICROSOFT PRODUCTS IDENTIFIED IN EXHIBIT A とある。

そのEULA.pdfを素人である筆者が「2. Installation and Use Rights.」の「d. Multi-Use scenarios.」の「(vi) Remote access.」を読む限りではWindows PCのユーザーと仮想マシンにリモートアクセスするユーザーが同一であればリモートアクセスは許可されているようだ。実際の文面を読みたい場合は Windows 11 開発環境 で仮想マシンを作成してほしい。

また、同文書には 90日 という記述が多かった。 Windows 11 開発環境 で作った仮想マシンのデスクトップの右端を見ると Windows License valid for 90 days とある。どうやらこれを指しているようだ。

以上のように90日という稼働制限があるため、MSDNサブスクリプションを契約済みなら Windows 11 開発環境 ではなく、MSDNにあるWindowsのISOを使ったほうが無難かもしれない。

リモートデスクトップ

仮想マシン「Windows 11 開発環境」はWindowsローカルアカウント User を持つ。このアカウントにはパスワードがない。そのため、Hyper-Vマネージャから同仮想マシンに接続する際はSign inボタンをクリックするだけでログインできる。(下図参照)

./images/figure_hyperv_13.png

ところが、このままではリモートデスクトップ接続ができない。リモートデスクトップ接続でのログインを許可している状態であっても、ユーザーにパスワードが設定されていない場合はログインできない。 User はその状態にある。

./images/figure_hyperv_14.png

なので、試しにウィンドウにパスワードを空欄のままOKボタンを押すと……

./images/figure_hyperv_15.png

エラー応答が届く。

./images/figure_hyperv_16.png

これは User にパスワードを設定すればよい。

./images/figure_hyperv_17.png

./images/figure_hyperv_18.png

./images/figure_hyperv_19.png

./images/figure_hyperv_20.png

User にパスワードを設定し終わったら、その情報でリモートデスクトップ接続でログインできる。

Python

Windows 11では(正確にはWindows 10のMay 2019 Update以降から)、PythonをMicrosoft Storeからインストールできるよう導線が組まれており、Pythonをインストールしていない状態でコマンドプロンプトでPythonを実行するとMicrosoft Storeに遷移する。そこでPythonのインストールが出来る。この導線は導入の手軽さがあって良い。

Microsoft Storeを含め、以下のように選択肢がいくつかある。

なお、筆者はwingetでPythonをインストールする。

Microsoft StoreのPythonの導線を消す

一度もPythonをインストールしたことがない場合に、そのPythonの実行ファイルの在処は以下のように確認できる。

1
2
where python
C:\Users\User\AppData\Local\Microsoft\WindowsApps\python.exe

C:\Users\User\AppData\Local\Microsoft\WindowsApps を調べるとPythonが0バイトのファイルだとわかる。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
dir C:\Users\User\AppData\Local\Microsoft\WindowsApps\
 Volume in drive C is Windows
 Volume Serial Number is {識別子}

 Directory of C:\Users\User\AppData\Local\Microsoft\WindowsApps

<中略>

2022/10/29  00:43                 0 python.exe
2022/10/29  00:43                 0 python3.exe

これを消すには設定アプリで操作する。

./images/figure_python_03.png

./images/figure_python_04.png

下図赤枠内の アプリインストーラー をオフにする

./images/figure_python_05.png

その他 - Windows 10関連

Windows OS Version

  • GUI
  • PowerShell
  • Command Prompt

Type winver in Run (Windows + R)

See version

./images/Tips_Windows_version_01.png

./images/Tips_Windows_version_02.png

1
2
3
4
5
> [System.Environment]::OSVersion

Platform ServicePack Version      VersionString
-------- ----------- -------      -------------
 Win32NT             10.0.19043.0 Microsoft Windows NT 10.0.19043.0

systeminfo

1
2
3
> systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19043 N/A Build 19043

ver

1
2
> ver
Microsoft Windows [Version 10.0.19043.1083]

Environment Variables

Version 20H2

./images/Tips_Windows_Environment_01.png

./images/Tips_Windows_Environment_03.png

Local Group Policy

  1. Enter Win + R
  2. Enter gpedit.msc

./images/LocalGroupPolicyEditor.png

DirectX Diagnostic Tool

  1. Enter Win + R
  2. Enter dxdiag
./images/Graphics_NormalLogin-DxDiagDisplay1.png
Tab "Display 1"
./images/Graphics_NormalLogin-DxDiagDisplay2.png
Tab "Display 2"