LSAISO プロセスの CPU 使用率が高Windows

この記事では、LSAISO プロセスで実行中のコンピューターで CPU 使用率が高いという問題の解決策をWindows。

適用対象:  Windows 10 - すべてのエディション、Windows Server 2016、Windows Server 2019
元の KB 番号:   4032786

現象

LSAISO (LSA Isolated) プロセスでは、Windows 10、Windows Server 2016、または以降のバージョンを実行しているコンピューターで CPU 使用率が高い。

原因

このWindows LSAISO プロセスは、仮想セキュア モード (VSM) と呼ばれる新しいセキュリティ環境で分離ユーザー モード (IUM) プロセスとして実行されます。

IUM プロセスへの DLL の読み込み、スレッドの挿入、またはユーザー モード APC の配信を試みるアプリケーションとドライバーは、システム全体を不安定化する可能性があります。 この不安定化には、「現象」に記載されている LSAISO CPU の高いシナリオが含まれます。

解決策 1: 削除のプロセスを使用する

一部のアプリケーション (ウイルス対策プログラムなど) では、LSAISO プロセスに DLL またはキュー APC を挿入する場合が一般的です。 これにより、LSAISO プロセスに高い CPU 使用率が発生します。

トラブルシューティングのために、ツールを IUM プロセスに接続できない。 これにより、LSAISO CPU スパイク中Windowsデバッグ ツールまたは WPA\XPERF を使用してスタック トレースをキャプチャできます。 したがって、このシナリオで最善のトラブルシューティング方法は、"削除のプロセス" 方法を使用する方法です。 これを行うには、CPU スパイクが軽減されるまでアプリケーションとドライバーを無効にします。 問題の原因となっているソフトウェアを特定した後、ソフトウェア更新プログラムをベンダーに問い合わせください。 次の MSDN トピックに記載されている ISV 推奨事項を参照できます。

分離ユーザー モード (IUM) プロセス

注意

この方法では、CPU スパイクのテスト中に疑わしいソフトウェアとドライバーを無効にした後、再起動が必要な場合があります。

解決策 2: キューに入った APC を確認する

WinDbg、KD、CDB、NTSD Windowsデバッグ ツールを無料でダウンロードします。 これらのツールは、Windows ドライバー キット (WDK) と Windows ドライバー キット (WDK) の両方に含まれています。 次に、次の手順に従って、APC から LSAISO にキューに入るドライバーを特定します。

  1. CPU スパイクを再現する場合は、次の Sysinternals web サイトから、NotMyFault.exeなどのツールを使用してカーネル メモリ ダンプを生成します。

    Sysinternals スイート

    注意

    システムで VSM が有効になっている場合は復号化が必要なので、完全なメモリ ダンプは推奨されません。 カーネル ダンプを有効にするには、次の手順を実行します。

    1. [コントロール パネル ] で [ システム] 項目を開き、[システムの詳細設定] を選択します
    2. [システムの プロパティ] ダイアログ ボックスの [詳細設定] タブで 、[設定 と回復]領域の [プロパティ] を選択 します。
    3. [スタートアップと 回復] ダイアログ ボックスで、[デバッグ情報の書き込み] ボックス の一 覧で [ カーネル メモリ ダンプ] を選択 します。
    4. 手順 5 で使用するダンプ ファイルの場所に注意し 、[OK] を選択します
  2. [デバッグ WinDbg.exeツール] から [デバッグ ツール] ツールを開Windows。

  3. [ファイル]メニューの[シンボル ファイル パス] をクリックし、Microsoftシンボル サーバーの次のパスを [シンボル パス] ボックスに追加し 、[OK] を選択します
    https://msdl.microsoft.com/download/symbols

  4. [ファイル] メニューの [ クラッシュ ダンプ を開く] をクリックします

  5. 手順 1d で確認したカーネル ダンプ ファイルの場所を参照し、[開く] を選択 します。 .dmp ファイルの日付を確認して、このトラブルシューティング セッション中に新しく作成された日付を確認します。

  6. [コマンド]ウィンドウで**、「!apc」と入力し**、Enter キーを押します。

    !apc を示すカーネル ダンプ ファイルのコマンド ボックスのスクリーンショット。

    出力は次のスクリーンショットのようになります。

    !apc コマンドの出力のスクリーンショット。この例では、ドライバーの名前が [ProblemDriver.sys] の下にLsaIso.exe。

  7. 検索結果を 検索LsaIso.exe。 .sys という名前のドライバーがLsaIso.exeの下に表示されている場合 (手順 6 の出力の例に示すように)、ベンダーに問い合わせ、分離ユーザー モード <ProblemDriver> (IUM) プロセスのトピックに記載されている推奨される軽減策を参照してください。

    注意

    一覧にドライバーが表示Lsaiso.exe、LSAISO プロセスにキューに入っている APC が含まれるという意味です。 ****

詳細情報

VSM は、仮想信頼レベル (VTL) と呼ばれる分離モードを使用して、IUM プロセス (トラストレットとも呼ばれる) を保護します。 LSAISO などの IUM プロセスは VTL1 で実行し、他のプロセスは VTL0 で実行されます。 VTL1 で実行されるプロセスのメモリ ページは、VTL0 で実行されている悪意のあるコードから保護されます。

Windows 10 および Windows Server 2016 より前は、ローカル セキュリティ機関サブシステム サービス (LSASS) プロセスは、ローカル システム ポリシー、ユーザー認証、監査の管理を担当し、パスワード ハッシュや Kerberos キーなどの機密セキュリティ データも処理しました。

VSM のセキュリティ上の利点を使用するために、VTL1 で実行される LSAISO トラストレットは、VTL0 で実行されている LSAISO プロセスと RPC チャネルを介して通信します。 LSAISO シークレットは LSASS に送信される前に暗号化され、LSAISO のページは VTL0 で実行されている悪意のあるコードから保護されます。