Node.js MSI install fails on Windows 11 due to Smart App Control blocking custom action DLL (Error 1723)
まだ誰も着手していません。
- 主要言語
- JavaScript
- スター
- 122k
- フォーク
- 37.3k
- 平均マージ
- 4日 2時間
- マージ済み PR(30日)
- 283
説明
Version
24.15.0
Platform
Microsoft Windows NT 10.0.26200.0 x64
Subsystem
No response
What steps will reproduce the bug?
- Open an elevated PowerShell session.
- Run:
Start-Process winget.exe -ArgumentList 'install --id OpenJS.NodeJS.LTS -e --accept-package-agreements --accept-source-agreements' -Verb RunAs -Wait - Wait for the installer to start.
- Observe Windows Security notification:
- "This app has been blocked partly"
- "Windows Installer may not work correctly because it could not verify what MSI2C91.tmp was trying to load"
- Installation fails.
How often does it reproduce? Is there a required condition?
Always, with Smart App Control (SAC) enabled on Windows 11.
What is the expected behavior? Why is that the expected behavior?
winget install --id OpenJS.NodeJS.LTS should complete successfully on Windows 11 with SAC enabled.
What do you see instead?
Installation fails. Windows Security / SAC blocks a temporary DLL loaded by Windows Installer during a custom action. The main MSI package is signed, but installation fails with Error 1723.
Additional information
Application log / MsiInstaller:
Product: Node.js -- Error 1723. There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run.
Action SetInstallScope, entry: SetInstallScope, library: C:\Windows\Installer\MSI2C91.tmp
CodeIntegrity / Operational:
Code Integrity determined that a process (msiexec.exe) attempted to load C:\Windows\Installer\MSI2C91.tmp that did not meet the Enterprise signing level requirements or violated code integrity policy
Smart App Control Block Details
- MSI payload downloaded by winget is signed and valid (
Get-AuthenticodeSignaturereportsStatus : Valid). - Not caused by winget arguments, GPO, MDM, or domain-join policy.
- Blocked file:
C:\Windows\Installer\MSI2C91.tmploaded bymsiexec.exe. - SmartAppControlState: On
- CI\Policy: VerifiedAndReputablePolicyState = 1
- Block occurs when
msiexec.exeloads the temporary DLL for custom actionSetInstallScope.
[!NOTE]
The Node.js MSI contains a custom action namedSetInstallScope. SAC appears to block the temporary custom-action DLL generated during installation, not the signed MSI package itself. If this is expected, a clearer error message identifying the blocked install step and affected component would help troubleshooting.
[!TIP]
Turn SAC off to work around.
You can turn it on later manually without a clean installation (the former documentation is obsolete if you have gotten recent Windows updates).
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、Smart App Control を有効にした Windows 11 のインストールを再現し、SetInstallScope という名前の MSI カスタムアクションを追跡します。Node.js MSI がカスタムアクション DLL をどのようにパッケージ化して読み込むかを確認し、その後、インストールが Error 1723 なしで完了するか、ブロックされたコンポーネントについてより明確な診断を出力することを検証します。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- javascript, nodejs
- 領域
- operating-systems, release
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 活発
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100