このページの本文へ

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
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
【Amazon.co.jp限定】HP ノートパソコン 15-fd 15.6インチ インテル Core 5 120U メモリ16GB SSD512GB Windows 11 Microsoft Office 2024搭載 WPS Office搭載 カメラシャッター 指紋認証 薄型 Copilotキー搭載 ナチュラルシルバー (BJ0M5PA-AAAI)
¥181,469
2
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
Apple 2026 MacBook Neo A18 Proチップ搭載13インチノートブック:AIとApple Intelligenceのために設計、Liquid Retinaディスプレイ、8GBユニファイドメモリ、256GB SSDストレージ、1080p FaceTime HDカメラ - シトラス
¥95,768
3
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
4
【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 パソコン
¥69,300
5
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 5 7535HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HBJP ノートPC
¥153,780

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
¥2,386
2
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
3
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,980
4
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
5
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,047
6
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
7
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,080
8
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,599
9
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, ブラック)
¥1,299
10
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
KIOXIA(キオクシア)【日本製】SDカード 32GB SDHC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA032G
¥1,381

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

デジタル用語辞典

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