Macros MS Project bloquées après mise à jour : Fix9072568, rollback 2407 et signature

Après une mise à jour de Microsoft Project (canal Current et assimilés, 2406→2409), de nombreuses organisations ont vu leurs macros VBA bloquées — surtout celles chargées depuis l’Enterprise Global de Project Online/Server. Ce guide rassemble les causes, correctifs et méthodes de déploiement éprouvées.

Sommaire

Vue d’ensemble du problème

À l’ouverture de Project et/ou lors de la connexion à un profil Project Online, un avis de sécurité s’affiche : “Microsoft has blocked macros from running because the source of this file is untrusted” (chemin « global »), avec comme seul choix Disable Macros. Les réglages du Centre de gestion de la confidentialité, les Emplacements approuvés ou même les « Trusted Sites » ne suffisent pas. Le phénomène touche en priorité les macros stockées dans le Global d’entreprise (Enterprise Global) de Project Server/Project Online ; selon les éditions/builds, des macros locales (Global.mpt ou .mpp) ont parfois été affectées.

Cause la plus probable

Un durcissement de la vérification en temps réel des macros VBA côté Office s’est montré trop strict pour les macros chargées via l’Enterprise Global (impact observé notamment autour des appels FileOpen/FileOpenEx). Un « feature switch » a été fourni par Microsoft comme contournement dans l’attente d’un correctif : la clé de registre Fix9072568, à placer côté utilisateur dans Project.


Réponse courte

  • Contournement principal (Enterprise Global) : ajouter Fix9072568=1 dans HKCU\Software\Microsoft\Office\16.0\MS Project\Settings puis redémarrer Project.
  • Si la clé ne suffit pas (ou est refusée par la DSI) : revenir temporairement à une build stable (ex. 2407) et geler les mises à jour.
  • Approche robuste sécurité : signature de code des projets VBA et stratégie « Désactiver toutes les macros sauf les macros signées numériquement ».
  • Workarounds ponctuels : ouvrir explicitement un Global.mpt approuvé, renommer le Global local, etc. (à réserver aux cas d’urgence).
  • État des builds : les versions 2408/2409 ont progressivement rétabli l’exécution des macros chez de nombreux clients, avec des résultats variant selon canal/SKU.

Procédure détaillée

Activer le « feature switch » Fix9072568 (recommandé pour Enterprise Global)

Appliquez la clé suivante sous le profil de l’utilisateur affecté, puis redémarrez Microsoft Project :

Windows Registry Editor Version 5.00

\[HKEY\_CURRENT\_USER\Software\Microsoft\Office\16.0\MS Project\Settings]
"Fix9072568"=dword:00000001 

Points d’attention :

  • Chemin : HKCU\Software\Microsoft\Office\16.0\MS Project\Settings
  • Valeur : Fix9072568 (DWORD 32 bits) = 1
  • Des retours initiaux ont mentionné 0x00000101, mais la valeur attendue est 1.
  • Vérifiez dans Fichier > Options > Centre de gestion de la confidentialité > Paramètres des macros que « Désactiver toutes les macros sans notification » n’est pas cochée.
  • Si une GPO bloque déjà les macros (HKCU\Software\Policies\Microsoft\office\16.0\ms project\security), la clé ne suffira pas.

Vérifier rapidement l’application de la clé :

reg query "HKCU\Software\Microsoft\Office\16.0\MS Project\Settings" /v Fix9072568
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\MS Project\Settings" `
  -Name Fix9072568 | Select-Object Fix9072568

Limite connue : ce switch corrige surtout le scénario Enterprise Global. Selon la build/édition, il peut ne pas rétablir les macros locales (Global.mpt /.mpp). Dans ce cas, privilégiez la mise à jour vers une build corrigée, le rollback 2407, et/ou la signature de code.

Revenir temporairement à une build antérieure

Si la clé est refusée par la politique IT ou qu’elle ne suffit pas, revenez à une version stable (ex. 2407). Méthode Click-to-Run :

  1. Fermez toutes les applis Office.
  2. Ouvrez une invite de commandes en administrateur et exécutez :
cd "C:\Program Files\Common Files\Microsoft Shared\ClickToRun"
OfficeC2RClient.exe /update user updatetoversion=16.0.17830.20166
  1. Désactivez les mises à jour automatiques temporairement pour stabiliser l’environnement.
  2. En environnement géré, plusieurs DSI ont basculé sur le canal Semi-Annual pour geler une build connue.

Alternative ODT (Office Deployment Tool) : épinglez la version/canal via un configuration.xml :

<Configuration>
  <Add OfficeClientEdition="64" Channel="SemiAnnualEnterprise" Version="16.0.17830.20166">
    <Product ID="ProjectProRetail">
      <Language ID="fr-fr"/>
    </Product>
  </Add>
  <Updates Enabled="TRUE" Channel="SemiAnnualEnterprise"/>
  <Display Level="None" AcceptEULA="TRUE"/>
</Configuration>

Remarques : adaptez Product ID à votre SKU (ex. ProjectProRetail vs ProjectProXVolume), l’édition (32/64 bits) et la langue. Testez d’abord sur un anneau pilote.

Signer les macros et imposer « signées uniquement »

Pour renforcer la sécurité et contourner durablement les blocages, mettez en place la signature de code :

  1. Générez un certificat de signature (ou utilisez un certificat d’entreprise) :
New-SelfSignedCertificate -DnsName $env:USERNAME `
  -Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
  1. Exportez/redistribuez le certificat vers le magasin Trusted Publishers des utilisateurs.
  2. Ouvrez l’éditeur VBA (Alt+F11) > Outils > Signature numérique > appliquez le certificat.
  3. Dans Project : Centre de gestion de la confidentialité > Paramètres des macros > cochez « Désactiver toutes les macros sauf les macros signées numériquement ».

Important : toute modification du code invalide la signature. Réappliquez la signature après chaque changement. Automatisez le processus de build/signature si possible.

Contournements ponctuels

  • Ouvrir explicitement un Global.mpt approuvé : renommez le Global local (ex. Global_MyMacro.mpt), déclarez-le en Emplacement approuvé, puis ouvrez-le avant vos plannings. Un second Global apparaît dans l’éditeur VBA. Soyez attentif aux invites d’enregistrement à la fermeture.
  • Emplacements/URL approuvés : ajouter l’URL de la PWA/SharePoint peut aider dans quelques contextes, mais s’est révélé insuffisant dans la plupart des cas.

Différences d’impact à connaître

  • Plus sévère sur Project Professional connecté à Project Online/Server (macros dans l’Enterprise Global).
  • Les autres applications Office n’ont pas été affectées de manière comparable.
  • Variations selon édition (Abonnement vs Standalone 2016/2019/2022) et canal (Current / Monthly Enterprise / Semi-Annual).

Repères de version observés

Les repères ci-dessous proviennent de retours de terrain. Vérifiez toujours votre build exacte dans Fichier > Compte > À propos de Project.

FenêtreVersion / Build (exemple)ContexteÉtat observé
Mi‑20242406–2408Current / Monthly EnterpriseBlocages macros fréquents (surtout EGlobal), contournés par Fix9072568 ou rollback.
Début sept. 20242408 (16.0.17928.20114)Environnements standalone et certains OnlineAmélioration notable pour beaucoup, pas universelle.
Mi‑sept. 20242409Canaux en déploiement progressifRétablissement pour de nombreux cas (EGlobal et local) ; quelques environnements encore touchés selon canal/SKU.
Fin sept. → mi‑oct. 2024Déploiement progressifCommunication supportAnnonces de suppression automatique de la clé Fix… souvent non observée, suppression manuelle recommandée après stabilisation.

Tableau de décision rapide

ScénarioSymptômesLocalisation des macrosAction prioritairePlan B
Project connecté à Project Online/ServerMessage « source untrusted », bouton Disable Macros uniquementEnterprise GlobalAppliquer Fix9072568=1, redémarrer ProjectRollback 2407, puis signature de code + stratégie « signées uniquement »
Project Pro autonomeMacros locales bloquéesGlobal.mpt / .mppMettre à jour vers une build corrigée (≥ 2409) ou signerRollback 2407, puis signature + Trusted Publishers
DSI interdit la clé registrePare-feu GPOEGlobal et/ou localSignature de code + stratégie « signées uniquement »Basculer canal en Semi-Annual, ouvrir un ticket support
Urgence opérationnelleProduction bloquéeLocal ou EGlobalOuvrir un Global.mpt approuvé explicitementRollback rapide, geler MAJ, plan de remédiation signé

Checklist de dépannage

  1. Identifier la build : Fichier > Compte > À propos de Project.
  2. Si ≥ 2409 et blocages persistent :
    • Tester sans la clé Fix9072568 (retirez-la), puis avec.
    • Contrôler les stratégies (GPO) et les paramètres macro.
    • Pour EGlobal : tester la signature + « signées uniquement ».
  3. Si la clé est impossible : rollback 2407 et gel des mises à jour (ou canal Semi‑Annual).
  4. En dernier recours : ouvrir explicitement un Global.mpt approuvé (contournement temporaire).
  5. En cas d’incohérences : documenter build, canal, emplacement des macros, message exact, présence d’Enterprise Global, puis ouvrir un ticket Microsoft 365.

Déploiement à grande échelle (Intune/GPO)

Distribution de la clé Fix9072568 via Intune

Remediation : script d’ajout de la clé pour l’utilisateur connecté.

$regPath = "HKCU:\Software\Microsoft\Office\16.0\MS Project\Settings"
$name    = "Fix9072568"
$value   = 1

New-Item -Path \$regPath -Force | Out-Null
New-ItemProperty -Path \$regPath -Name \$name -PropertyType DWord -Value \$value -Force | Out-Null 

Detection : renvoyer 0 si présent, 1 sinon.

$regPath = "HKCU:\Software\Microsoft\Office\16.0\MS Project\Settings"
$name    = "Fix9072568"

try {
\$v = Get-ItemProperty -Path \$regPath -Name \$name -ErrorAction Stop
if (\$v.\$name -eq 1) { exit 0 } else { exit 1 }
} catch { exit 1 } 

Suppression post‑correctif : retirer la clé lorsque la version est corrigée.

$clickToRun = "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration"
$version = (Get-ItemProperty -Path $clickToRun -ErrorAction SilentlyContinue).VersionToReport

# Exemple de condition : si version >= 16.0.17928.20114, supprimer la clé utilisateur

function Compare-Version(\$a, \$b) {
\$va = \[Version]\$a; \$vb = \[Version]\$b
return \$va.CompareTo(\$vb)
}
if (\$version -and (Compare-Version \$version "16.0.17928.20114") -ge 0) {
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Office\16.0\MS Project\Settings" \`
-Name "Fix9072568" -ErrorAction SilentlyContinue
} 

GPO (Preferences & Policies)

  • Preferences > Windows Settings > Registry : créez la valeur HKCU\...\MS Project\Settings\Fix9072568=1.
  • Policies : évitez « Désactiver toutes les macros sans notification » et réglez sur « signées uniquement » si vous déployez des certificats approuvés.

FAQ ciblée

Qu’est‑ce que l’Enterprise Global ?

Dans Project Server/Online, le Global d’entreprise est le conteneur central de paramètres et composants partagés (vues, tables, macros, etc.) chargé dans chaque session Project connectée. C’est précisément ce chargement distant qui a exacerbé la vérification stricte des macros.

Pourquoi le message mentionne‑t‑il « global » ?

Le message pointe le chemin logique « global » pour désigner l’espace de chargement du modèle global (local ou d’entreprise). Dans le cas Project Online, le contenu provient du serveur et déclenche la politique de source non approuvée.

Les Emplacements approuvés et Trusted Sites suffisent‑ils ?

Pas de manière fiable pour ce cas d’école : le durcissement s’applique avant même l’évaluation standard des emplacements, d’où l’intérêt du switch Fix9072568, du rollback ou de la signature.

La clé réglera‑t‑elle les macros locales ?

Souvent non. Elle aide surtout l’Enterprise Global. Pour le local, privilégiez une build corrigée (≥ 2409), la signature de code et, si besoin, un rollback temporaire.

Quid des éditions Standalone (2016/2019/2022) ?

L’impact varie. Certaines éditions dites « perpétuelles » (non Microsoft 365) ont été moins touchées, mais des blocages locaux ont été observés selon la build et le canal de mise à jour.

Comment auditer rapidement mon parc ?

  • Relevez VersionToReport (Click‑to‑Run) et la présence de Fix9072568 sous HKCU.
  • Échantillonnez des postes connectés à Project Online et des postes standalone.
  • Validez la politique macro (notification vs signées uniquement) et la présence du certificat dans Trusted Publishers.

Bonnes pratiques pour éviter la régression

  • Signature systématique des projets VBA destinés à l’entreprise.
  • Anneaux de validation (pilote > témoin > production) avant toute montée de build/canal.
  • Documentation des dépendances sensibles (ex. FileOpenEx) pour mieux évaluer l’impact des durcissements sécurité.
  • Distribution contrôlée via Intune/SCCM/GPO ; sauvegarde du registre avant tout changement.
  • Plan de retour arrière clair (version épinglée, canal, scripts) pour réduire le MTTR en cas de régression.

Exemples de scripts utiles

Forcer l’ouverture d’un Global.mpt approuvé (dépannage local)

$globalPath = "$env:USERPROFILE\Documents\Project\Global_MyMacro.mpt"  # Emplacement déclaré approuvé
Start-Process -FilePath "WINPROJ.EXE" -ArgumentList "`"$globalPath`""
Start-Sleep -Seconds 3
# Ouvrir ensuite votre plan .MPP manuellement ou via arguments supplémentaires

Basculer temporairement en canal Semi‑Annual (Click‑to‑Run)

cd "C:\Program Files\Common Files\Microsoft Shared\ClickToRun"
OfficeC2RClient.exe /changesetting channel=SemiAnnualEnterprise
OfficeC2RClient.exe /update user

Sécurité & conformité

Modifier le registre présente des risques. Testez d’abord, sauvegardez, puis déployez de manière contrôlée (Intune/SCCM/GPO). La clé Fix9072568 doit être considérée comme un levier temporaire. Dès qu’une build corrigée stabilise vos postes, retirez‑la et revenez à un modèle signé et gouverné. L’objectif n’est pas de « relâcher » la sécurité, mais de rétablir le service en attendant un correctif produit et un durcissement durable par signature de code et politiques adaptées.


Conclusion

Le blocage des macros MS Project post‑mise à jour est issu d’un durcissement sécurité Office, particulièrement sensible aux macros chargées via l’Enterprise Global. Les solutions ayant fait leurs preuves sont : la clé Fix9072568 = 1 (efficace surtout pour EGlobal), le rollback en 2407 pour stabiliser, et la signature de code assortie d’une stratégie « signées uniquement ». Les versions ultérieures (notamment 2408/2409 selon canal/SKU) ont progressivement rétabli l’exécution des macros, avec des retours hétérogènes durant le déploiement. Votre plan d’action : identifier la build et les politiques, appliquer la clé si nécessaire (ou revenir en 2407), signer les macros, puis retirer la clé dès que la build corrigée est généralisée.

Sommaire