PowerShell-Schritt

  • Freigeben Version: Xanadu
  • Aktualisiert 1. August 2024
  • 7 Minuten Lesedauer
  • Führen Sie PowerShell-Skripts auf Remote-Computern von Ihrer ServiceNow-Instanz über ein MID-Server aus.

    PowerShell basiert auf dem Windows .NET Framework und wurde entwickelt, um die Verwaltung von Windows-Computern und -Anwendungen zu steuern und zu automatisieren. ServiceNow unterstützt PowerShell 3.0 bis 5.1. PowerShell 3.0 unterstützt Windows 2003 Server nicht.

    Hinweis:
    Dieser Schritt erfordert ein IntegrationHub-Abonnement. Weitere Informationen finden Sie unter Gesetzliche Zeitpläne − Integrations-Hub − Übersicht.

    Rollen und Verfügbarkeit

    Verfügbar als Workflow-Studio-Aktionsschritt. Benutzer mit der Rolle „action_designer“ können eine anwenderdefinierte Aktion mit einem oder mehreren Aktionsschritten erstellen.

    Felder

    Feld Beschreibung
    Verbindung Art der zu verwendenden Verbindung.
    • Verbindung Inline definieren: Definieren Sie die Verbindungsinformationen innerhalb des Aktionsschritts.
    • Verbindungs-Alias verwenden: Definieren Sie die Verbindungsinformationen mithilfe der Tabelle „Verbindungsalias“. Wenn Sie einen Alias verwenden, müssen Sie nicht mehrere Anmeldeinformations- und Verbindungsinformationsprofile konfigurieren, wenn Sie eine Aktion in mehreren Umgebungen verwenden. Ebenso müssen Sie Ihre benutzerdefinierte Aktion nicht aktualisieren, wenn sich die Verbindungsinformationen ändern.

    Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Einführung zu Anmeldeinformationen, Verbindungen und Aliassen.

    Verbindungsalias Aliasdatensatz für Verbindungen und Anmeldeinformationen, den das System zum Ausführen des Aktionsschritts verwendet. Benutzer mit der Rolle „flow_designer“ oder „admin“ können einen zugehörigen Verbindungsdatensatz erstellen oder auswählen. Wenn Sie einen Alias verwenden, müssen Sie nicht mehrere Anmeldeinformations- und Verbindungsinformationsprofile konfigurieren, wenn Sie eine Aktion in mehreren Umgebungen verwenden. Ebenso müssen Sie Ihre anwenderdefinierte Aktion nicht aktualisieren, wenn sich die Verbindungsinformationen ändern. Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Anmeldeinformationen, Verbindungen und Aliasnamen. Der Wert der Anmeldeinformationen wird als Datenpille Passwort (zweifach verschlüsselt) im Datenbereich angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn Verbindungsalias verwenden aus der Verbindungsliste ausgewählt wird.
    Anmeldeinformationsalias Anmeldeinformationsalias, den das System zum Ausführen des Aktionsschritts verwendet. Benutzer mit der Rolle „flow_designer“ oder „admin“ können einen zugehörigen Verbindungsdatensatz erstellen oder auswählen. Wenn Sie einen Alias verwenden, müssen Sie nicht mehr mehrere Anmeldeinformationen konfigurieren, wenn Sie eine Aktion in mehreren Umgebungen verwenden. Auch wenn sich die Anmeldeinformationen ändern, müssen Sie Ihre anwenderdefinierte Aktion nicht aktualisieren. Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Anmeldeinformationen, Verbindungen und Aliasnamen. Der Wert der Anmeldeinformationen wird als Datenpille Passwort (zweifach verschlüsselt) im Datenbereich angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn Verbindung inline definieren aus der Verbindungsliste ausgewählt wird.
    Host Geben Sie den vollständig qualifizierten Domänennamen des Zielhosts an, auf dem das System den Aktionsschritt ausführt. Zum Beispiel host.domain.com.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn die Verbindung Verbindung inline definieren lautet.
    Port Geben Sie den Kommunikationsport an, an dem der Zielhost auf Verbindungen wartet. Zum Beispiel 5985. Leer lassen, um den Standardport zu verwenden.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn die Verbindung Verbindung inline definieren lautet.
    MID-Auswahl Option zum Auswählen des spezifischen MID-Servers oder MID-Clusters.
    • MID-Server automatisch auswählen: Wählt den MID-Server automatisch aus.
    • Spezifischer MID-Server: Verwendet den ausgewählten MID-Server.
    • Spezifischer MID-Cluster: Verwendet den ausgewählten MID-Cluster.
    Dieses Feld ist verfügbar, wenn Verbindung inline definieren aus der Verbindungsliste ausgewählt wird.
    MID-Anwendung Geben Sie die Anwendung an, die der MID Server unterstützen muss, um ausgewählt zu werden. Das System führt den Aktionsschritt von einem MID-Server aus, der die ausgewählte Anwendung unterstützt. Wenn Sie eine Datenpille für dieses Feld verwenden, muss die Pille auf den Namen der MID-Anwendung verweisen, nicht auf den MID-Anwendungsdatensatz. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren in der Verbindungsliste und MID-Server automatisch auswählen in der Liste MID-Auswahl ausgewählt wird.
    Fähigkeiten Fähigkeiten, die die MID-Server unterstützen müssen, um ausgewählt zu werden. Das System führt den Aktionsschritt über einen MID-Server aus, der die ausgewählten Fähigkeiten unterstützt. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren in der Verbindungsliste und MID-Server automatisch auswählen in der Liste MID-Auswahl ausgewählt wird.
    MID-Server Datenpille, die eine sys_id-Referenz zu einem MID-Server [ecc_agent_list]-Datensatz enthält. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren in der Verbindungsliste und Spezifischer MID-Server in der MID-Auswahlliste ausgewählt werden.
    MID-Cluster Datenpille für den MID-Cluster, den Sie verwenden möchten. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren in der Verbindungsliste und Spezifischer MID-Cluster in der MID-Auswahlliste ausgewählt werden.
    Remotingtyp Der Speicherort, an dem das PowerShell-Skript ausgeführt wird, z. B. der MID oder ein Remote-Server.
    • Explizites Remoting (am häufigsten): Stellen Sie eine Verbindung mit einem Remote-Server her und führen Sie das Skript aus.
    • Implizites Remoting (Erweitert): Führen Sie ein Skript auf einem MID-Server beim Importieren notwendiger Module von einem Remote-Server. Wenn ausgewählt, definieren Sie das Präfix für Remote-Namen und Felder Module zum Importieren . Für eine optimale Leistung müssen nur die für den Schritt erforderlichen Module importiert werden. Wenn dieses Feld leer ist, werden alle verfügbaren Module vom Server importiert.
    • Auf einem MID-Server ausführen oder mit Ihrem Skript eine Remote-Sitzung einrichten: Führen Sie ein Skript direkt auf einem aus MID-Server oder definieren Sie die Remotespezifikationen im Skript. Dieser Wert ist der Standard.
    Hinweis:
    Um eine Funktion in einem PowerShell-Skript-Befehl oder einer PowerShell-Skriptdatei aufzurufen, muss der Befehl den Funktionsparam-Block definieren, wenn die Funktion Eingabeparameter aufweist. Diese Anforderung gilt für explizites und implizites Remoting. Zusätzliche Informationen zum param-Block finden Sie in der Microsoft-Dokumentation zu Windows Powershell-Parametern unter https://technet.microsoft.com/.
    Präfix des Remotenamens Der Dateipfad mit Ausnahme der Dateinamen zu den vom Remote-Server zu ladenden Modulen.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn Remoting-Typ Implizites Remoting (Erweitert) ist.
    Zu importierende Module Die durch Kommas getrennte Liste der Module, die vom Remote-Server unter dem definierten Dateipfad importiert werden sollen.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn Remoting-Typ Explizites Remoting (am häufigsten) oder Implizites Remoting (Erweitert) ist.
    Schritt „PowerShell testen“. Schaltfläche zum Testen der konfigurierten Anmeldeinformationen für den PowerShell-Schritt. Weitere Informationen hierzu finden Sie unter Schritt „Anmeldeinformationen für PowerShell testen“.
    Skripttyp Der Typ des Skripts, das auf dem PowerShell-Host ausgeführt werden soll.
    • Inline-Skript: Geben Sie das Skript ein, in dem das Feld Befehl des Schrittes ausgeführt werden soll.
    • MID-Server-Skriptdatei: Wählen Sie das PowerShell-Skript zum Ausführen aus der Tabelle MID-Server der Skriptdateien [ecc_agent_script_file] aus. Dies ist der Standardwert und trennt die Skriptlogik von der Aktion, sodass Sie das Skript aktualisieren können, ohne die Aktion ändern und erneut implementieren zu müssen.
    MID-Server Skript Vordefiniertes PowerShell-Skript aus der MID-Server Tabelle der Skriptdateien [ecc_agent_script_file].
    Hinweis:
    Dieses Feld ist nur verfügbar, wenn Skripttyp MID-Server-Skriptdatei ist.
    Skriptpfad Schreibgeschützter Pfad zum ausgewählten MID-Server Skript.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn Skripttyp MID-Server-Skriptdatei ist.
    Eingabevariablen Die optionalen Name-Wert-Paare, die die Werte der PowerShell-Skriptvariablen darstellen. Sie können Aktionseingaben und -daten aus anderen Schritten innerhalb des PowerShell-Skripts verwenden. Definieren Sie für jede Variable die folgenden Felder:
    • Name: Der Name der Skriptvariablen, an die ein Wert übergeben werden soll. Der Name kann nicht mit einer reservierten oder verbotenen PowerShell-Variablen übereinstimmen. Einige Variablennamen sind für die interne Verarbeitung reserviert und sollten nicht als Eingangsvariablen verwendet werden. Sehen Sie sich Reservierte Variablen im PowerShell-Skriptvariablen an.
    • Art: Der Typ der PowerShell-Variablen. Wählen Sie Nur-Text, verschlüsselt oder boolesch aus. Wenn verschlüsselt ausgewählt ist, wird der Wert in diesem Feld als Nur-Text angezeigt und nur verschlüsselt, wenn er an die ECC-Warteschlange übergeben wird.
    • Wert: Der Wert, der der Variablen zugeordnet werden soll. Geben Sie manuell einen Wert ein oder ziehen Sie ein Data-Pill in das Feld.
    Befehl Das Inline-PowerShell-Skript, das auf dem Ziel-Host ausgeführt werden soll.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn der Skripttyp Inline-Skript ist.

    Fehlerbewertung der Aktion

    Wenn dieser Schritt fehlschlägt
    Datentyp: Choice

    Option, um den nächsten Schritt auszuführen oder zur Fehlerauswertung zu wechseln. Informationen zur Verwendung des Schrittstatuscodes oder der Nachricht für eine anwenderdefinierte Aktionsfehlerbedingung finden Sie unter Fehlerbewertung der Aktion.

    PowerShell-Skriptvariablen

    Zugriff auf Eingabevariablen über das Feld Befehl müssen Sie sie mit einer speziellen Syntax aufrufen. Die von Ihnen verwendete Syntax hängt vom Wert einer Systemeigenschaft ab. Wenn Remoting-Typ Auf einem MID-Server ausführen oder mit Ihrem Skript eine Remote-Sitzung einrichten ist, stehen einige reservierte Variablen zusätzlich zu den Eingangsvariablen zur Verfügung.

    Syntax der Eingabevariablen

    Präfix für Variablennamen haben standardmäßig ein $-Zeichen. Wenn zum Beispiel eine Eingabevariable als Meldung bezeichnet wird, verwenden Sie $message, um auf die Variable im Skript zuzugreifen.

    Wenn der Parameter mid.powershell.command.script.parameter_passing auf „false“ gesetzt wurde, muss dem Variablennamen $env:SNC_ vorangestellt werden. Wenn eine Eingabevariable zum Beispiel als Meldung bezeichnet wird, benutzen Sie $env:SNC_message, um auf die Variable im Skript zuzugreifen. Weitere Informationen zum Parameter mid.powershell.command.script.parameter_passing finden Sie unter MID-Server-Parameter.

    Reservierte Variablen

    Wenn der Remoting-Typ Auf einem MID-Server ausführen oder mit Ihrem Skript eine Remote-Sitzung einrichten ist, sind die folgenden Variablen für die Verwendung in Skripts verfügbar. Reservierte Variablen können nicht als benutzerdefinierte Eingangsvariablennamen verwendet werden.

    Reservierte Variable Beschreibung
    $computer Host-IP-Adresse, die im Connection-Alias-Datensatz definiert ist.
    $cred Anmeldeinformationsobjekt, das die im Verbindungsdatensatz definierten Anmeldeinformationen enthält. Verwenden Sie diese Variable mit einem beliebigen PowerShell-Cmdlet, das den Credential-Parameter unterstützt. Zum Beispiel: New-PSSession -credential $cred.
    $log_info Wenn die Eigenschaft mid.property.powershell.log_info auf „true“ festgesetzt ist, werden einem PowerShell-Skript Protokollierungsinformationen hinzugefügt.

    Die folgenden Variablennamen sind für die interne Verarbeitung reserviert und sollten nicht als Eingabevariablen verwendet werden.

    • Skript
    • useCred
    • isMid
    • isDiscovery
    • debuggen
    • Anwender
    • Passwort
    • executingScriptDirectory
    • midScriptDirectory
    • hresult