Node.js MSI install fails on Windows 11 due to Smart App Control blocking custom action DLL (Error 1723)
Personne n'a encore pris cette issue.
- Langage dominant
- JavaScript
- Étoiles
- 122k
- Forks
- 37.3k
- Merge moyen
- 4 j 2 h
- PR mergées (30 j)
- 283
Description
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).
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par reproduire l’installation de Windows 11 avec Smart App Control activé et suivez l’action personnalisée MSI nommée SetInstallScope. Examinez comment le MSI de Node.js empaquette et charge sa DLL d’action personnalisée, puis vérifiez que l’installation se termine sans Error 1723 ou produise un diagnostic plus clair pour le composant bloqué.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- javascript, nodejs
- Domaine
- operating-systems, release
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100