Windows 10/11およびWindows ServerでSMB 1.0を有効または無効にする方法

Windows 10 および 11 で SMB 1.0 を有効または無効にする方法

最近のWindowsバージョンでSMB 1.0を使うのは、少々面倒な場合があります。Windows 10 1709以降、MicrosoftはSMBv1をデフォルトで無効化しました。これは、SMBv1が極めて時代遅れでセキュリティホールだらけだからです。しかし、古いNASデバイス、時代遅れのプリンター、Windows XP/2003マシンなど、レガシー機器をお使いの場合は、この古いプロトコルがまだ必要になるかもしれません。問題は、特にセキュリティ警告が多数表示される場合は、スイッチを切り替えるほど簡単ではないことです。しかし、どこを確認すればいいのかわかっていれば、SMBv1を有効にできます。

一部の環境では、SMBv1 は初期状態で無効になっていますが、レガシーデバイスや共有に接続しようとすると、Windows が「0x80070035安全でないプロトコルです」といったエラーや警告を表示します。Windows は SMBv1 アクセスをブロックしますが、他のマシンでは数回のクリックやコマンドで有効化できるため、少し奇妙です。ただし、SMBv1 は脆弱であるため、有効化は最終手段かつ一時的なものにとどめてください。

DISMを使用してSMBv1が有効になっているかどうかを確認する

  • コマンドプロンプトを管理者として開きます(右クリックして管理者として実行)
  • 入力してください:Dism /online /Get-Features /format:table | find "SMB1Protocol"

通常、「すべての機能が無効」のようなメッセージが表示されますが、これは最近のWindowsではよくあることです。表示される内容は以下のようになります。

SMB1Protocol | Disabled SMB1Protocol-Client | Disabled SMB1Protocol-Server | Disabled SMB1Protocol-Deprecation | Disabled

Windowsの機能からSMB 1.0を有効にする

最も簡単な方法の一つは、コントロールパネル(optionalfeatures.exe)から設定することです。Windowsは当然ながら設定を複雑にするためです。「Windowsの機能」を検索し、ユーティリティを起動して、SMB 1.0 /CIFSファイル共有サポートまでスクロールダウンします。展開すると、3つのオプションが表示されます。

  • SMB 1.0/CIFS 自動削除(主にクリーンアップ設定)
  • SMB 1.0/CIFSクライアント – PCが古い共有にアクセスする必要がある場合に必要
  • SMB 1.0/CIFS サーバー – PC がレガシーデバイスのファイルサーバーとして機能する場合に必要

必要なものを選択し、「OK」をクリックしてください。Windows Update の期間が短くなる場合があります。SMB クライアントは、15 日間操作がないと自動的に削除されることがあります。有効にしている場合は、定期的に確認し、消えた場合は再度有効にしてください。SMBv1 が不可欠なマシン(一部の古いネットワークプリンターなど)では、サーバー部分を有効にする必要があります。

コマンドと PowerShell を使用して SMBv1 を有効にする

GUIでうまくいかない場合、またはスクリプトを使いたい場合は、以下のコマンドをご利用ください。コマンドプロンプトまたはPowerShellを管理者として開きます。

  • SMB1 クライアントとサーバーを有効にするには:
DISM /online /Enable-Feature /FeatureName:"SMB1Protocol" DISM /online /Enable-Feature /FeatureName:"SMB1Protocol-Client" DISM /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"

または、PowerShell の場合:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

一部のコンピューターでは再起動を求められる場合がありますので、その点にご注意ください。SMBv1を有効にするとセキュリティ警告が表示され、適切に管理されていない場合は危険にさらされる可能性がありますので、ご注意ください。

完了したらSMB 1.0を再度無効にする

これをオフにするには (問題が解決されたり、レガシー サポートが不要になったりしたら、これを強くお勧めします)、次のコマンドを実行します。

Dism /online /Disable-Feature /FeatureName:"SMB1Protocol" Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client" Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"

PowerShell の場合:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

これらのコマンドを実行すると、Windowsが再起動を要求する場合があります。SMBv1が無効になっている場合、SMBv1を使用している古い共有にアクセスしようとするとエラーが発生し、イベントビューアーに警告が表示されます。そのため、これらのレガシーデバイスがまだ使用されている場合は、トラブルシューティングの準備が必要です。

経験に基づくその他のメモ

一部の設定では、SMBv1を有効にするとネットワーク検出に問題が発生したり、 Computer Browserサービスが機能しなくなったりすることがあります。これは、SMBv1が古く、より新しく優れたプロトコルに取って代わられているためです。そのため、問題が発生した場合は、再度無効にすることを検討してください。また、一部の特殊なネットワークデバイスはSMBv1のみと通信するため、SMBv1を有効にすることは諸刃の剣です。

Windows Server 2019/2022 で SMB 1.0 プロトコルを有効または無効にする

Windowsサーバーをご利用ですか?SMBv1はWindowsサーバーでもデフォルトで無効になっていますが、古いクライアントやデバイスをサポートする必要がある場合は、手動で有効にする必要があります。PowerShellまたはサーバーマネージャーを使用するだけで、基本的には同じ手順です。

PowerShell で、次のコマンドを使用して SMBv1 がインストールされているかどうかを確認します。

Get-WindowsFeature | Where-Object {$_.name -like "*SMB1*"} | ft Name, InstallState

SMBv1 クライアントをインストールするには:

Install-WindowsFeature FS-SMB1-CLIENT

SMBv1 サーバーを有効にするには:

Install-WindowsFeature FS-SMB1-SERVER

有効になっていることを確認することを忘れないでください:

Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force

SMBv1 サーバーを無効にする場合は、次のコマンドを実行します。

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force再起動します。

Windows ファイルサーバー上の SMB 1.0 アクセスを監査する

SMBv1を完全に無効にする前に、古いクライアントがまだSMBv1を使用しようとしているかどうかを確認することをお勧めします。次のコマンドでSMB1アクセスの監査を有効にします。

Set-SmbServerConfiguration -AuditSmb1Access $true

その後、数日待ってから、イベントビューアー「アプリケーションとサービス」→「Microsoft」→「Windows」→「SMBServer」→「Audit」のログを確認します。Get -WinEvent コマンドを使用すると、ログを簡単に確認できます。

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

特定のデバイスから継続的に試行が行われていることが確認された場合は、アップグレードまたは交換をご検討ください。そうでない場合は、確信が持てるようになったら監査を無効にしてください。

グループポリシーでSMB 1.0を無効にする

多数のマシンを管理していて、SMBv1 をすべての場所で確実にロックダウンしたい場合は、グループポリシーを設定するのが最適です。グループポリシー管理コンソール ( gpmc.msc) で新しい GPO(「SMBv1 を無効にする」など)を作成し、適切な OU にリンクしてから、レジストリ設定で SMBv1 を無効にするように編集します。

「コンピューターの構成」→「基本設定」→「Windowsの設定」→「レジストリ」に移動します。以下の詳細を含む新しいレジストリ項目を作成します。

  • アクション:Update
  • ハイブ:HKEY_LOCAL_MACHINE
  • キーパス:SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • 値の名前:SMB1
  • 値の型:REG_DWORD
  • 値データ:0

これにより、これらのマシン上のSMBサーバーコンポーネントが実質的に無効化されます。SMBクライアントを完全に無効にするには、同様の手順を実行します。推奨されるレジストリ調整は以下のとおりです。

  • SMB クライアント ドライバーを無効にするには、[開始]4を[in]に設定します。HKLM\SYSTEM\CurrentControlSet\Services\mrxsmb10
  • ではHKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation、、、などの安全な依存関係のみを含めるようにDependOnServiceを設定します。BowserMRxSmb20NSI

最後に、グループポリシーの更新(gpupdate /force)を強制実行し、再起動します。これで、すべてのコンピューターからSMBv1が削除されるはずです。ただし、SMBv1を無効にすると、一部の古い機能が動作しなくなる可能性があるため、大規模導入する前に十分に確認してください。

まとめ

結局のところ、最新システムでSMBv1を使うのは一種のギャンブルです。SMBv1は存在し、機能しますが、同時に危険でもあります。古い機器でどうしても必要な場合は、一時的に有効にして、ネットワークを監視し、古い機器のアップグレードまたは交換計画を立ててください。完了したら、SMBv1を再び無効にするか、グループポリシーまたはファイアウォールルールでSMBv1の露出を制限することをお勧めします。

まとめ

  • DISM または PowerShell を使用して SMBv1 のステータスを確認します。
  • Windows の機能、コマンド、または GPO を使用して有効または無効にします。
  • SMBv1 アクセスを監査して、まだ潜んでいるレガシー デバイスを見つけます。
  • SMBv1 の必要性を再考してください。セキュリティは利便性よりも重要です。

これが役に立つことを祈る