In diesem Artikel geben wir einen Überblick über die Automatisierungsmöglichkeiten von Aufgaben mit PowerShell. Viel Spaß beim Erkunden!

Einführung in SCOM-Aufgaben und Aufgabenplanung Link zu Überschrift

In heutigen IT-Umgebungen müssen Administratoren häufig Aufgaben auf mehreren Servern ausführen. Während die Aufgaben des System Center Operations Manager (SCOM) äußerst hilfreich sind, kann die Verwaltung über die GUI mühsam werden, insbesondere wenn es um eine große Anzahl von Servern geht.

Eine leistungsstarke Funktion von SCOM ist die Möglichkeit, jede PowerShell-Aufgabe auszuführen. Diese Flexibilität ermöglicht es Administratoren, eine Vielzahl von Aktionen in ihrer Infrastruktur durchzuführen. Um diese Aufgaben jedoch effizient über zahlreiche Server hinweg zu verwalten, wird eine skriptbasierte Planung unerlässlich.

Durch die Nutzung der Skriptplanung können Administratoren bestimmte Server, alle Server oder bestimmte Servergruppen nacheinander mit den entsprechenden Aufgaben oder PowerShell-Code ansprechen. Dieser Ansatz rationalisiert nicht nur den Prozess, sondern stellt auch sicher, dass Aufgaben kontrolliert und organisiert ausgeführt werden.

In diesem Blogbeitrag werden wir untersuchen, wie Sie SCOM-Aufgaben und Aufgabenplanung effektiv nutzen können, um Ihre Serveroperationen effizienter zu automatisieren und zu verwalten.

Wie? Link zu Überschrift

Holen Sie sich die Skripte von GitHub.

Einfache Aufgabe in PowerShell Link zu Überschrift

In diesem Skript finden Sie ein einfaches Beispiel für die Ausführung der Aufgabe “HSLockDown - LIST Accounts” für alle Server, die mit “dc” beginnen.

Die Ausgabe $output.Output sieht folgendermaßen aus:

<DataItem type="System.CommandOutput" time="2024-06-19T16:53:11.2646854+02:00" sourceHealthServiceId="3109063B-6DFA-B1FF-C623-682BCDC59FDB">
  <StdOut><![CDATA[
    Management Group [SCOMMG]
    Allowed:
        NT AUTHORITY\Authenticated Users
    Denied:
  ]]></StdOut>
  <StdErr></StdErr>
  <ExitCode>0</ExitCode>
  <ProcessError></ProcessError>
</DataItem>

Sie können nun mit der Ausgabe arbeiten, indem Sie:

$xml.DataItem.StdOut."#cdata-section"

Beliebige PowerShell ausführen Link zu Überschrift

Um ein nützlicheres Beispiel zu haben, haben wir ein Beispiel für die Aufgabe “Beliebige PowerShell ausführen” erstellt.

Die Ausgabe $output.Output sieht folgendermaßen aus:

<DataItem type="Microsoft.Windows.SerializedObjectData" time="2024-06-19T15:07:51.8837078Z" sourceHealthServiceId="3109063b-6dfa-b1ff-c623-682bcdc59fdb">
  <SerializationSettings Type="OpsMgrSerialization" Depth="3" />
  <Property Type="System.String">OK</Property>
  <Description>OK</Description>
</DataItem>

In unserem Beispiel haben wir den folgenden Code ausgeführt:

if(!([string]::IsNullOrEmpty($env:COMPUTERNAME))){"OK"}else{"NotOK"}

Dies sollte “OK” zurückgeben, wenn der Computername existiert.

Sie werden möglicherweise die unterschiedliche Struktur der Ausgabe bemerken. Sie müssen die Ausgabenstruktur Ihrer Aufgabe überprüfen, um die richtigen Werte zu erfassen. In unserem Fall:

$xml.DataItem.Property.InnerText

Zielgruppen ansprechen Link zu Überschrift

In unserem dritten Beispiel haben wir unser Skript “Beliebige PowerShell ausführen” erweitert, um eine Gruppe von Objekten zu durchlaufen, was es noch nützlicher macht. Stellen Sie nur sicher, dass Sie die entsprechenden Objekte in die Gruppe einfügen; andernfalls schlägt die Aufgabenausführung fehl.