PowerShell & Taskplaner: Planen des Inventars

Im Jahr 2014 veröffentlichte ich einen Blogbeitrag mit dem Titel: So vermeiden Sie den Empfang von Anforderungen zur Neusynchronisierung des Inventars für Snapshot-VMs. Was ich an diesem Beitrag geliebt habe, war, wie der Aufgabenplaner verwendet wurde, um ConfigMgr-Inventar zu planen und dadurch ConfigMgr-Neusynchronisierungsfehler zu vermeiden. Was mir an diesem Blogbeitrag von 2014 nicht gefallen hat, war, dass jede TriggerSchedule-Aufgabe von Hand erstellt werden musste. Im Jahr 2020 wandte ich mich an PowerShell, um dieses Problem zu lösen und den Prozess zu automatisieren. Wieso den? Ich habe Power BI-Berichtsserver mit getestet Enhansoft-Berichte und ein Teil dieser Tests umfasste die Erstellung neuer Windows 10-Server zusammen mit mehreren neuen VMs. Ich wollte nicht jedes Mal jede Aufgabe manuell erstellen, also erledigt PowerShell die ganze schwere Arbeit für mich und jetzt teile ich in diesem Beitrag mit Ihnen, wie ich es zusammen mit dem Skript gemacht habe.

Hintergrund

In meinem ursprünglichen Beitrag habe ich mit einigen Blog-Beiträgen verlinkt, wie man Inventar zu einer Sammlung und einem Computer erzwingt, indem man die Recast Endpunktverwaltungssoftware Werkzeug. Das ist auch heute noch großartig, ABER es hilft nicht bei VMs, bei denen ein Snapshot erstellt wird.

Hier, um Enhansoft, Hyper-V wird verwendet, um Snapshots der VMs in unserem Testlabor zu erstellen. Wir tun dies für den Fall, dass wir eine VM schnell in einen bekannten Zustand zurückversetzen müssen. In diesem Fall kann das VM-Inventar mit ConfigMgr nicht mehr synchron sein. Theoretisch zwingt ConfigMgr nicht synchronisierte Computer dazu, sich selbst neu zu synchronisieren und zu aktualisieren, aber diese Aufgabe kann eine Weile dauern. Diese Zeitverzögerung ist nicht hilfreich, um sicherzustellen, dass Ihr Inventar in ConfigMgr immer auf dem neuesten Stand ist.

Unsere Lösung für dieses Problem besteht bei jedem Neustart einer VM darin, den ConfigMgr-Client zu zwingen, die folgenden Aktionen in dieser Reihenfolge auszuführen:

  1. Führen Sie eine Heartbeat-Erkennung (Datenermittlungszyklus) durch.
  2. Löschen Sie die letzte vollständige Hardware, um zu erzwingen, dass der nächste Hardwareinventurzyklus eine vollständige Inventur durchführt.
  3. Löschen Sie die Softwareinventardaten, um im nächsten Softwareinventarzyklus eine vollständige Inventarisierung zu erzwingen.
  4. Führen Sie eine Hardwareinventur durch.
  5. Führen Sie eine Softwareinventur durch.

Da ich diese Aufgabe nicht jedes Mal manuell ausführen möchte, habe ich alle oben aufgeführten Aktionselemente mithilfe von WMIC als Skript erstellt. Dann habe ich eine geplante Aufgabe festgelegt, die jedes Mal ausgeführt wird, wenn eine VM mit einer Verzögerung von 5 Minuten neu gestartet wird. Die 5-Minuten-Verzögerung ermöglicht es dem ConfigMgr-Client, zu starten, bevor er gezwungen ist, die Inventarisierungsaktion durchzuführen.

Im ursprünglichen Blogbeitrag habe ich für alle Aktionen eine geplante Aufgabe erstellt. Als ich diesen Prozess mit PowerShell automatisieren wollte, war es sinnvoller, für jedes oben aufgeführte Aktionselement eine geplante Aufgabe zu erstellen. Zusätzlich zu diesen Aktionen wollte ich auf jeder VM jeden Tag um 9:00 Uhr eine vollständige Bestandsaufnahme erzwingen. Um Ordnung zu halten, habe ich alle geplanten Aufgaben in einem Ordner abgelegt.

Planen der ConfigMgr-Inventur - Aufgabenplanung

ConfigMgr-Inventar planen

Ich poste hier nicht das gesamte Skript, weil du es kannst herunterladen das vollständige Skript von der Website von Enhansoft und überprüfen Sie es dann. Stattdessen zeige ich Ihnen im Folgenden die drei wichtigsten Zeilen.

$action = New-ScheduledTaskAction -Execute 'WMIC.exe' -Argument '/namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000001}" /NOINTERACTIVE'
$trigger = New-ScheduledTaskTrigger -Täglich -Um 9:01:01 Uhr
Register-ScheduledTask -Aktion $action -Trigger $trigger -TaskName $FolderName\"HW Inv" -Benutzer "System"

Die erste Zeile erstellt die geplante Aufgabe. Die zweite Zeile erstellt den geplanten Task-Trigger; In diesem Beispiel tritt es um 9:01:01 auf. Die dritte Zeile verbindet sowohl die erste als auch die zweite Zeile und führt die geplante Aufgabe unter Verwendung des Systemkontos aus.

Achten Sie auf den Zeilenumbruch jeder Zeile. Achten Sie auch beim Ausschneiden und Einfügen in Ihr eigenes Skript auf stilisierte (geschwungene) Anführungszeichen. Anführungszeichen sollten immer die geraden, einzelnen sein.

Wenn Sie sich den obigen Screenshot ansehen, können Sie sehen, dass nach der Ausführung des PowerShell-Skripts alle geplanten Aufgaben erstellt und sauber im Ordner abgelegt werden.

Tiefkühltruhe

Die Verwendung dieses PowerShell-Skripts zum Planen der ConfigMgr-Bestandsaufnahme ist auch wichtig, wenn Sie Computer haben, die verwenden Faronics Deep Freeze. Ich würde jedoch ein paar Anpassungen am Skript vornehmen. Entfernen Sie zunächst die geplanten Hardware- und Software-Tasks zum „Löschen“ beim Neustart des Systems, behalten Sie jedoch die geplanten Tasks bei, um Inventarisierungen beim Systemstart auszulösen. Außerdem würde ich den Zeitrahmen um 9 Uhr so anpassen, dass er einige Minuten nach dem Auftauen Ihres Deep Freeze-Zyklus stattfindet.

Zusammenfassung

Letztendlich haben diese geplanten ConfigMgr-Inventarisierungsaufgaben und dieses PowerShell-Skript meinem Team viel Zeit und Mühe erspart. Wenn Sie über ein Testlabor verfügen, empfehle ich Ihnen, diesen Prozess ebenfalls zu verwenden, da dadurch sichergestellt wird, dass Ihr Inventar regelmäßig aktualisiert wird. Wenn Sie Fragen zur Planung des ConfigMgr-Inventars haben, wenden Sie sich bitte an mich @GarthMJ.

Sehen Sie, wie Right Click Tools die Art und Weise verändert, wie Systeme verwaltet werden.

Steigern Sie sofort die Produktivität mit unserer limitierten, kostenlos nutzbaren Community Edition.

Starten Sie noch heute mit Right Click Tools:

Support

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Kontakt

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Durch das Absenden dieses Formulars erklären Sie sich damit einverstanden, dass Recast Software Ihre Daten wie in Recast Software beschrieben verarbeiten kann Datenschutz-Bestimmungen.

de_DEGerman