Mes deux scripts d'exécution ConfigMgr préférés

Je travaille beaucoup dans l'espace d'inventaire et de rapport ConfigMgr, et j'aide également beaucoup de gens à résoudre les problèmes d'inventaire et de rapport. Dans cet article de blog, je partage avec vous deux de mes scripts d'exécution ConfigMgr préférés qui sont très utiles pour résoudre ces types de problèmes. L'un est utile lorsque vous devez forcer un inventaire matériel complet et l'autre est idéal lorsque vous devez forcer une nouvelle analyse des mises à jour logicielles.

Plus tôt ce mois-ci, vous vous en souvenez peut-être, j'ai publié un article de blog intitulé, Exécuter des scripts est la meilleure fonctionnalité de SCCM. Dans celui-ci, je vous ai montré comment j'ai utilisé la fonction Exécuter des scripts dans ConfigMgr/SCCM pour désactiver un pare-feu à distance. Dans le post d'aujourd'hui, je vous montre, une fois de plus, pourquoi je pense que la fonctionnalité Exécuter des scripts est la meilleure !

Scripts d'exécution ConfigMgr - Le meilleur

Forcer un inventaire complet - Script d'exécution ConfigMgr

Cela arrive tout le temps. ConfigMgr affiche des détails obsolètes pour l'inventaire du matériel. Pourquoi? Le principal coupable n'est pas de configurer correctement ConfigMgr pour tirer parti de l'inventaire matériel en augmentant la taille maximale du MIF à 50 Mo. Il existe une solution simple à ce problème et je la couvre dans mon message, Comment augmenter la taille maximale des fichiers d'informations de gestion (MIF). Cependant, une fois que vous avez augmenté la taille maximale du fichier, vous devez forcer un inventaire matériel complet sur certains (ou peut-être tous) de vos clients ConfigMgr. Malheureusement, il s'agit d'un effet secondaire de la non-augmentation de la taille du MIF lors de la création du ConfigMgr.

Avant la fonctionnalité Exécuter des scripts, vous pouviez forcer un inventaire complet en créant un package et un programme, en le déployant dans une collection, puis en ajoutant enfin le ou les ordinateurs à cette collection. Cela a fonctionné, mais cela a pris du temps. Lorsque vous résolvez un problème, vous ne voulez pas attendre, ce qui peut sembler une éternité, que les choses se produisent.

Je n'aime pas attendre, j'ai donc créé une solution de contournement pour la solution de package et de programme. Il y a quelque temps, je vous ai montré, dans un autre de mes articles de blog, comment réinitialiser tous les éléments d'inventaire à l'aide d'une tâche planifiée, Comment éviter de recevoir des demandes de resynchronisation d'inventaire pour les VM d'instantanés. Récemment, j'ai mis à jour les commandes WMIC répertoriées dans cet article de blog vers PowerShell et j'ai ajouté ce nouveau script à ma console ConfigMgr. Ci-dessous le script.

$comp="localhost"

$HardwareInventoryID = '{00000000-0000-0000-0000-00000000001}'

$SoftwareInventoryID = '{00000000-0000-0000-0000-00000000002}'

$HeartbeatID = '{00000000-0000-0000-0000-000000000003}'

$FileCollectionInventoryID = '{00000000-0000-0000-0000-00000000010}'

Get-WmiObject -ComputerName $comp -Namespace 'Root\CCM\INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID='$HardwareInventoryID'" | Supprimer-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root\CCM\INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID='$SoftwareInventoryID'" | Supprimer-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root\CCM\INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID='$HeartbeatID'" | Supprimer-WmiObject

Get-WmiObject -ComputerName $comp -Namespace 'Root\CCM\INVAGT' -Class 'InventoryActionStatus' -Filter "InventoryActionID='$FileCollectionInventoryID'" | Supprimer-WmiObject

Démarrage-Sommeil -s 5

Invoke-WmiMethod -computername $comp -Namespace root\CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HeartbeatID

Invoke-WmiMethod -computername $comp -Namespace root\CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $HardwareInventoryID

Invoke-WmiMethod -computername $comp -Namespace root\CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $SoftwareInventoryID

Invoke-WmiMethod -computername $comp -Namespace root\CCM -Class SMS_Client -Name TriggerSchedule -ArgumentList $FileCollectionInventoryID

Au fait, plus loin dans cet article, je vous explique où vous pouvez obtenir rapidement ce script et le script de réanalyse de la mise à jour logicielle. Je vous montre également où vous pouvez trouver les étapes pour les ajouter à votre console ConfigMgr via la fonction Exécuter des scripts.

À quoi sert ce script d'exécution ConfigMgr ?

Tout d'abord, il nettoie tout l'inventaire précédent, ce qui oblige le client ConfigMgr à effectuer un inventaire complet. Ensuite, il déclenche chacun des éléments d'inventaire du plus rapide au plus lent. Cela signifie que Heartbeat Discovery (également appelé cycle de collecte de données de découverte sur l'ordinateur client ConfigMgr) et l'inventaire matériel sont renvoyés en quelques minutes, et que les inventaires logiciels restants prennent des heures, voire des jours, pour revenir.

Forcer les mises à jour logicielles pour réanalyser le script d'exécution ConfigMgr

Les résultats de l'analyse des mises à jour logicielles (SU) sont des messages basés sur l'état et parfois ces messages basés sur l'état sont perdus. Si le message est perdu, lorsque le client ConfigMgr recherche SU à la prochaine heure programmée, le client ne renvoie PAS l'état actuel – jamais ! La seule exception est si l'état change (ce qui n'arrive presque jamais), sinon rien n'est plus jamais envoyé.

Vous n'aurez peut-être jamais besoin de forcer une nouvelle analyse des mises à jour logicielles, à moins que vous n'ayez besoin de creuser pour déterminer pourquoi l'état SU affiché dans ConfigMgr ne correspond pas à ce qui est répertorié sur l'ordinateur lui-même. La bonne nouvelle est que la plupart des étapes de dépannage (parfois sans même que vous le sachiez) résolvent ce problème. Si ce n'est pas le cas, ce script est fait pour vous !

Voici ma solution à ce problème :

$SCCMUpdatesStore = Nouvel objet -ComObject Microsoft.CCM.UpdatesStore

$SCCMUpdatesStore.RefreshServerComplianceState()

À quoi sert ce script d'exécution ConfigMgr ?

Ce script PowerShell très court actualise les messages basés sur l'état de toutes les mises à jour logicielles et renvoie les résultats à ConfigMgr.

Comment ajouter ces deux scripts à la console ConfigMgr ?

Tout d'abord, voici un fichier Zip avec les deux scripts ci-dessous.

ConfigMgr Exécuter des scripts

Deuxièmement, les instructions étape par étape sur la façon d'utiliser la fonction Exécuter les scripts sont couvertes dans mon article, Exécuter des scripts est la meilleure fonctionnalité de SCCM.

ConfigMgr Exécuter les scripts - Exécuter le script

À mon avis, ces deux scripts sont deux des plus importants que vous devez avoir dans votre bibliothèque de scripts ConfigMgr. Croyez-moi quand je dis qu'ils aident beaucoup au dépannage ! Si vous avez des questions sur ces scripts PowerShell, configurés en tant que scripts d'exécution ConfigMgr, n'hésitez pas à me contacter @GarthMJ.

Découvrez comment Right Click Tools change la façon dont les systèmes sont gérés.

Augmentez immédiatement votre productivité grâce à notre version Community Edition limitée et gratuite.

Commencez dès aujourd'hui avec Right Click Tools :

Assistance

  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

Contact

  • Ce champ n’est utilisé qu’à des fins de validation et devrait rester inchangé.

En soumettant ce formulaire, vous comprenez que Recast Software peut traiter vos données comme décrit dans le Recast Software Politique de confidentialité.

fr_FRFrench