PowerShell-Aktivitäten

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • PowerShell wird auf erstellt Windows.NET Framework und wurde entwickelt, um die Verwaltung von zu steuern und zu automatisieren WindowsComputer und Anwendungen.

    PowerShell muss auf jedem MID-Server installiert werden, der diese Aktivitäten verwendet. MID-Server, die PowerShell verwenden, müssen auf einem unterstützten installiert sein WindowsBetriebssystem. ServiceNowUnterstützt PowerShell 3,0 bis 5,1.

    Die ServiceNow Orchestration Das Plugin fügt diese grundlegenden PowerShell-Aktivitäten zu Workflows hinzu. Anweisungen zur Verwendung von Aktivitäten aus dem PowerShell-Aktivitätenpaket finden Sie unter PowerShell-Aktivitätenpaket

    Veraltete PowerShell-Aktivität ausführen

    Die Aktivität „PowerShell ausführen“ wird ausgeführt WindowsPowerShell-Befehle auf einem MID-Server.

    Wichtig:
    Diese Aktivität ist veraltet und für neue Workflows nicht verfügbar. Um die Funktionalität dieser Aktivität zu ersetzen, verwenden Sie PowerShell-Aktivitätsvorlage Dient zum Erstellen einer anwenderdefinierten, bereichsbezogenen Aktivität. Workflows aus einem vorherigen Release, die die Aktivität „PowerShell ausführen“ verwenden, können dies weiterhin tun.

    Ergebniswerte

    Der Workflow-Designer kann einen Ergebniswert mithilfe von „activity.result“ aus einem Skriptfeld der Aktivität zuweisen. Standardmäßig bestimmt der Erfolg oder Fehler der verwendeten PowerShell-Befehle den Ergebniswert der Aktivität „PowerShell ausführen“. Mögliche Ergebniswerte sind:
    • Erfolg
    • Fehler

    Scratchpad-Einträge

    Informationen geschrieben an Stdout Durch das ausführende Skript wird erfasst und an die Aktivität in zurückgegeben Aktivität.Ausgabe Variable. Diese Informationen können zur zukünftigen Verarbeitung im Sensorskript der Aktivität analysiert, verarbeitet oder gespeichert werden (z. B. in einer Scratchpad-Variable).

    Ein Beispiel wäre die Ausführung des Befehls GET-date, um die aktuelle Uhrzeit des MID-Servers abzurufen. Dieses Sensorskript speichert die gesamte empfangene Ausgabe, aber wir können sie so verarbeiten, dass sie zurückgegeben wird und nur die Zeit gespart wird.
    Abbildung : 1. PowerShell-Aktivität
    PowerShell-Aktivität
    Hinweis:
    Dies ist ein zu vereinfachtes Beispiel. In den meisten Fällen funktioniert das Skript für einige Remote-Elemente WindowsComputer. Der Prinzipal ist jedoch derselbe – was auch immer geschrieben wird Stdout Wird in zurückgegeben Aktivität.Ausgabe Und zur Verarbeitung verfügbar.

    Eingabevariablen

    Tabelle : 1. Eingabevariablen
    Feld Beschreibung
    Hostname IP-Adresse des Ziels WindowsComputer. Dieser Wert ist dem zugeordnet $Computer Variable zur Verwendung in Befehlen (siehe Beispiel in Befehl Feld). Eine PowerShell-Anmeldeinformationsvariable aufgerufen $cred Das basiert auf Informationen in ServiceNowDie Anmeldeinformationstabelle authentifiziert sich auf dem Computer, auf den verwiesen wird Hostname .
    Befehl Geben Sie den auszuführenden PowerShell-Befehl ein. Beispiel: Um eine einfache WMI-Abfrage für einen Remote-Computer auszuführen, auf den von verwiesen wird Hostname Variable, der Befehl lautet:
    get-wmiobject <class> -computer $computer -credential $cred

    Wenn sich auf dem Computer keine Anmeldeinformationen authentifizieren, wird der Befehl im Kontext des MID-Server-Anwenders ausgeführt.

    Sie können nicht sowohl einen Befehl als auch eine Skriptdatei ausführen. Durch Angabe eines Befehls wird ausgeblendet Skriptdatei Variable.

    Sensorskript Das Skript, das mit den Ergebnissen der Probe ausgeführt werden soll. Die Ausgabe der Probe ist in einer Variablen namens enthalten Ausgabe . Jeder Fehler aus der Probe ist in einer Variablen namens enthalten Fehler .
    Skriptdatei Die zugehörigen Listen namens Aktivieren Sie die Skriptdateisynchronisierung für Windows Verbesserte Sicherheitan. Sie können nicht sowohl eine Skriptdatei als auch einen Befehl ausführen. Wenn Sie eine Skriptdatei auswählen, wird ausgeblendet Befehl Variable.
    PowerShell-Skriptvariablen Zusätzliche Parameter im JSON-Format, die von der angegebenen Skriptdatei verwendet werden.

    Status

    Der Aktivitätsstatus teilt der Workflow-Engine mit, was mit der Aktivität zu tun ist.
    Tabelle : 2. Status
    Status Beschreibung
    Wird ausgeführt Die Workflow-Engine weiß, dass die onExecute-Funktion der Aktivität gestartet werden kann.
    Fertig Die Ausführung der Aktivität ist abgeschlossen. Der Ergebniswert gibt das Ergebnis der Aktivität an.
    Abgebrochen Diese Aktivität oder der Workflow, der diese Aktivität enthält, wurde abgebrochen.
    Fügen Sie Workflow-Variablen für die Befehlszeile mithilfe der normalen Workflow-Variablensyntax hinzu. Im obigen Beispiel, wenn sich die <class> in einer Workflow-Eingabevariable befand, die aufgerufen wurde Meine Klasse , Der Befehl sieht wie folgt aus:
    get-wmiobject $ {workflow. inputs. myclass } -computer $computer –credential $cred
    Similarly  if the variable  is a scratchpad variable named myclass , the command would look like :
    get -wmiobject $ {workflow. scratchpad. myclass } -computer $computer –credential $cred

    HRESULT-Codes

    Wenn ein PowerShell-Skript auf einen Fehler stößt, gibt der Windows-Computer möglicherweise einen HRESULT-Code als Teil der Fehlermeldung zurück.

    PowerShell-Aktivitäten können diesen Code lesen und interpretieren. Nicht alle PowerShell-Fehler enthalten einen HRESULT-Code. Bei einem fehlgeschlagenen PowerShell-Skript können Sie den HRESULT-Code verwenden, um den Workflow durch eine bestimmte Bedingung zu verschieben.

    Wenn Sie beispielsweise ein Active Directory-Passwort auf ein Passwort zurücksetzen, das die Richtlinienanforderungen, z. B. Mindestlänge oder Komplexität, nicht erfüllt, gibt das PowerShell-Skript den HRESULT-Code 2146022651 zurück. Um diesen Code zu verwenden, erstellen Sie eine Aktivitätsbedingung mit Bedingung Wert von Activity.hresult = -2146022651 . Wenn das PowerShell-Skript diesen Code zurückgibt, wenn die Aktivität ausgeführt wird, durchläuft der Workflow diese neue Bedingung.