PowerShell et planificateur de tâches : planifier l'inventaire

En 2014, j'ai publié un article de blog intitulé, Comment éviter de recevoir des demandes de resynchronisation d'inventaire pour les VM d'instantanés. Ce que j'ai aimé dans cet article, c'est la façon dont le planificateur de tâches a été utilisé pour planifier l'inventaire ConfigMgr, évitant ainsi les erreurs de resynchronisation ConfigMgr. Ce que je n'ai pas aimé dans cet article de blog de 2014, c'est la façon dont chaque tâche TriggerSchedule devait être créée à la main. Vers 2020, je me suis tourné vers PowerShell afin de résoudre ce problème et d'automatiser le processus. Pourquoi? Je testais Power BI Report Server avec Rapports Enhansoft et une partie de ces tests impliquait la création de nouveaux serveurs Windows 10 ainsi que plusieurs nouvelles machines virtuelles. Je ne voulais pas créer chaque tâche manuellement à chaque fois, alors PowerShell fait tout le gros du travail pour moi et maintenant je partage avec vous comment je l'ai fait, ainsi que le script, dans cet article.

Contexte

Dans mon article d'origine, j'ai lié à quelques articles de blog sur la façon de forcer l'inventaire vers une collection et un ordinateur en utilisant le Logiciel de gestion des terminaux Recast outil. C'est génial, même aujourd'hui, MAIS cela n'aide pas avec les machines virtuelles où un instantané est pris.

Ici à Enhansoft, Hyper-V est utilisé pour créer des instantanés des machines virtuelles dans notre laboratoire de test. Nous le faisons au cas où nous aurions besoin de rétablir rapidement une machine virtuelle dans un état connu. Lorsque cela se produit, l'inventaire de la machine virtuelle peut devenir désynchronisé avec ConfigMgr. En théorie, ConfigMgr oblige les ordinateurs désynchronisés à se resynchroniser et à se mettre à jour, mais cette tâche peut prendre un certain temps. Ce décalage n'est pas utile pour garantir que votre inventaire est toujours à jour dans ConfigMgr.

Notre solution à ce problème, chaque fois qu'une VM est redémarrée (redémarrée), consiste à forcer le client ConfigMgr à effectuer les actions suivantes dans cet ordre :

  1. Effectuez une découverte de pulsation (cycle de découverte de données).
  2. Supprimez le dernier matériel complet afin de forcer le prochain cycle d'inventaire matériel à effectuer un inventaire complet.
  3. Supprimez les données d'inventaire logiciel afin de forcer le prochain cycle d'inventaire logiciel à effectuer un inventaire complet.
  4. Effectuez un inventaire du matériel.
  5. Effectuez un inventaire logiciel.

Comme je ne souhaite pas effectuer cette tâche manuellement à chaque fois, j'ai scripté tous les éléments d'action répertoriés ci-dessus à l'aide de WMIC. Ensuite, j'ai défini une tâche planifiée pour qu'elle s'exécute à chaque redémarrage d'une machine virtuelle avec un délai de 5 minutes. Le délai de 5 minutes permet au client ConfigMgr de démarrer avant qu'il ne soit forcé d'effectuer l'action d'inventaire.

Dans le billet de blog d'origine, j'ai créé une tâche planifiée pour toutes les actions. Lorsque je suis allé automatiser ce processus avec PowerShell, il était plus logique de créer une tâche planifiée pour chaque élément d'action répertorié ci-dessus. En plus de ces actions, je voulais aussi forcer un inventaire complet à 9h tous les jours sur chaque VM. Afin de garder les choses en ordre, j'ai placé toutes les tâches planifiées dans un dossier.

Planifier l'inventaire ConfigMgr - Planificateur de tâches

Annexe ConfigMgr Inventaire

Je ne poste pas l'intégralité du script ici car vous pouvez Télécharger le script complet sur le site de Enhansoft, puis révisez-le. Au lieu de cela, je vous montre les trois lignes les plus importantes ci-dessous.

$action = New-ScheduledTaskAction -Execute 'WMIC.exe' -Argument '/namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}" /NOINTERACTIVE'
$trigger = Nouveau-ScheduledTaskTrigger - Quotidien - À 9:01:01
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $FolderName\"HW Inv" -User "System"

La première ligne crée la tâche planifiée. La deuxième ligne crée le déclencheur de tâche planifiée ; dans cet exemple, cela se produit à 9:01:01. La troisième ligne relie les première et deuxième lignes et exécute la tâche planifiée à l'aide du compte système.

Surveillez l'emballage des mots de chaque ligne. De plus, si vous coupez et collez cela dans votre propre script, faites attention aux guillemets stylisés (bouclés). Les guillemets doivent toujours être droits et simples.

En regardant la capture d'écran ci-dessus, vous pouvez voir qu'une fois le script PowerShell exécuté, toutes les tâches planifiées sont créées et placées soigneusement dans le dossier.

Congélateur

L'utilisation de ce script PowerShell pour planifier l'inventaire ConfigMgr est également importante si vous avez des ordinateurs qui utilisent Congélation Faronics. Cependant, je ferais quelques ajustements au script. Tout d'abord, supprimez les tâches planifiées « supprimer » du matériel et des logiciels au redémarrage du système, mais conservez les tâches planifiées pour déclencher les inventaires au démarrage du système. De plus, j'ajusterais le délai de 9 heures pour qu'il se produise quelques minutes après le cycle de décongélation de votre Deep Freeze.

Résumé

En fin de compte, ces tâches d'inventaire ConfigMgr planifiées et ce script PowerShell ont permis à mon équipe d'économiser beaucoup de temps et d'efforts. Si vous avez un laboratoire de test, je vous recommande d'utiliser également ce processus car il garantit que votre inventaire est mis à jour régulièrement. Si vous avez des questions sur la planification de l'inventaire 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