Windows 10で自動でスリープ状態にならないときは、SMB1.0を無効にしてみる

Windows 10(バージョン1511)もWindows 7と同様に、一定時間無操作で自動でPCをスリープに入れることができます。しかし以前書いた、Windows 7で自動でスリープ状態にならない問題を解決と同様の状態で、指定した無操作時間後にスリープに入らない場合があります。

管理者権限でコマンドプロンプトを起動し、powercfg -requestsで調べたところ、Windows 7の時と同様に以下が表示されます。

C:\Windows\system32>powercfg -requests

[DRIVER] \FileSystem\srvnet アクティブなリモート クライアントが、このコンピューターに最近要求を送信しました。

Windows 10の場合、”SMB 1.0/CIFS ファイル共有のサポート”を無効にすることで、問題が解決することがありました。

設定の場所はスタートメニューを右クリック→プログラムと機能→Windows の機能の有効化または無効化→SMB 1.0/CIFS ファイル共有のサポートです。チェックを外します。

Windows 10で確認しましたが、この設定はWindows 8.1以降に存在するようです。

"プログラムと機能"にある"Windowsの機能"から無効化する

“プログラムと機能”にある”Windowsの機能”から無効化する

SMBはWindowsのファイル共有などで使われるプロトコルで、srvnetは共有時に使われるサービスのようです。本来は、ファイル共有などにアクセスがある場合に、PCをスリープにさせないようにするために働いているようです。

なお、この設定は無効にすると、古いNASやWindows XPに接続できなくなるようです。2016年現在、つながらなくなる例は少なくなっていると思いますが、このような環境をお持ちの方は注意が必要です。

Windows 10ミニTips (47) Windows 10で古いNASにアクセスできない症状の処方箋 | マイナビニュース
Windows 10に移行すると、一部の古いNAS(Network Attached Storage)へアクセスできないケースが散見する。これはNASのOSがLinuxなどを使用し、ファイル共有プロトコルであるSMB(Server Message Block)の古いバージョンを使用しているからだ。

Stop using SMB1 | Server Storage at Microsoft (英)

「SMB1は使わないこと」書かれたMicrosoftのBlog

Windows 7で自動でスリープ状態にならない問題を解決(電子証明書の期限切れ、オーディオデバイス)

Windows 7は一定時間無操作で、自動的にコンピュータをスリープ状態にすることが出来ます。

管理者権限でコマンドプロンプトを起動し、powercfg -requestsで調べてみたところ、以下の2点が問題であると判明しました。

  1. 電子証明書の期限が切れていた
  2. オーディオデバイスの「このデバイスを聴く」を有効にしていた

C:\Windows\system32>powercfg -requests

DISPLAY:
なし。

SYSTEM:
[DRIVER] E-MU E-DSP Audio Processor (WDM) (PCI\VEN_1102&DEV_0004&SUBSYS_40021102
&REV_03\5&2c895c0f&0&0800E0)
現在 1 つのオーディオ ストリームが使用中です。
[DRIVER] Realtek High Definition Audio (HDAUDIO\FUNC_01&VEN_10EC&DEV_0892&SUBSYS
_8086201B&REV_1003\4&287ef1f4&0&0001)
現在 1 つのオーディオ ストリームが使用中です。
[DRIVER] \FileSystem\srvnet アクティブなリモート クライアントが、このコンピューターに最近要求を送信しました。

AWAYMODE:
なし。

電子証明書の期限切れ

イベントビューワーに残っているイベントログは以下の通りです。

ログの名前: Application
ソース: Microsoft-Windows-CertificateServicesClient-AutoEnrollment
イベント ID: 64
レベル: 警告
説明:
拇印 (2c b2 03 e0 dc 0b fb 以下同様の数字) の ローカル システム の証明書の有効期限がまもなく切れるか、既に切れています。

期限の切れた証明書を探しに行っている?のが原因のようなので、同じ拇印の証明書を探して削除します。

  1. ファイル名を指定して実行→MMCと入力→Enter
  2. ファイル→スナップインの追加と削除
  3. 利用できるスナップイン下方証明書を選択→追加
  4. このスナップインで管理する証明書→コンピュータアカウント→次へ
  5. ローカルコンピュータ→完了
  6. 選択されたスナップインに「証明書 (ローカルコンピューター)が追加されたことを確認→OK

今回は、コンソールルート→証明書 (ローカルコンピューター)→個人→証明書と展開すると、問題の証明書が見つかりました。プロパティを見ると、microsoftのWebサービスであるLive.jpの証明書のようです。

新しい証明書の要求等も出来なかったので、削除します。今の所特に問題は起こっていません。

正確なスクリーンショットを撮る前に証明書を削除してしまったため、整合性が取れていませんが参考にどうぞ。

オーディオデバイスの「このデバイスを聴く」を有効にしていた

無効にすればその時点で解決なのですが、今回はこの機能を使ったままでスリープに移行させる方法をとってます。

管理者権限でコマンドプロンプトを開き「powercfg -requestsoverride 種類 デバイス名 要求」とコマンドを入力します。

入力後、powercfg -requestsoverrideで入力したコマンドが追加されているか確認します。
powercfg -requestsを入力すると、問題のあった時と表示が変わらないので問題が解決されていないように見えますが、意図通りスリープに移行することを確認しました。

powercfg -requestsoverride DRIVER "E-MU E-DSP Audio Processor (WDM)" SYSTEM
powercfg -requestsoverride DRIVER "Realtek High Definition Audio" SYSTEM
powercfg -requestsoverride DRIVER srvnet SYSTEM

C:\Windows\system32>powercfg -requestsoverride
[SERVICE]
[PROCESS]
[DRIVER]
E-MU E-DSP Audio Processor (WDM) SYSTEM
Realtek High Definition Audio SYSTEM
srvnet SYSTEM

参考サイト

調べていると、実際には今回書いた2点だけが原因ではなく、デバイスドライバの仕様、アプリケーションの設定など、多種多様な要因があるようです。

今回の「デバイスを聴く」の件のように、解決しない場合は、powercfg -requests の結果から地道に調べていくか、-requestsoverrideで強制的に無効にするしかないようです。それでも解決しないようならお手上げ、となるようです…。