Windows がもっさりしたりエクスプローラーがフリーズするときに

こんにちは、アーキテクトのやまぱんです。

２年くらい使っているメインの PC で大したリソース (CPU / Memory) を使ってないのにエクスプローラーがフリーズ、具体的にはファイルのコピー操作等で一瞬(一瞬じゃない)エクスプローラーが固まるとか・・・、そんな感じでかなりもっさりするようになってきたのでこの際にせっかくなのできれいにしよう！！ｔ思い各種コマンドを打ちました。結果すごくサクサク✨サクサク✨動くようになりました。
こんなにはやかったんか！！って感じです。
ただ、全部まとめて打ったのでどれが一番効いたかは不明です。すみません。

補足コメントや質問、<font color="red">**いいね、拡散**</font>、是非お願いします🥺！
間違ってたら<font color="red">**優しく**</font>教えてください！


## モチベ
上記の通り、PCが大したリソースを使ってないのに、非常にもっさりした感じになっちゃてるかたの参考になれば幸いです。

:::note info
詳細な説明はしていないので、自己責任で調べた上で実行してください。
:::


以下のコマンドを実行することで、キャッシュの削除、ディスク・メモリのチェック、システム修復、不要なネットワークドライブの削除、ネットワーク高速化、そしてシステムのもっさり感改善を試みることができます👍👍

---

## キャッシュの削除 

### サムネイルキャッシュの削除
エクスプローラーのサムネイルキャッシュが破損している場合に有効です。
```powershell
Remove-Item "$env:LocalAppData\Microsoft\Windows\Explorer\thumbcache_*.db" -Force -ErrorAction SilentlyContinue
```

### アイコンキャッシュの削除
アイコンキャッシュが破損している場合に有効です。
```powershell
Remove-Item "$env:LocalAppData\IconCache.db" -Force -ErrorAction SilentlyContinue
```

---

## ディスクとメモリのチェック 

### ディスクチェック
ハードディスクのエラーを検出し、修復します。  
※実行後に再起動が必要な場合があります。
```PowerShell
chkdsk C: /f /r
```

### メモリ診断ツールの起動
ハードウェア（特にメモリ）の不具合をチェックする場合に使用します。
```PowerShell
mdsched.exe
```

---

## システムのクリーンアップと修復 

### ディスククリーンアップ
不要ファイルの削除により、ディスクの空き容量を増やします。
```PowerShell
cleanmgr
```

### システムファイルチェッカー (SFC)
破損しているシステムファイルを検出・修復します。
```PowerShell
sfc /scannow
```

### DISM ツールによるシステムイメージ修復
SFC で解決しなかった問題がある場合、DISM を使ってシステムイメージの修復を試みます。
```PowerShell
DISM /Online /Cleanup-Image /RestoreHealth
```

---

## 不要なネットワークドライブの削除 

### 使っていないネットワークドライブを削除
使用していないネットワークドライブがある場合、ドライブ文字を指定して以下のコマンドを実行してください。（例では `Z:` ドライブを削除）
使っていないネットワークドライブが原因でエクスプローラーの動作が遅くなっている場合、削除することで快適になる可能性があります。
```PowerShell
net use Z: /delete
```


---
## ネットワーク周りの高速化 

以下のコマンドは、TCP のグローバル設定を調整することでネットワークパフォーマンスの向上を試みます。  
※システムやネットワーク環境によって効果が異なる場合があります。実行前に現在の設定を確認し、必要に応じて元に戻すかテスト環境で試してください。

### TCP の輻輳制御アルゴリズムを BBR に指定
BBR2（Bottleneck Bandwidth and Round-trip propagation time v2）は、Google が開発した 次世代 TCP 輻輳制御アルゴリズム で、従来の CUBIC や NewReno とは異なるアプローチを取っています。


+ 設定する
``` Powershell:powershell
netsh int tcp set supplemental Template=Internet CongestionProvider=bbr2
netsh int tcp set supplemental Template=Datacenter CongestionProvider=bbr2
netsh int tcp set supplemental Template=Compat CongestionProvider=bbr2
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=bbr2
netsh int tcp set supplemental Template=InternetCustom CongestionProvider=bbr2
```

+ 戻すとき
``` Powershell:powershell
netsh int tcp set supplemental Template=Internet CongestionProvider=cubic
netsh int tcp set supplemental Template=Datacenter CongestionProvider=cubic
netsh int tcp set supplemental Template=Compat CongestionProvider=newreno
netsh int tcp set supplemental Template=DatacenterCustom CongestionProvider=cubic
netsh int tcp set supplemental Template=InternetCustom CongestionProvider=cubic
```
+ 現在の設定を確認

```Powershell:powershell
netsh int tcp show global
netsh int tcp show supplemental
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2982508/1aa1b0a8-f43a-48c8-bc7e-2d48df865d1f.png)


+ 参考：Windows11の通信速度を１クリックで向上させてみる（TCP BBR）

https://zenn.dev/hamsters/articles/f698069509ff5a

---

## その他のパフォーマンス向上のための追加コマンド

### DNSキャッシュのクリア
ネットワークの応答が遅い場合、DNSキャッシュをクリアすることで改善される場合があります。
```PowerShell
ipconfig /flushdns
```

### ディスクの最適化とデフラグ
HDD の断片化が原因で動作が遅くなる場合、以下のコマンドでディスクのデフラグと最適化を行います。
あんまりいまHDD使ってる方いないと思いますが。
```PowerShell
defrag C: /O
```

### 不要なハイバネーションの無効化
ハイバネーション機能を使用していない場合、無効化することでシステムリソースを節約できます。
```PowerShell
powercfg /h off
```

### Winsockのリセット
ネットワーク周りの問題が疑われる場合、Winsock の設定をリセットすることで改善されることがあります。
```PowerShell
netsh winsock reset
```