Scénario :
Nous avons constaté qu'un package est bloqué à 0% en téléchargement dans le centre logiciel.
Depuis la console MECM, nous avons vérifié les boundaries, tout est correctement configuré.
Ensuite nous avons vérifié l'état de distribution du package sur le point de distribution, le package est affiché distribué avec succès.
Pour s'assurer de la bonne distribution du package, nous nous sommes connecté au serveur avec le rôle point de distribution et nous avons constaté qu'il manque le fichier avec le PackageID.ini sous SCCMContentLib\PkgLib.
Nous avons décidé de vérifier l'état de distribution avec l'outil Content Library Explorer :
.png)
--> L'état de notre package est PENDING, c'est à dire sa distribution n'a pas pu aboutir.
--> Ce phénomène peut arriver dans le cas où le package a été supprimé mais n'a pas été correctement nettoyé du WMI du point de distribution, mais dans notre cas le package existe toujours et n'a pas été supprimé.
Après vérification, le chemin des sources du package a été modifié sur le serveur qui les héberge. Cette modification a été la cause de l'état PENDING de notre package.
Résolution :
Lorsqu'on change le chemin des sources d'un package MECM (exemple : de "D:\sources\VLC" à "D:\sources\VLC\v3.1"), il faut aussi mettre à jour le chemin vers le contenu dans l'onglet "Content" (cas d'une application) ou "Data Source" (cas d'un package) du package depuis la console.
Est-ce suffisant ? La réponse est NON !
Il faut également lancer l'action Update Content (depuis l'onglet Deployment Types) si c'est une application :

Ou l'action Update Distribution Points si c'est un package :

MECM utilise plusieurs comptes de service, en suivant les bonnes pratiques, ci-dessous les principaux comptes de service à créer pour être utilisés par ConfigMgr :
- Administration account
- Client Push account
- Network Access account
- SQL Reporting account
- SQL Engine account
- SQL Agent account
- Computer Domain Join account
La réinitialisation du mot de passe de tous ces comptes de service ne pose aucun problème, sauf celui du compte Network Access.
Le changement du mot de passe du compte Network Access, provoque le verrouillage en boucle de ce dernier.
Pour éviter les verrouillages de compte, ne modifiez pas le mot de passe d'un compte Network Access existant. Au lieu de cela, créez un nouveau compte et configurez le dans Configuration Manager.
Lorsque suffisamment de temps s'est écoulé pour que tous les clients aient reçu les détails du nouveau compte, supprimez l'ancien compte des dossiers partagés du réseau et supprimez le.
Pour ajouter un nouveau compte Network Access :


Sources:
Accounts used - Configuration Manager | Microsoft Learn
Contrairement aux versions précédentes de Windows, les Feature Updates de Windows 11 dans MECM Servicing nécessitent de définir toutes les langues nécessaires dans le point de mise à jour logicielle. Sinon, ils seront synchronisés mais pas téléchargés.
Configuration classique pour Windows 10
Prenant un exemple où on souhaite télécharger les Feature updates Windows 10 en Anglais, Français, Italien, Allemand et Espagnol :

--> Uniquement deux langues cochées dans la configuration SUP, mais les Feature Updates Windows 10 peuvent être synchronisés et téléchargés en plusieurs langues.
Configuration pour Windows 11
Le Windows Servicing dans MECM ne télécharge les maj d'upgrade Windows 11 que si les langues sont configurées dans SUP.
Prenant le même exemple ci-dessus (Anglais, Français, Italien, Allemand et Espagnol) :

Si on ne coche que Français et Anglais, les Feature Updates Windows 11 seront synchronisés en plusieurs langues mais ne peuvent être téléchargés que en langue française et anglaise.
Dans un projet de migration de Windows 10 vers une nouvelle version en utilisant les mises à jour de fonctionnalités de Microsoft Endpoint Configuration Manager, il y a quelques bonne pratiques à appliquer pour optimiser le process.
Ci-dessous 4 bonnes pratiques :
1. Définissez les paramètres ci-dessous sur la règle du plan de maintenance pour vous assurer de ne pas avoir de groupe de mise à jour logicielle vide après une synchronisation mensuelle des mises à jour SCCM, où les mises à jour des fonctionnalités sont remplacées (exemple de migration vers Windows 10 1909)
.png)
2. Augmentez la durée d'exécution maximale des mises à jour des fonctionnalités de Windows 10, de 120 minutes (valeur par défaut) à 600 minutes pour éviter la corruption de la migration (pour les appareils lents)
.png)
3. Définissez un plan de gestion de l'alimentation personnalisé sur les collections d'appareils cibles de migration pour désactiver le mode veille et l'arrêt du disque lorsque l'ordinateur n'est pas sur batterie
- Assurez-vous que la gestion de l'alimentation est activée dans les paramètres du client
.png)
- Sur une collection contenant tous les ordinateurs cibles pour la migration, définissez un plan personnalisé (ConfigMgr) pour les plans Peak et Non-Peak avec les modifications suivantes :
.png)
4. Modifiez les paramètres du client dans l'onglet des mises à jour logicielles comme suit :
- Calendrier d'analyse des mises à jour logicielles > A lieu toutes les 12h (valeur par défaut : 24h)
- Planifier la réévaluation du déploiement > A lieu toutes les 12h (valeur par défaut : 24h)
- Dès que l'échéance d'un déploiement de mise à jour logicielle est atteinte, installer tous les autres déploiement de mise à jour logicielle avec une échéance pendant une période de temps spécifiée > Non (valeur par défaut : Oui)
- Spécifier la priorité du thread pour les mises à jour des fonctionnalisés > Normal (valeur par défaut : Non configuré)

Scenario:
L'utilisateur avait Office 2016 32 bits installé et souhaite faire une mise à niveau vers le client M365 v2008 (semi-annual channel).
Problème:
Lors de la mise à niveau, l'erreur 0x80077562 (-2146994846) s'affiche dans le centre logiciel MECM --> Tous les produits office ont cessé de fonctionner et Office 2016 n'a pas été supprimé des programmes.

 et 4 pages de plus - Travail – Microsoft Edge.png)
Lorsque vous essayez de désinstaller manuellement l'ancienne version d'Office 2016, cette erreur s'affiche :
"La langue de ce package d'installation n'est pas prise en charge par le système"

Explication:
Cette erreur est parfois causée par l'échec des précédentes tentatives d'installation/désinstallation du produit Office.
Solution:
1. Réinstallez Office 2016 32 bits à l'aide des sources d'installation d'Office
2. Réessayez l'installation d'Office 365 à partir du centre logiciel
Dans un projet de migration de Windows 10 vers une nouvelle version en utilisant les mises à jour de fonctionnalités de Microsoft Endpoint Configuration Manager, il y a une erreur connue qui bloque la migration et bloque même le Retry.
L'erreur est la suivante : "L'opération n'a pas été effectuée car il n'y a pas d'utilisateur interactif connecté"

Cette erreur aura lieu quand il y a vraiment besoin d'une intervention utilisateur et que le mécanisme de mise à niveau Windows 10 en arrière plan ne peut pas remédier au problème automatiquement, généralement c'est l'un de ces deux cas :
1. Il y a un antivirus qui bloque la migration ou tout autre outil qui doit être mis à jour ou désinstallé
On peut détecter ce genre de problème en se connectant sur la machine, ouvrir le chemin suivant C:\$WINDOWS~BT\Sources\Panther, puis ouvrir le fichier CompatData*.xml le plus récemment modifié (c'est le fichier qui contient les données de scan de compatibilité)

Dans la capture ci-dessus, c'est l'outil de sécurité Check Point Endpoint Security qui a bloqué la migration Windows 10.
Vous pouvez utiliser le lien Microsoft qui est proposé dans le fichier xml pour trouver une solution.
2. Reset manuel de la migration
Pas mal de fois, le fichier de compatibilité CompatData*.xml ne contient aucun bloqueur dur de la migration et pourtant elle est bloquée.
Dans ce cas, il faut manuellement faire un reset de la migration par la suppression du dossier "$WINDOWS~BT" et le nettoyage du contenu du dossier "C:\Windows\SoftwareDistribution\Download".
Une fois ces actions sont faites, la migration fait un Retry automatiquement.
Remarque:
"$WINDOWS~BT" est un dossier caché
Dans un projet de migration de Windows 10 vers une nouvelle version en utilisant les mises à jour de fonctionnalités de Microsoft Endpoint Configuration Manager, on peut citer quelques problèmes connus et comment les corriger ou contourner.
- Problèmes de compatibilité
- La version de Trend Micro n’est pas à jour (les versions inférieures à 6.7.x bloquent) > Migration bloquée
> Solution: désinstaller Trend Micro ou mettre à jour la version
- Client VMWare Workstation installé (les versions VMWare v12.5.7 et v12.1 ou inférieures bloquent) > Migration bloquée
> Solution: Désinstaller VMWare Workstation Client ou mettre à jour la version installée
- Le pilote Bluetooth Realtek n’est pas prêt pour la migration vers Windows 10 > Migration bloquée
> Solution: Mettre à jour le pilote Bluetooth vers la version 1.5.1012 ou ultérieure
Source : <https://support.microsoft.com/en-us/help/4529832/updating-to-windows-10-version-1903-on-devices-with-some-driver-versio>
Impact sur l’utilisateur : aucun impact
- Le client est considéré comme conforme sans avoir vraiment installé la mise à niveau vers Windows 10
- Vérifiez si l’ordinateur voit la mise à jour des fonctionnalités de Windows 10 comme requise dans SCCM
> Si la mise à jour n’est pas requise, vérifiez si la langue du système d’exploitation est dans le scope de la migration ou si la version actuelle du système d’exploitation est trop vieille pour la version de mise à niveau cible
Impact sur l’utilisateur : aucun impact
- L’installation est « In progress » avec l’état "successfully installed update(s)"
- Il s’agit d’un bug connu avec la version SCCM 1906 où les clients Configuration Manager détectent incorrectement l’état de cogestion
> Solution: Installez le correctif SCCM KB4529827 (https://www.prajwaldesai.com/configuration-manager-1906-hotfix-kb4529827/)
Impact sur l’utilisateur : aucun impact
- Problèmes de corruption de mise à niveau
- Erreur de délai d’expiration (l’ordinateur est trop lent ou trop utilisé pour dépasser le temps autorisé pour l’installation)
- Erreur de travail annulée en raison de la déconnexion de l’utilisateur, du redémarrage de l’ordinateur ou de la mise en mode veille de l’ordinateur
> Solution: attendez que le client réessaye automatiquement la tâche de mise à niveau
Impact sur l’utilisateur : aucun impact
- Problème de Rollback
- Ordinateur bloqué après le redémarrage pour finaliser la mise à niveau de Windows avec les options suivantes :
- Windows Rollback
- Windows 10 (avec numéro de volume spécifié)
- Windows 10 (avec numéro de volume spécifié)
> Solution: choisissez l’option Windows Rollback

Impact sur l’utilisateur : faible impact
- Cliquez sur Windows Rollback et attendez environ 10 à 15 minutes pour récupérer l’écran de connexion Windows
Remarques :
- L’impact sur l’utilisateur indique si l’utilisateur est bloqué pour travailler. S'il n'y a aucun impact c'est que l'utilisateur ne s'est même pas rendu compte du problème et que tout s'est passé en arrière plan.
- Les fichiers log à analyser pour détecter le problème rencontré :
- C:\Windows\CCM\Logs\UpdatesDeployment.log
- C:\$WINDOWS.~BT\Sources\Panther\setupact.log
- C:\$WINDOWS~BT\Sources\Panther\CompatData*.xml (le fichier le plus récemment modifié)
N.B: "$WINDOWS~BT" est un dossier caché
Microsoft Endpoint Configuration Manager est capable de supprimer automatiquement le contenu des mises à jour logicielles des points de distribution lorsque ce contenu est lié à des mises à jour expirées. Ce processus permet de gérer l'espace disque sur vos points de distribution en supprimant tout contenu dont vous n'avez plus besoin.
Si celles-ci ne se trouvent dans aucun groupe de mises à jour logicielles, ConfigMgr purgera automatiquement les mises à jour expirées après 7 jours. Vous pouvez modifier le nettoyage à 0 jour si vous souhaitez que les composants wsyncmgr suppriment immédiatement les mises à jour expirées (en supposant qu'ils ne soient pas dans un groupe de mises à jour logicielles). On appelle ce nombre de jours, âge de nettoyage des mises à jour (Updates Cleanup Age)
Ci-dessous un script VBS qui permet de changer la valeur de l'âge de nettoyage des mises à jour sur votre ConfigMgr :
On Error Resume Next
'*** Define string variables for device, device Resource ID and user of interest
Class_Name = "SMS_SCI_Component"
Class_ItemName = "SMS_WSUS_SYNC_MANAGER|<<<***CHANGEME***SCCMSERVERNAMEHERE>>>.YOURDOMAIN.COM"
Class_ItemType = "Component"
Property_Name = "Updates Cleanup Age"
Property_SiteCode = "*****SCCMSITECODEHERE*****"
DesiredValue = 0
'*** Check parameters - we need the provider server name and the site code
set args=wscript.arguments
If args.Count = 2 then
SMSProviderServer = UCASE(Wscript.Arguments(0))
SiteCode = UCASE(Wscript.Arguments(1))
Else
wscript.Echo "Incorrect command line arguments." & vbCrLf & "Usage: cscript /nologo ModifySCFProperty.vbs <smsproviderserver> <sitecode>" & vbCrLf & "Example: cscript /nologo ModifySCFProperty.vbs SERVER1 S01 > schedules.txt" & vbCrLf
WScript.Quit(1)
End If
'*** Connect to the provider - report the error and terminate on failure
SMSProviderServer = "\\" + SMSProviderServer + "\"
Set ObjSvc = GetObject("winmgmts:" & "{impersonationLevel=Impersonate,authenticationLevel=Pkt}!" & SMSProviderServer & "root\sms\site_" & SiteCode)
If Err.Number <> 0 Then
wscript.Echo "Failed to connect to provider server with code: " & Err.Number & ". Aborting!"
WScript.Quit(2)
End If
'*** Get the desired instance of the class
Set objInst = ObjSvc.Get(Class_Name & ".ItemName='" & Class_ItemName & "',ItemType='" & Class_ItemType & "',SiteCode='" & Property_SiteCode &"'")
If Err.Number <> 0 Then
WScript.Echo "Failed to open desired object with error code " & Err.Number & " (" & Err.Description & "). Aborting!"
WScript.Quit(3)
End If
'*** Loop through the Properties until we find a match or run out
bFoundProperty = False
For Each objProp in objInst.Props
If objProp.PropertyName = Property_Name Then
bFoundProperty = True
Exit For
End If
Next
If bFoundProperty = False Then
WScript.Echo "Desired object was found but property was not found. Exiting without making any changes."
WScript.Quit(4)
End If
'*** Property found so check to see if existing value matches desired, changing it as appropriate
If objProp.Value = DesiredValue Then
WScript.Echo "Property '" & Property_Name & "' found with desired value '" & DesiredValue & "'. Not making any changes."
WScript.Quit(0)
Else
OriginalValue = objProp.Value
objProp.Value = DesiredValue
objProp.Put_
objInst.Put_
If Err.Number <> 0 Then
wscript.Echo "Failed to save the desired change with code: " & Err.Number & ". Aborting!"
WScript.Quit(5)
Else
WScript.Echo "Property '" & Property_Name & "' successfully changed from '" & OriginalValue & "' to '" & DesiredValue & "'."
End If
End If
Sources:
https://docs.microsoft.com/en-us/troubleshoot/mem/configmgr/software-update-maintenance
https://www.reddit.com/r/SCCM/comments/ab7v6f/software_updates_remove_old_ones/
https://youtu.be/wqBaTp855sk?t=1765
https://setupconfigmgr.com/wp-content/uploads/2018/06/Adjust-WSync_UpdateCleanupAge.zip
Lors du déploiement du Master sur un ordinateur portable, la séquence de tâches SCCM a échoué avec le code d’erreur 0X80091007.

Cette séquence de tâches fonctionnait bien, mais cette erreur s’est produite sans aucune explication.
En regardant le fichier log "smsts.log" de la machine en question, il y a une ligne qui dit clairement que la séquence de tâche a échoué lors de l’installation de Microsoft Office 2013. Cependant, le package Office n'était pas corrompu. Ce problème avait donc une autre solution que la recréation du package.
Après une investigation plus approfondie du fichier log, il a révélé les erreurs ci-dessous :
Failed to run the action: Error in the task sequence.
Task Sequence Error Running: Install Microsoft Office 2013 Professional.
Install Microsoft Office 2013 Professional has failed with the error code (0x80091007).
The hash value is not correct. (Error: 80091007; Source: Windows)
For more information, please contact your system administrator or help-desk operator.
DownloadContentAndVerifyHash() failed. 80091007
En cherchant sur internet, le code d'erreur 0X80091007 se traduit par Hash Mismatch (The hash value is not correct).
Conclusion:
Il n’y avait pas de solution unique à cette erreur. Si vous rencontrez également le code d’erreur de séquence de tâches SCCM 0X80091007, essayez les solutions ci-dessous :
- Supprimez le package du point de distribution et re-distribuez-le. C’est juste pour être sûr qu’un package valide est disponible avec le point de distribution
- Vérifiez si la mémoire RAM installée est défaillante. Cette solution semble être la plus stupide. Mais, le remplacement de barrette RAM a résolu ce problème dans notre scénario.
- Certaines personnes ont résolu l’erreur d’incompatibilité de hachage en désactivant la réplication différentielle binaire et en redistribuant le package à DP.
Dans notre scénario, problème détecté :
Barrette mémoire ram amovible défaillante. Elle est la source d’un problème de vérification de hash lors du téléchargement des sources de la séquence de tâches depuis MECM (DownloadContentAndVerifyHash() failed. 80091007)
Solution :
Enlever la barrette ram amovible et la remplacer par une nouvelle.
Une des bonne pratiques SCCM est d'activer la tâche de maintenance "Remettre à zéro l'indicateur d'installation".
Cette tâche permet d'effacer les indicateurs d'installation lorsque la découverte par pulsations d'inventaire ne découvre aucun client au cours de la période de redécouverte.

L'avantage d'avoir activé cette tâche de maintenance est de garder les indicateurs d'installation des agents MECM à jour et de détecter les agents qui ne sont plus en bonne santé et les réinstaller.
Pour activer cette tâche, sur la console MECM, cliquer sur Administration > Configuration de site > Sites > Cliquer sur le site primaire puis sur Maintenance de site.
Chercher la tâche avec le nom "Remettre à zéro l'indicateur d'installation" et cliquer sur activer. il est possible également de définir la planification pour contrôler la fréquence d'exécution de la tâche.

Dans la capture d'écran ci-dessus, la tâche de maintenance a été activée pour détecter les agents qui n'ont pas contacté le site primaire MECM depuis 40 jours par pulsation d'inventaire, si c'est le cas, l'indicateur d'installation passera de "Oui" à "Non".
- Si l'agent n'existe plus, l'indicateur reste "Non" jusqu'au nettoyage des objets obsolètes
- Si l'agent existe toujours mais était déconnectée pendant plus de 40 jours, à la prochaine connexion l'indicateur passera à "Oui"
- Si l'agent existe toujours mais ne communique pas avec MECM car il n'est plus en bonne santé, il sera réinstallé puisque l'indicateur d'installation est passé à "Non" mais la machine est connectée pour recevoir un nouveau push du client