Lenovo ideapad MIX 700 の Windows 10でCPU 100% (Windows ホストプロセス Rundll32.exe) の解決方法

最近、Lenovo ideapad MIIX 700 80QL006FJP [シャンパンゴールド] というパソコンを買いました。

レノボを安く買えるクーポンはコチラ↓

OS は、Windows 10 Homeです。

このパソコン、最初、ひとつのアカウントで使っているときは快調でした。

しかし、以下の方法を使って、複数アカウントで同時ログインするようにしました。

Windows 10で、1台のパソコンで複数ユーザー作って、ログオン時にユーザーを選択出来るようにする
Windows 10で、複数のローカルユーザーをパスワードなしで作ったとします。 再起動してみると、最後のユー...

複数アカウントで使い始めると、そのうち、Rundll32.exe というプロセスが4個作られて、それぞれのプロセスが、CPU25%ずつ使い、結果としてシステムのCPU負荷が100%になってしまい、動作がもっさりとしてしまいます。

これは何故なんでしょうか?

解決方法を調べてみました。

スポンサーリンク
スポンサーリンク

Windows ホストプロセス Rundll32.exe って何?

Windows画面の右下の時計辺りで右クリックを押して、コンテキストメニューからWindowsのタスクマネージャーを開きます。

このCPU 負荷を圧迫している Rundll32.exeって何なんでしょうか?

調べてみました。

「rundll32.exe」というのは、Windowsが提供している実行ファイルで、DLLの中にある関数を呼び出すことが出来ます。

使い方としては、

の書式で指定することでDLL内の関数を呼び出すことが出来ます。

例えば、コマンドプロンプト上で

と実行すると画面がロックされます。

これは「user32.dll」の中の関数「LockWorkStation」が実行された結果です。

Windowsのタスクマネージャーで、rundll32.exe が見つかった場合、今、動いているプログラムの中のどれかが「rundll32.exe」経由のDLL呼び出しを行っていて、それが原因で「rundll32.exe」のプロセスが出来てるってことになります。

正規の「rundll32.exe」は

にあります。

ちなみに、このファイルを狙ったウィルス、マルウェアはよくあるようです。

Windowsホストプロセス(Rundll32)は
Windowsカスタマーエクスペリエンス向上プログラム が原因?

いろいろと調べてみると、Windowsホストプロセス Rundll32.exe のCPU負荷の原因は、「Windowsカスタマーエクスペリエンス向上プログラム」だと書いてあるサイトもありましたが。

「Windowsカスタマーエクスペリエンス向上プログラム」を無効にする方法は次の通りです。

1. タスクスケジューラーを起動します。

タスクスケジューラーは
「Windows キー」+「R」で表示される
“ファイル名を指定して実行” に
「taskschd.msc」と入力すれば実行できます。

2. Customer Experience Improvement Program

「タスクスケジューラー」
→「タスクスケジューラライブラリ」
→「Microsoft」
→「Windows」
→「Customer Experience Improvement Program」

とたどりタスクを表示させます。

3. 表示されたタスクをすべて無効にします。

Consolidator
KernelCeipTask
UsbCeip

ただ、私の場合、この方法では、CPU負荷100%の問題は解決しませんでした。

Windowsホストプロセス (Rundll32) を使っているプログラムを特定する

Windows ホストプロセス (Rundll32) を使っているプロセスを特定します。

これには、マイクロソフトが提供している Process Explorer v16.21 を使います。

https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

から、zip形式のプロセスエクスプローラーをダウンロードして展開します。

Process Explorerは、インストールする必要がありません。ダウンロードしたzipファイルを展開して、64bitの場合、x64のプログラムを実行するだけでOKです。

rundll32.exeの近くにマウスカーソルを近づけると、コマンドラインが、以下のように表示されました。

C:\Windows\system32\rundll32.exe C:\ProgramData\LenovoTransition\Server\x64\EnableAutoRotation.dll,RunCustomMonitor

どうやら、Lenovo が提供している EnableAutoRotation.dll の RunCustomMonitor が実行されているので、これが原因のようです。

確かに、

C:\ProgramData\LenovoTransition\Server\x64\EnableAutoRotation.dll

というファイルが存在しますね。

ネットを探すと同じ現象を見つけました。

I have an issue with my YOGA 700 laptop when logged in multiple accounts simultaneously. Whenever an account is left logged on and the user is switched as opposed to logging off, the cpu usage ramps up very high with several RUNDLL32 processes being the culprit. I have checked the RUNDLL32 processes with Process Explorer and the command line are as follows:
C:\Windows\system32\rundll32.exe C:\ProgramData\LenovoTransition\Server\x64\EnableAutoRotation.dll,RunCustomMonitor

The directory is as follows:
C:\ProgramData\LenovoTransition\Server\x64\

https://forums.lenovo.com/t5/Lenovo-Yoga-Series-Notebooks/YOGA-700-Yoga-Mode-Control-high-CPU-usage-in-Rundll32/td-p/3434126

たぶん、これも同じ問題か。

Hey, i have the issue also on my yoga 900.

There are 4x child rundll32 processes created from ymc.exe (Yoga Mode Control) which goes crazy when two or more users logged in.

Every proccess uses 25% which results in 100% cpu load!

解決策:Lenovo Yogaモードコントロール、 ymc.exe (Yoga Mode Control) を新しくする?

解決策の一つとして、ymc.exeの自動起動そのものを止めてしまうというのがありますね。

ymc.exeの自動起動を止めるには、「システム構成」を起動します。

「Windows キー」+「R」で表示される
“ファイル名を指定して実行” に
「msconfig」と入力すれば、「システム構成」が起動します。

「サービス」を見てみると「ymc」にチェックが入っていて自動起動するのが分かります。

このチェックを外すと自動起動しなくなります。

ただ、一方、このサービスを止めてよいのかどうか悩みました。

他を調べてみると、Lenovo Yogaモードコントロール、 ymc.exe (Yoga Mode Control) を最新にすると、この rundll32.exeのCPU 100%現象が改善するようなことも分かりました。

以下のファイルをダウンロードしてインストールします。

Lenovo Yoga モード コントロール Windows 10 64bit用 EXE 3.78 MB
Windows 10 (64ビット)
2.0.0.9
2016/12/30

https://support.lenovo.com/jp/ja/downloads/ds104485

ここから、ymc2.0.0.9.exe をダウンロードしてインストールして、パソコンを再起動してみました。

すると、なんと、以下のフォルダが綺麗に消えていました。

C:\ProgramData\LenovoTransition

多分、これで問題が解決したのでしょう。