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.
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
dansHKCU\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 :
- Fermez toutes les applis Office.
- 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
- Désactivez les mises à jour automatiques temporairement pour stabiliser l’environnement.
- 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 :
- Générez un certificat de signature (ou utilisez un certificat d’entreprise) :
New-SelfSignedCertificate -DnsName $env:USERNAME `
-Type CodeSigning -CertStoreLocation Cert:\CurrentUser\My
- Exportez/redistribuez le certificat vers le magasin Trusted Publishers des utilisateurs.
- Ouvrez l’éditeur VBA (Alt+F11) > Outils > Signature numérique > appliquez le certificat.
- 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être | Version / Build (exemple) | Contexte | État observé |
---|---|---|---|
Mi‑2024 | 2406–2408 | Current / Monthly Enterprise | Blocages macros fréquents (surtout EGlobal), contournés par Fix9072568 ou rollback. |
Début sept. 2024 | 2408 (16.0.17928.20114) | Environnements standalone et certains Online | Amélioration notable pour beaucoup, pas universelle. |
Mi‑sept. 2024 | 2409 | Canaux en déploiement progressif | Rétablissement pour de nombreux cas (EGlobal et local) ; quelques environnements encore touchés selon canal/SKU. |
Fin sept. → mi‑oct. 2024 | Déploiement progressif | Communication support | Annonces de suppression automatique de la clé Fix… souvent non observée, suppression manuelle recommandée après stabilisation. |
Tableau de décision rapide
Scénario | Symptômes | Localisation des macros | Action prioritaire | Plan B |
---|---|---|---|---|
Project connecté à Project Online/Server | Message « source untrusted », bouton Disable Macros uniquement | Enterprise Global | Appliquer Fix9072568=1 , redémarrer Project | Rollback 2407, puis signature de code + stratégie « signées uniquement » |
Project Pro autonome | Macros locales bloquées | Global.mpt / .mpp | Mettre à jour vers une build corrigée (≥ 2409) ou signer | Rollback 2407, puis signature + Trusted Publishers |
DSI interdit la clé registre | Pare-feu GPO | EGlobal et/ou local | Signature de code + stratégie « signées uniquement » | Basculer canal en Semi-Annual, ouvrir un ticket support |
Urgence opérationnelle | Production bloquée | Local ou EGlobal | Ouvrir un Global.mpt approuvé explicitement | Rollback rapide, geler MAJ, plan de remédiation signé |
Checklist de dépannage
- Identifier la build : Fichier > Compte > À propos de Project.
- 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 ».
- Tester sans la clé
- Si la clé est impossible : rollback 2407 et gel des mises à jour (ou canal Semi‑Annual).
- En dernier recours : ouvrir explicitement un Global.mpt approuvé (contournement temporaire).
- 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 deFix9072568
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.