このページの本文へ

Windows Info 第328回

Windows 10/11で可能だが、デフォルトでオフになっているSMB圧縮の効果を試す

2022年05月22日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows 10/11ではSMBによるネットワークファイル共有で転送時の圧縮(SMB圧縮転送)に対応している。これはネットワークでの転送時にファイルを圧縮し、転送に要する時間を短縮させるものだ。ただし、圧縮が有効でないファイルも存在すること、圧縮・伸張をCPUで実行していることから転送中のCPU負荷に多少の影響が出る。

 しかし、圧縮がある程度有効なファイルなら、理屈的には時間を短縮することが可能だ。また、xcopyやrobocopyなどのコマンドもSMB圧縮転送に対応しており、ファイルサーバー側がSMB圧縮を有効にしていればオプションでSMB圧縮転送を利用できる。

Windows 11ではSMB圧縮が有効になっている。簡単なテストだが、圧縮が有効なファイルに対しては、多少の効果はあるようだ

Windows 10 Ver.1903で搭載されていた機能だが
デフォルトではオフに

 SMB圧縮転送機能は、2019年5月リリースのWindows 10 Ver.1903(19H1、Windows 10 May 2019 Update)で、SMB v3の機能として搭載されたが、同年11月セキュリティ問題が告知され、無効化が推奨された。詳細な理由はわからないが、少なくとも「CVE-2020-0796」というセキュリティ問題では、当面の対策としてレジストリによるSMB圧縮転送の無効化が推奨されているため、SMB圧縮に何らかの関係がある問題だと思われる。

●CVE-2020-0796 Microsoft - Windows SMBv3 Client/Server Remote Code Execution Vulnerability
 https://msrc.microsoft.com/update-guide/en-US/vulnerability/CVE-2020-0796

 その後、2020年3月のKB4551762では、SMB v3のセキュリティ更新プログラムが提供されている。ただし、現在のWindows 10/11では、サーバー側、クライアント側ともにSMB転送圧縮が無効になった状態である。

そもそもSMB転送圧縮とは

 SMB転送圧縮とは、SMBによるネットワークファイル共有で、ファイルを転送するときに圧縮してデータ量を削減する。そのためには、サーバー側、クライアント側両方がSMB圧縮転送が実装されて、許可されている必要がある。

 サーバー側は現状、Windows 11のみの対応だが、クライアント側のSMB圧縮転送機能はWindows 10でも動作する。実際には、それぞれいろいろと条件があるのだが、基本的にサーバー側はWindows 11(もしくはWindows Server 2022)、クライアント側はWindows 10/11の組み合わせでSMB転送が利用可能だ。

 圧縮には、MicrosoftのXPRESSと呼ばれるアルゴリズムが使われるが、LZ77(Lempel-Ziv)やLZ77にハフマン符号を組み合わせたもの(LZ77+Huffman)、NTFSのファイル圧縮(LZNT1)などがあり、データに合わせて自動的に切り替えて利用するようだ。

 LZ77は、データ中の繰り返しを見つけて圧縮するアルゴリズムであるため、基本的には繰り返しの多いデータほど圧縮率が高くなる。具体的には、ファイルの中身がほとんどゼロであるようなファイルは圧縮率が高く、中身がほとんど乱数(あるいはそれに近いもの)である場合にはほぼ圧縮できない。

サーバー側でSMB圧縮転送を有効化する

 Windows 11なら、PowerShellのSet-SmbShareコマンドを使うことで、SMB圧縮転送を有効化できる。現状、GUIから設定することはできないようだ。具体的には、

Set-SmbShare -Name 〈共有名〉 -CompressData $true

とする。共有名は、Get-SmbShareコマンドで一覧を得ることができる。また、SMB圧縮転送の設定状態は、

Get-SmbShare -Name 〈共有名〉 | select CompressData

で調べることができる。

PowerShellのSet-SMBShareコマンドを使うことで、共有名ごとにSMB圧縮の有効、無効を設定できる。その状態は、Get-SMBShareコマンドで確認可能だ

 どの場合でも、CompressDataがTrueになっていれば、その共有名へのアクセス時にクライアント側がSMB圧縮転送を有効にしていれば、圧縮転送となる。

クライアント側でSMB圧縮転送を有効化する

 クライアント側でSMB圧縮転送を有効化するには、レジストリ設定を行うか、xcopyやrobocopyで「/COMPRESS」オプションを使う。

 レジストリ設定をすることで、常にSMB圧縮が有効になるが、サーバー側と違い、共有先によって切り替えることはできない。もっとも、接続時のネゴシェーションでSMB圧縮転送を使うかどうかが決まり、サーバー側で共有名ごとに有効/無効を切り替えることができるため、問題が起きることはなさそうだ。

 とはいえ、セキュリティ問題で無効化された機能である。有効にするかどうかは、ご自身のリスクとして判断されたい。何か問題が起きたとしても筆者および編集部では責任を取ることはしない。

 レジストリ設定だが、以下のキーに「EnableCompressedTraffic」というDWORD値を作り、データとして1を書き込む。

キー
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters

 reg.exeコマンドを使うなら、

reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v EnableCompressedTraffic /t REG_DWORD /d 1

とする。これですぐにSMB圧縮転送が有効になる。

 また、SMB圧縮転送を無効化したい場合には、「EnableCompressedTraffic」を削除するか、データとして0を書き込む。

reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v EnableCompressedTraffic

実際にSMB圧縮転送を試してみるも効果は微妙

 サーバー側でSMB圧縮転送を有効にしたまま、クライアント側で有効/無効を切り替え、1GBのファイルを転送してみた。簡易なテストで、結果からいうと微妙なところ。中身がゼロだけのファイルでは、コピーの処理時間に違いが見られたが、乱数ファイル(ほとんど繰り返しがない)では、ほとんど効果がなかった。

 測定は、PowerShellのMeasure-Commandを使い、Copy-Itemコマンドでサーバー側の1GBのファイルをローカルフォルダーにコピーする時間を測定した。ネットワークはギガビットイーサを使っている。サーバー側は、CPUにCeleron J4125、メモリ8GB、クライアント側はCore i5-8250U、メモリは8GBである。

 コピーするファイルは、fsutil.exeコマンドで作成した中身がゼロだけのファイルと、以下のリストで作成した乱数からなるファイル。fsutilで作ったファイルは0だけなので、最も圧縮が有効になる場合と考えられる。

$r=new-object byte[] (1GB);
(new-object System.Random).NextBytes($r);
[System.IO.File]::WriteAllBytes("c:\temp\test-r-1G2", $r)

 多少は、圧縮が効いているみたいなので、GB単位の大きなファイルをLAN内で転送することが多いならSMB圧縮転送を有効にしておく意味はありそうだ。とはいえ、セキュリティ上のリスクを考えると、屋外に持ち出せるラップトップやタブレットクラスのマシンでわざわざ設定するほどでもないという感じである。

カテゴリートップへ

この連載の記事
1
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、Touch ID - シルバー
¥177,333
2
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ 第13世代 インテル® Core™ i5 プロセッサー搭載 13420H メモリ16GB SSD512GB MS Office 2024搭載 Windows11 バッテリー駆動16.9時間 重量1.59kg ルナグレー 83K100G4JP ノートPC
¥107,800
3
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
【Amazon.co.jp限定】Lenovo Chromebook クロームブック Duet 11 10.95インチ MediaTek Kompanio 838 プロセッサー​搭載 メモリ8GB eMMC 128GB 重量1.0kg 83HH000TJP パソコン
¥62,000
4
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
【整備済み品】 富士通 ノートパソコン LIFEBOOK U939 超軽量 薄型 ノートPC ■Win11搭載 / MS Office H&B 2019 / FHD(1920x1080)/第八世代 Core i5-8265U/8GBメモリ/SSD 256GB/Webカメラ内蔵/13.3インチ
¥30,800
5
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥36,970

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥1,880
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
4
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥743
5
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,100
6
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥1,880
7
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ホワイト T-K6A-2630WH
¥1,899
8
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
キヤノン Canon 純正 インクカートリッジ BCI-381(BK/C/M/Y)+380 5色マルチパック BCI-381+380/5MP 長さ:5.3cm 幅:13.9cm 高さ:10.75cm
¥4,918
9
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
エルパ(ELPA) 扉付タップラン 電源タップ 延長コード 125V 3m 3個口 ホワイト WBT-N3030B(W)
¥652
10
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
UGREEN LANケーブル CAT8 1M メッシュLANケーブル カテゴリー8 コネクタ 超光速40Gbps/2000MHz CAT8準拠 イーサネットケーブル 爪折れ防止 シールド モデム ルータ PS3 PS4 Xbox等に対応 1M
¥699

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン