proxmoxのVMでWindowsを高速化
proxmoxでストレージ認識を高速化してWindows11の動作速度を向上する話。
proxmoxのストレージ、皆さん何をお使いでしょうか?
NVMe -> SCSI?、SATA -> SATA?
デフォルトの設定のまま?
proxmox9現在、デフォルトではSCSIとして
ドライブファイルをrawで生成し、マウントされる。
しかしドライブの認識がうまく行けばさらなる速度向上が計れます。
この記事はWindowsのVM用に書いていますが、
Linuxでも同様の速度向上が見込めます。
カーネルが対応しているLinux VMであれば是非試してください。
要約
以下を指定してVM作成、virtioドライバをインストール時に導入。
- ストレージ: virtIO block
- CPU: x86-64-v3 (WSLを使いたい場合はhost)
x86-64-v3の方が速度は出るものの、
仮想化ホスト機能が使用不可となってしまう。
(LinuxのVMでは問題なくDocker,LXC,VMが稼働する。)
補足
- OEM版であれば予めHostのsmbios情報を取得して、qemuのコンフィグに追記。
-
プロセッサタブの詳細設定にnested-virtがあるが、x86-64-vX系には使用できない。 - GPUパススルーはエクスプローラー起動まで、手を付けない方がトラブルが少ない。 パススルーの為のドライバはOSインストール中に導入できないため。
- OSインストール後でもvirtIO blockドライバは導入できるが大型アップデートでコケる。
proxmoxにWindows11 25H2をインストール
proxmox自体のインストールについては色々な記事があるので
それを参照してもらうことにして、VM作成からの手順を記す。
1. VM作成手順
WindowsのVMを建てる際、どの方法でも注意点があり、
コレさえ欠かさなければ大抵は動く。

まず右上のVMを作成を押し、全般にて任意のVM ID, 名前を入力する。
OS:

-
CD/DVD: 予めダウンロードしておいたWindows11のイメージiso、
右側、ゲストOS欄では種別:Microsoft Windows
VirtIO ドライバ用の追加ドライブを追加を押し、最新のvirtio-win-xxx.isoを指定する。
virtioのダウンロード先はこちら。
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
記事ではvirtio-win-0.1.285.isoを使用した。
システム:

-
グラフィックカード: 既定でも良いがここでは標準VGAを選択した。
インストール後にGPUパススルーする場合はここをNoneにする。 -
SCSIコントローラ:VirtIO SCSI singleが定番。
多くのストレージを接続して並列読み書きをするのであれば
VirtIO SCSIの方がパフォーマンスが出る。 -
EFI,TPMストレージ: 未選択になっているので、コレもストレージプールを指定する。
proxmoxにて作成しているストレージプールを選択する。
ここはCIFSストレージなどをマウントしていると、設定間違えでNASにストレージを生成されて
激遅になるため必ずチェック。(2敗)
ディスク: 今回の要。

-
バス/デバイス:VirtIO Blockを指定する。Windows10であれば64GBでも良いが、Windows11であれば128GBは欲しい所。 -
キャッシュ:キャッシュなしを指定。
無停電、必ずシャットダウン操作を行ってからproxmoxを落とす
のを徹底できるのであれば、Write Back(unsafe)を選択。
最悪システムドライブが仮想HDDファイル単位で壊れる。
CPU:

-
ソケット: CPUそのものの数。通常1 -
コア: x86_64であればスレッド数を指定。ここは他サービスを立ち上げているなら調整。 -
種別: x86-64-v3を指定。
ただし、この後設定を触れる部分があるが、この設定は何をしてもWSLは起動しない。
WSLが必要であれば速度は落ちるがHostを指定
メモリ:
使用時は8GB~お好きな量食わせて上げてください。
インストール自体は4GBでも可能。
ネットワーク:
デフォルトのままで良い。ここを詰めることもできるが
それは不安定性とのバランスとなる。
以上でVMの初期設定は完了となる。
2. (OEM版)BIOS情報をコンフィグに追記
proxmoxホストで以下を実行して各内容を控える。
dmidecode | head -n 50
DMI type 0: マザーボード基本情報
- Vendor, Version, Release Date
DMI type 1: マザーボードのメーカー情報
- Manufacturer, Product Name, Version, Serial Number, UUID,SKU Number

以下の<>の部分に"hogehoge"のように控えた文字列を入力する。
もしDMI情報の中にカンマがある場合は
後からGUIで編集する際に入力が必要なので
一旦カンマ抜きで入力すること。
cat /sys/firmware/acpi/tables/MSDM > /etc/pve/qemu-server/slictable
VMID=<作ったWindowsのVMID>
VENDOR=<DMI type0のVendor>
VERSION0=<DMI type0のVersion>
RELEASEDATE=<DMI type0のRelease Date>
MANUFACTURER=<DMI type1のManufacturer>
PRODUCT=<DMI type1のProduct Name>
VERSION1=<DMI type1のVersion>
SERIAL=<DMI type1のSerial Number>
UUID=<DMI type1のUUID>
SKU=<DMI type1のSKU Number>
echo 'args: -acpitable file=/etc/pve/qemu-server/slictable -smbios type=0,vendor="$VENDOR",version="$VERSION0",date="$RELEASEDATE"' > /etc/pve/qemu-server/$VMID.conf
echo 'smbios1: uuid="$UUID",manufacturer="$MANUFACTURER",product="$PRODUCT",version="$VERSION1",serial="$SERIAL",sku="$SKU"' > /etc/pve/qemu-server/$VMID.conf
※カンマがtype1の文字列にあった場合は起動に失敗する。
WebGUIから入力することで、BASE64に変換され引数に組み込まれるため
以下のようにオプション->SMBIOS 設定 (type1)から編集する。

cf.) 実はtype1は全て埋めなくても問題がない。Windows11 25H2は、
- SMBIOS type0 (あれば認証後端末とライセンスが紐付けられる)
- SMBIOS type1: UUID, もしくはvmgenid
- MSDMファイル
で認識するようだ。
3. Windows11 25H2インストール手順 (VM上での操作)

proxmoxではWindowsのインストール時にbootが始まってすぐ、何かしらキーを連打しないとインストール画面に行くことができない。

この画面でEnterでもGでもいいので連打する

無事起動したら後はストレージ選択までは通常のインストールと同じだ。

言語設定を次へ、キーボードは日本語キーボードに変更。

セットアップオプションでチェックを入れて次へ

OEM、リテール含めプロダクトキーがありませんでも良い。
リテール版は後から入力も可能だ。

Home,Pro、持っているライセンスに応じて選択し次へ
VirtIO block, SCSI選択時の注意点

Windows 11をインストールする場所の選択での操作に注意がある。
ストレージにSATAを選択した場合はストレージが表示されるが、他の場合は表示されなくなる。
上部のドライバーのロードを押し、

参照から

virtio-win-xxx > amd64 > w11を選択

するとRed Hat VirtIO SCSI Controllerが表示されるので右下インストールを押す。

これによりドライバがWindowsの奥深い所へインストールされ、
ストレージが選択できるようになる。

その後は次へ、インストール、と進めていく。
無事に自動で再起動されると初期設定画面になる。
ここからは様々な記事でも紹介されてるがローカルアカウントのインストール手順を紹介する。
Windows初期設定

好きな言語を選び、はい -> はい -> スキップ

Shift+F10を押して黒い画面が出たら、タイトルをクリックしてフォーカスする。
oobe\B -> Tabでも良いし、
oobe\BypassNRO.cmdと入力しても良い。
BypassNRO.cmdが表示されたらEnterを押して再起動を待つ


後は好きな言語を選んではい -> はい -> スキップ

インターネットに接続していませんを押す。
ネットワークを設定していても、virtioドライバがない為に認識されない。
もしリモートアカウントでインストールを進める場合は
ドライバのインストールからvirtio-win-xxx>NetKVM>w11>amd64と
フォルダを指定すればインストールできる。

名前を入力、パスワード、パスワード再確認、セキュリティの質問
と設定を進め、

プライバシー設定を選択して次へ
どうせ後からCUIでプライバシー関連は
設定できるため、そのまま次を押しても良い。
4. Windows11 不要なアプリ、サービス、テレメトリ削除、機能の変更
私は以下のコマンドを貼り付けて半自動化している。
長い行は畳んでいる。
Linkedin、ソリティアなど、一部このコマンドでは
消せないものがあるが殆ど消せるので最初に管理者権限で
PowerShellを起動して実行している。
自動ログイン
以下は<>を環境に合わせて変更して使用する。
# 自動ログインON
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d 1 /f
# 自動ログイン - ユーザー名
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d <ユーザー名> /f
# 自動ログイン - パスワード
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d <ローカルパスワード> /f
デフォルトの設定変更、不要アプリ、サービス削除
PowerShell よく使うもの
# - - - - - - - - - - 電源設定の有効化
powercfg -setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
# - - - - - - - - - - TCP設定
# https://zenn.dev/hamsters/articles/f698069509ff5a
## BBRv2はWi-Fi環境や、相手サーバーのネット環境が弱い場合に
## 速度を向上させる効能がある。Steamなどで不具合が出るため
## 動作に支障が出たらURLを参考に元に戻す。
netsh int tcp set supplemental template=Internet congestionprovider=BBR2
netsh int tcp set supplemental template=InternetCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Datacenter congestionprovider=BBR2
netsh int tcp set supplemental template=DatacenterCustom congestionprovider=BBR2
netsh int tcp set supplemental template=Compat congestionprovider=BBR2
## Steam不具合対策
netsh int ipv6 set global loopbacklargemtu=disable
netsh int ipv4 set global loopbacklargemtu=disable
# - - - - - - - - - - CPU負荷を軽減
netsh int tcp set global chimney=enabled
netsh int tcp set global rss=enabled
## 設定反映の確認
netsh int tcp show global
# ハイバネーション無効化
powercfg /h off
# winsockリセット
netsh winsock reset
netsh int ip reset reset.log
# DNSキャッシュリセット
ipconfig /flushdns
# IPアドレス解放
ipconfig /release
ipconfig /renew
# - - - - - - - - - - アプリ削除
# Get-AppxPackage -AllUsers # これで全てのインストール済みアプリが表示される
# Remove-AppxPackage # アプリをアンインストール
## 3D関連
Get-AppxPackage Microsoft.3DBuilder | Remove-AppxPackage # 3D Builder
Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage # 3Dビューアー(1809以降)
Get-AppxPackage Microsoft.MSPaint | Remove-AppxPackage # ペイント3D
Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage # Print3D(CFU以降)
## ゲーム関連
Get-AppxPackage 828B5831.HiddenCityMysteryofShadows | Remove-AppxPackage # Hidden City アイテム探しアドベンチャー(FCU以降)
Get-AppxPackage A278AB0D.MarchofEmpires | Remove-AppxPackage # マーチ オブ エンパイア
Get-AppxPackage flaregamesGmbH.RoyalRevolt2 | Remove-AppxPackage # RoyalRevolt 2
Get-AppxPackage king.com.BubbleWitch3Saga | Remove-AppxPackage # バブルウィッチ3(FCU以降)
Get-AppxPackage king.com.CandyCrushSaga | Remove-AppxPackage # Candy Crush Saga(1809以降)
Get-AppxPackage king.com.CandyCrushSodaSaga | Remove-AppxPackage # Candy Crush Soda Saga
Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage # Microsoft Solitaire Collection
Get-AppxPackage Microsoft.MicrosoftSolitaireCollection | Remove-AppxPackage # ソリティア
## SNS関連
Get-AppxPackage *Twitter | Remove-AppxPackage # Twitter
Get-AppxPackage 7EE7776C.LinkedInforWindows | Remove-AppxPackage # LinkedIn(FCU以降)
Get-AppxPackage Facebook.Facebook | Remove-AppxPackage # Facebook
Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage # Skypeを始めよう
Get-AppxPackage NAVER.LINE* | Remove-AppxPackage # LINE
## デフォルトアプリ
Get-AppxPackage *bing* | Remove-AppxPackage # マネー、スポーツ、ニュース、天気
Get-AppxPackage 89006A2E.AutodeskSketchBook | Remove-AppxPackage # SketchBook(FCU以降)
Get-AppxPackage Fitbit.FitbitCoach | Remove-AppxPackage # Fitbit Coach(1809以降)
Get-AppxPackage KeeperSecurityInc.Keeper | Remove-AppxPackage # Keeper
Get-AppxPackage Microsoft.5220175982889 | Remove-AppxPackage # テレBing
Get-AppxPackage Microsoft.BingNews | Remove-AppxPackage # Bingニュース
Get-AppxPackage Microsoft.BingSearch | Remove-AppxPackage # Bingサーチ*廃止
Get-AppxPackage Microsoft.BingWeather | Remove-AppxPackage # 天気
Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage # デスクトップインストーラー
Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage # ヘルプ
Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage # 問い合わせ/ヘルプの表示
Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage # ヒント/はじめに
Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage # メッセージング
Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage # メモ帳擬き
Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage # モバイル通信プラン/有料Wi-Fi /携帯ネットワーク
Get-AppxPackage Microsoft.People | Remove-AppxPackage # People(1809以降)
Get-AppxPackage Microsoft.PowerAutomateDesktop | Remove-AppxPackage # 自動化GUI
Get-AppxPackage Microsoft.Todos | Remove-AppxPackage # メモ帳擬き
Get-AppxPackage Microsoft.Windows.PeopleExperienceHost | Remove-AppxPackage # People
Get-AppxPackage microsoft.windowscommunicationsapps | Remove-AppxPackage # メール、カレンダー
Get-AppxPackage Microsoft.WindowsFeedbackHub | Remove-AppxPackage # フィードバックHub
Get-AppxPackage Microsoft.WindowsMaps | Remove-AppxPackage # マップ
Get-AppxPackage Microsoft.WindowsSoundRecorder | Remove-AppxPackage # ボイスレコーダー
Get-AppxPackage Microsoft.ZuneMusic | Remove-AppxPackage # Groove ミュージック
Get-AppxPackage Microsoft.ZuneVideo | Remove-AppxPackage # 映画 & テレビ
Get-AppxPackage MicrosoftWindows.Client.CoreAI | Remove-AppxPackage # Copilot
Get-AppxPackage ThumbmunkeysLtd.PhototasticCollage | Remove-AppxPackage # Phototastic Collage(1809以降)
## Office関連
Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage # 新しいOfficeを始めよう
Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage # OneNote
Get-AppxPackage Microsoft.OfficeLens | Remove-AppxPackage # Office Lens
Get-AppxPackage Microsoft.OutlookForWindows | Remove-AppxPackage # Oldアウトルック
Get-AppxPackage MSTeams | Remove-AppxPackage # 古いTeams
## XBOX関連
Get-AppxPackage Microsoft.GamingApp | Remove-AppxPackage # ゲーム
Get-AppxPackage Microsoft.Xbox.TCUI | Remove-AppxPackage # ゲーム バー
Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage # Xbox
Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage # Xboxゲームオーバーレイ
Get-AppxPackage Microsoft.XboxGamingOverlay | Remove-AppxPackage # ゲームバー
Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage # Xbox
Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage # Xboxテキストスピーチ
# - - - - - - - - - -機能削除
dism /online /Disable-Feature /NoRestart /featurename:MicrosoftWindowsPowerShellV2 # 古いPowerShell
dism /online /Disable-Feature /NoRestart /featurename:MicrosoftWindowsPowerShellV2Root # 古いPowerShell
dism /online /Disable-Feature /NoRestart /featurename:Printing-Foundation-Features # 印刷
dism /online /Disable-Feature /NoRestart /featurename:Printing-Foundation-InternetPrinting-Client # 印刷
dism /online /Disable-Feature /NoRestart /featurename:SMB1Protocol # SMB 1.0/CIFS ファイル共有のサポート
dism /online /Disable-Feature /NoRestart /featurename:WindowsMediaPlayer # 古いWMP
# - - - - - - - - - -レジストリ操作
# https://note.com/pcubik/n/n2e2790fb5a9f
## 右クリックメニューを従来の仕様に
reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
## システムの起動速度を最適化; デフォルト: 5000; 2000-3000の間で。
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control" /v WaitToKillServiceTimeout /t REG_SZ /d 2000 /f
## ウィンドウの表示速度を高速化; デフォルト: 400; 100程度で
reg.exe add "HKEY_CURRENT_USER\Control Panel\Desktop" /v MenuShowDelay /t REG_SZ /d 100 /f
## シャットダウン時、自動でプログラムを終了させる
reg.exe add "HKEY_CURRENT_USER\Control Panel\Desktop" /v AutoEndTasks /t REG_SZ /d 1 /f
## エクスプローラーの表示設定を変更
## 拡張子を表示
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v HideFileExt /t REG_DWORD /d 0 /f
## 隠しファイルを表示
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v Hidden /t REG_DWORD /d 1 /f
## システムファイルを表示
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSuperHidden /t REG_DWORD /d 1 /f
## スタートをPCにする
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowCompColor /t REG_DWORD /d 1 /f
## インフォTIPSを表示しない
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowInfoTip /t REG_DWORD /d 0 /f
## プロセス複数化
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v SeparateProcess /t REG_DWORD /d 1 /f
## タスクバー
## タスクバーのアニメーションを切る
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAnimations /t REG_DWORD /d 0 /f
## 秒表示
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v ShowSecondsInSystemClock /t REG_DWORD /d 1 /f
## Copilot消す
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f
## タスクバーを常時小さいアイコンへ
reg.exe add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v UseCompactMode /t REG_DWORD /d 1 /f
## テレメトリ停止
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection" /v AllowTelemetry /t REG_DWORD /d 0 /f
# - - - - - - - - - -サービス停止
# https://error-daizenn.hatenablog.com/entry/2025/09/24/085256
# https://ygkb.jp/22889
# 上記URLから引用。
## サービスを停止する
## テレメトリ
sc.exe config "DiagTrack" start= disabled
## 検索インデックス作成
sc.exe config "WSearch" start= disabled
## ActiveX Installer (AxInstSV)
sc.exe config AxInstSV start=disabled
## マップアプリ
sc.exe config MapsBroker start=disabled
## Fax
sc.exe config Fax start=disabled
## iSCSI
sc.exe config MSiSCSI start=disabled
## Telephony - ダイヤルアップ、FAX
sc.exe config TapiSrv start=disabled
## 市販デモ サービス
sc.exe config RetailDemo start=disabled
## BitLocker Drive Enctyption Service
sc.exe config BDESVC start=disabled
## 診断機能が役立った試しがない <- 同意。
sc.exe config DPS start=disabled
sc.exe config WdiServiceHost start=disabled
sc.exe config WdiSystemHost start=disabled
## Branch Cache - 本支店間のブランチ通信を一時的にキャッシュする機能。この機能に依存する時点で、ネットワークシステムの設計に問題があるので無効
sc.exe config PeerDistSvc start=disabled
## Windows にエラーが出た時に、勝手に Microsoft に情報を送る機能。
sc.exe config WerSvc start=disabled
## SysMain (旧称: Superfetch)
sc.exe config SysMain Start=disabled
## Windows Media Player Network Sharing Service
sc.exe config "WMPNetworkSvc" start= disabled
## Xbox Accessory Management Service
sc.exe config "XboxGipSvc" start= disabled
## Xbox Live Auth Manager
sc.exe config "XblAuthManager" start= disabled
## Xbox Live セーブ データ
sc.exe config "XblGameSave" start= disabled
## Xbox Live ネットワーキング サービス
sc.exe config "XboxNetApiSvc" start= disabled
<<<<<<< HEAD
## Officeの案内。disabledにするとOfficeファイルが開けなくなるので"手動"。
## 起動時に勝手に生えるのでスタートアップ時に`sc.exe stop "ClickToRunSvc"`しても良いかも。
sc.exe config "ClickToRunSvc" start=ondemand
=======
## Officeの案内。disabledにするとOfficeファイルが開けなくなるので"手動"。
## 起動時に勝手に生えるのでスタートアップ時に`sc.exe stop "ClickToRunSvc"`しても良いかも。
sc.exe config "ClickToRunSvc" start= ondemand
>>>>>>> 9319715d6e12cc22e63fb5bc4834757fcb110dd8
# - - - - - - - - - - クリーンアップ
dism /online /cleanup-image /restorehealth
機能有効化
# - - - - - - - - - -機能有効化
#dism /online /Enable-Feature /NoRestart /All /featurename:Microsoft-Hyper-V-All # 仮想化基盤
#dism /online /Enable-Feature /NoRestart /All /featurename:Microsoft-Windows-Subsystem-Linux # 仮想化基盤Linux
#dism /online /Enable-Feature /NoRestart /All /featurename:VirtualMachinePlatform # 仮想化基盤
dism /online /Enable-Feature /NoRestart /All /featurename:WAS-NetFxEnvironment # dotNET 環境
dism /online /Enable-Feature /NoRestart /All /featurename:Client-EmbeddedShellLauncher # シェル ランチャー
dism /online /Enable-Feature /NoRestart /All /featurename:Microsoft-RemoteDesktopConnection # リモートデスクトップ接続
dism /online /Enable-Feature /NoRestart /All /featurename:WCF-Pipe-Activation45 # 名前付きパイプのアクティブ化
お好みでアプリをインストール
winget集
# - - - - - - - - - -アプリ追加
winget update
winget upgrade --all --silent
# 必須
winget install 7zip.7zip # 圧縮/解凍
winget install Git.Git # Git
winget install GitHub.cli # GitHub
winget install Google.JapaneseIME # 日本語入力
winget install Microsoft.PowerShell # Powershell最新
winget install RaspberryPiFoundation.RaspberryPiImager # USBイメージ焼き
winget install Rufus.Rufus # USBイメージ焼き 2
winget install WinSCP.WinSCP # SCP
#winget install Logitech.OptionsPlus # マウス
winget install File-New-Project.EarTrumpet # 音量調整
winget install Microsoft.PowerToys # Windows拡張
winget install Microsoft.VCRedist.2015+.x64 # Cランタイム
winget install xanderfrangos.twinkletray # 画面の明るさ
# ユーティリティ
winget install Brave.Brave # Braveブラウザ
winget install voidtools.Everything # ファイル検索
winget install XPFFTQ032PTPHF # UniGet
# 開発
winget install Python.PythonInstallManager # python
winget install Google.PlatformTools # Android
#winget install Microsoft.DotNet.Runtime.3_1 # .NET3
#winget install Microsoft.DotNet.Runtime.5 # .NET5
#winget install Microsoft.DotNet.Runtime.6 # .NET6
#winget install Microsoft.DotNet.Runtime.7 # .NET7
#winget install Microsoft.DotNet.Runtime.8 # .NET8
winget install Microsoft.DotNet.Runtime.9 # .NET9
winget install Microsoft.OpenJDK.25 # Java
winget install Microsoft.VisualStudio.Community # 開発環境
winget install 9N0DX20HK701 # ターミナル
winget install Microsoft.VisualStudioCode # VSCode
winget install GoLang.Go # Go言語
winget install Rustlang.Rustup # Rust言語、Cargo
# ネット
#winget install Cloudflare.Warp # クラウドフレア
winget install Tailscale.Tailscale # Tailscale
# メディア
winget install Adobe.Acrobat.Reader.64-bit # PDF(Adobe)
winget install calibre.calibre # 本の管理
winget install MPC-BE.MPC-BE # 映像
winget install Nevcairiel.LAVFilters # 映像デコーダー
winget install neelabo.NeeView # 画像ビューアー
winget install PeterPawlowski.foobar2000 # 音楽
winget install PeterPawlowski.foobar2000.EncoderPack # 音楽デコーダ
winget install SumatraPDF.SumatraPDF # EPUBビューアー
# その他
winget install 9P6PMZTM93LR # Windows DefenderのWindows Store版
winget install Celsys.ClipStudioPaint # クリスタ
winget install Discord.Discord # Discord
winget install Mozilla.Thunderbird # メールアプリ
winget install Nvidia.CUDA # GPU-CUDA
winget install UnityTechnologies.UnityHub # UnityHub
winget install Valve.Steam # Steam
winget install VirtualDesktop.Streamer # Meta Questを無線で繋げるアプリ
手動インストールアプリをダウンロード、インストール
# Python Manager(デフォルト: 3.14)
#curl "https://www.python.org/ftp/python/pymanager/python-manager-25.2.msix" -o python-manager.msix
# 色々聞かれるので選択
#.\python-manager.msix
#pause
# 上記全部wingetにありました。
# -----
# 2025年時点でライブラリが豊富な3.13を入れる
pymanager install 3.13
pymanager uninstall 3.14
以下カリカリチューニング
賛否両論かと思う部分。スペックに合わせて使用。
# - - - - - - - - - -不要アプリ削除
## ウィジェットアプリ。sc.exeでは完全に消えない。
winget uninstall "Windows Web Experience Pack"
# - - - - - - - - - -コンポーネント操作
# https://note.com/pcubik/n/n2e2790fb5a9f#beaf67f8-2589-4144-bd84-3d219bdb6f30
echo "「コンピューターの構成」→「管理用テンプレート」→「Windowsコンポーネント」→「データ収集とプレビュービルド」「診断データを許可する」をダブルクリックし「無効」に設定"
gpedit.msc
pause
<<<<<<< HEAD
# コンピュータを使ってもいないときに、無駄に記憶装置にアクセスして、無用な負荷をコンピュータに要求するのが WinSat です。
#`taskschd.msc /s`で詳しく観れる。
=======
# コンピュータを使ってもいないときに、無駄に記憶装置にアクセスして、無用な負荷をコンピュータに要求するのが WinSat です。
#`taskschd.msc /s`で詳しく観れる。
>>>>>>> 9319715d6e12cc22e63fb5bc4834757fcb110dd8
schtasks /change /disable /tn "\Microsoft\Windows\Maintenance\WinSAT"
pause
# https://atmarkit.itmedia.co.jp/ait/articles/1812/03/news019.html
# 自動メンテナンス無効化(午前2時に勝手に立ち上がって更新したりウイルスチェックする機能。0で復旧可能)
reg.exe add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance" /v MaintenanceDisabled /t REG_DWORD /d 1 /f
# https://www.10yendama.com/archives/20204
## (RAM 16GB用)カーネルメモリを常駐化して、仮想メモリへの書き戻しを抑える設定
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v LargeSystemCache /t REG_DWORD /d 00000001 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v DisablePagingExecutive /t REG_DWORD /d 00000001 /f
echo "⚠セキュリティとトレードオフ!⚠"
echo "- - - - - - 辞めるならCtrl + C - - - - - -"
pause
## WindowsUpdateの手動化
sc.exe config "wuauserv" start= demand
## Defenderの常時スキャン箇所を緩めることでストレージアクセスが減る。
Add-MpPreference -ExclusionPath "C:\Program Files"
Add-MpPreference -ExclusionPath "C:\Program Files (x86)"
Add-MpPreference -ExclusionPath "$env:APPDATA\Local\Temp"
## Explorer patcherを使う場合
## https://github.com/valinet/ExplorerPatcher
#Add-MpPreference -ExclusionPath "$env:APPDATA\ExplorerPatcher"
#Add-MpPreference -ExclusionPath "C:\Windows\dxgi.dll"
#del "C:\Windows\SystemApps\Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy"
#del "C:\Windows\SystemApps\ShellExperienceHost_cw5n1h2txyewy"
さらなるチューニング用。仕事用では非推奨。
- ジャンボパケット環境
- 試した所、環境によって良くなったり悪くなったりと、
動作が怪しかったので、そういうのが好きな人はどうぞ
極端なコンフィグの変更
<<<<<<< HEAD
# https://www.10yendama.com/archives/830
## MTUをジャンボパケットの8972に(9000-オーバーヘッド)
netsh interface ipv4 set interface "イーサネット" mtu=8972
## レジストリからTCPなどのレイテンシを最小にする
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v DisableTaskOffload /t REG_DWORD /d 1 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v DefaultReceiveWindow /t REG_DWORD /d 260176 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v DefaultSendWindow /t REG_DWORD /d 260176 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v LargeBufferSize /t REG_DWORD /d 8000 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v MediumBufferSize /t REG_DWORD /d 1780 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v SmallBufferSize /t REG_DWORD /d 100 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters" /v TransmitWorker /t REG_DWORD /d 20 /f
## Receive Side Scaling(RSS)の無効化
netsh int tcp set global rss=disabled
## Network Direct Memory Access(NetDMA)の無効化
=======
## WSL2のネットワーク最適化
## インターフェース名は環境に応じて適宜読み替えてください
$iface = 'Hyper-V Virtual Ethernet Adapter'
## チェックサム計算をホスト側で行わせる(CPUオーバーヘッド削減&NAT/VPN処理との互換性確保)
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'Large Send Offload Version 2 (IPv4)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'Large Send Offload Version 2 (IPv6)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'IPv4 Checksum Offload' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'IPv6 Checksum Offload' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'TCP Checksum Offload (IPv4)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'TCP Checksum Offload (IPv6)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'UDP Checksum Offload (IPv4)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'UDP Checksum Offload (IPv6)' -DisplayValue 'Disabled'
## LSO を無効化(パケット分割をホスト側で行わせ、仮想スイッチの処理を安定させる)
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'Large Send Offload Version 2 (IPv4)' -DisplayValue 'Disabled'
Set-NetAdapterAdvancedProperty -InterfaceDescription $iface -DisplayName 'Large Send Offload Version 2 (IPv6)' -DisplayValue 'Disabled'
## ジャンボフレーム時は8972に変更 (9000-オーバーヘッド28)
netsh int ipv4 set subinterface "Wi-Fi" mtu=1500 store=persistent
#netsh interface ipv4 set interface "イーサネット" mtu=8972
netsh int ipv4 set subinterface "イーサネット" mtu=1432 store=persistent
netsh int ipv4 set subinterface "イーサネット 4" mtu=1432 store=persistent
## Receive Side Scaling(RSS)の~~無効化~~今どきは有効化の方が多コア下で活きる
#netsh int tcp set global rss=disabled
netsh int tcp set global rss=enable
## Network Direct Memory Access(NetDMA)の無効化.メモリにコピーするより直にCPUが扱うほうが速い
>>>>>>> 9319715d6e12cc22e63fb5bc4834757fcb110dd8
netsh int tcp set global netdma=disabled
## 受信ウィンドウ自動チューニングレベルの変更
netsh int tcp set global autotuninglevel=highlyrestricted
# Nagleアルゴリズムを無効化する(環境によって動作が怪しい)
# https://gist.github.com/tracywhodoesnot/4c4af41d0a56c44d251e75306028af17
echo "Disable Nagle's algorithm"
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v TcpAckFrequency /t REG_DWORD /d 1 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v TCPNoDelay /t REG_DWORD /d 1 /f
echo "Increase maximum simultaneous connections"
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v MaxUserPort /t REG_DWORD /d 65534 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v TcpTimedWaitDelay /t REG_DWORD /d 30 /f
netsh int ipv4 set dynamicport tcp start=1025 num=64510
netsh interface tcp set global autotuninglevel=experimental
netsh interface tcp set global ecncapability=disabled
netsh int tcp set supplemental Internet congestionprovider=ctcp
netsh int tcp set global dca=enabled
netsh int tcp set global rsc=disabled
netsh int tcp set global timestamps=disabled
netsh int tcp set global initialRto=3000
netsh int tcp set global nonsackrttresiliency=disabled
netsh int tcp set global maxsynretransmissions=2
netsh int ipv4 set subinterface "Wi-Fi" mtu=1500 store=persistent
# https://www.reddit.com/r/windowsinsiders/comments/1prsdlt/microsoft_releases_native_windows_feature/?tl=ja
## 2025年末に発見されたNVMe用のストレージ高速化パッチ
## デフォルトのMicrosoftドライバーを使用している場合
## にのみ機能するのでVMでは意味ないと思われる。
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides" /v 735209102 /t REG_DWORD /d 1 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides" /v 1853569164 /t REG_DWORD /d 1 /f
reg.exe add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides" /v 156965516 /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network\{75416E63-5912-4DFA-AE8F-3EFACCAFFB14}" /ve /d "Storage Disks" /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Minimal\{75416E63-5912-4DFA-AE8F-3EFACCAFFB14}" /ve /d "Storage Disks" /f
あとがき
以上で終了。お疲れ様でした。
Windows11では初回インストール時にドライバを読み込むと、
そのストレージは更新なりの際にもドライバが認識される。
特に大型更新では
OSが起動する前の処理でストレージを触るようで、
インストール後に入れたドライバでは更新に失敗することがある。
OEM版のライセンスも含め、
ホストと同じマシンでゲストVM1つだけ稼働させる場合は問題が無い。
別マシンに移し替えてVMを使用するとライセンス違反となるため、
特にproxmoxのバックアップ、リストア時は注意が必要。
参考文献
Discussion