PowerShell-Schritt

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 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 dient der Steuerung und Automatisierung der Verwaltung von Windows-Computern und -Anwendungen. ServiceNow Unterstützt PowerShell 3,0 bis 7,4. PowerShell 3.0 unterstützt Windows 2003 Server nicht.

    Hinweis:
    Dieser Schritt erfordert ein IntegrationHub-Abonnement. Weitere Informationen finden Sie unter Zeitpläne für Rechtsabteilung – IntegrationHubÜbersicht .

    PowerShell-Version

    Standardmäßig IntegrationHub Unterstützt PowerShell-Versionen 3,0 bis 5,1. So verwenden Sie eine neuere Version: Fügen Sie die MID-Server-Eigenschaft hinzu mid.property.ihub.prefer_powershell6PlusUnd legen Sie sie auf fest Wahr .
    Hinweis:
    PowerShell-Version 6,0 oder höher ist nicht auf MID-Servern vorinstalliert. Sie müssen die neuere PowerShell-Version manuell installieren. Sowohl die früheren Versionen (PowerShell 3,0 bis 5,1) als auch die neueren Versionen (PowerShell 6,0 bis 7,4) können auf derselben Seite vorhanden sein MID-Server. Testen Sie Ihren IntegrationHub Und anwenderdefinierte PowerShell-Skripts, um sicherzustellen, dass alles funktioniert, bevor Sie ein Upgrade auf eine neuere Version von PowerShell durchführen.

    Rollen und Verfügbarkeit

    Verfügbar als Workflow-Studio-Aktionsschritt. Anwender 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 in Anmeldeinformationen, Verbindungen und Aliasse .

    Verbindungsalias Alias-Datensatz für Verbindungen und Anmeldeinformationen, den das System zur Ausführung des Aktionsschritts verwendet. Anwender 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. Wenn sich die Verbindungsinformationen ändern, müssen Sie Ihre anwenderdefinierte Aktion nicht aktualisieren. Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Anmeldeinformationen, Verbindungen und Aliasnamen. Der Anmeldeinformationswert wird im Datenbereich als Passwortdatenpille (zweifach verschlüsselt) angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn Verwenden Sie Den Verbindungsalias Ist aus der Verbindungsliste ausgewählt.
    Anmeldeinformationsalias Anmeldeinformationsalias, den das System zur Ausführung des Aktionsschritts verwendet. Anwender 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. 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 Anmeldeinformationswert wird im Datenbereich als Passwortdatenpille (zweifach verschlüsselt) angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste ausgewählt.
    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. Lassen Sie das Feld leer, um den Standardport zu verwenden.
    Hinweis:
    Dieses Feld ist nur sichtbar, wenn die Verbindung Verbindung inline definieren lautet.
    MID-Auswahl Option zum Auswählen eines bestimmten MID-Servers oder MID-Clusters. Wählen Sie eine der folgenden Optionen aus.
    • Wählen Sie DEN MID-Server automatisch aus : Ihr ServiceNowInstanz wählt aus MID-ServerOhne manuelle Eingabe.
    • Spezifischer MID-Server : Ihr ServiceNowInstanz verwendet MID-ServerDie Sie angeben.
    • Spezifischer MID-Cluster : Ihr ServiceNowInstanz verwendet den von Ihnen angegebenen MID-Cluster.

      Ein MID-Cluster ist eine Gruppe von MID-Servern, die Ihren aktivieren ServiceNowInstanz zur Verarbeitung mehrerer Integrationen und zur Verbesserung der Integrationsgeschwindigkeit. Weitere Informationen finden Sie unter Configure a MID Server cluster.

    Dieses Feld ist verfügbar, wenn Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste ausgewählt.
    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 Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste und ausgewählt MID-Server automatisch auswählen Ist aus der MID-Auswahlliste ausgewählt.
    Fähigkeiten Fähigkeiten der MID-Server Muss unterstützen, um für die Auswahl berechtigt zu sein. Das System führt den Aktionsschritt von einem aus aus MID-Server Die die ausgewählten Fähigkeiten unterstützt. Dieses Feld ist verfügbar, wenn Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste und ausgewählt MID-Server automatisch auswählen Ist aus der MID-Auswahlliste ausgewählt.
    MID-Server Datenpille, die eine sys_ID-Referenz zu enthält MID-Server[ecc_Agent_list] Datensatz. Dieses Feld ist verfügbar, wenn Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste und ausgewählt Bestimmter MID-Server Ist aus der MID-Auswahlliste ausgewählt.
    MID-Cluster Datenpille für den MID-Cluster, den Sie verwenden möchten. Dieses Feld ist verfügbar, wenn Definieren Sie Die Verbindung Inline Ist aus der Verbindungsliste und ausgewählt Spezifischer MID-Cluster Ist aus der MID-Auswahlliste ausgewählt.
    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 Standardwert.
    Hinweis:
    Um eine Funktion in einem PowerShell-Skriptbefehl oder einer PowerShell-Skriptdatei aufzurufen, muss der Befehl den Funktionsparameterblock definieren, wenn die Funktion Eingabeparameter hat. Diese Anforderung gilt für explizites und implizites Remoting. Weitere Informationen zum Parameterblock 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.
    Testen Sie den PowerShell-Schritt Schaltfläche zum Testen der konfigurierten Anmeldeinformationen für den PowerShell-Schritt. Weitere Informationen finden Sie unter Testen Sie Anmeldeinformationen für den PowerShell-Schritt .
    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.

    Auswertung des Aktionsfehlers

    Wenn dieser Schritt fehlschlägt
    Datentyp: Choice

    Option, um den nächsten Schritt fortzusetzen oder zur Fehlerauswertung zu wechseln. Informationen zur Verwendung des Schrittstatuscodes oder der Meldung für eine anwenderdefinierte Aktionsfehlerbedingung finden Sie unter Action error evaluation.

    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 mid.powershell.command.script.parameter_passingDer Parameter ist auf „falsch“ festgelegt. Stellen Sie dem Variablennamen ein Präfix voran $env:SNC_ . Wenn eine Eingabevariable zum Beispiel als Meldung bezeichnet wird, benutzen Sie $env:SNC_message, um auf die Variable im Skript zuzugreifen. Um mehr über zu erfahren mid.powershell.command.script.parameter_passingParameter, siehe 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 mid.property.powershell.log_infoEigenschaft ist auf „wahr“ festgelegt, fügt einem PowerShell-Skript Protokollierungsinformationen hinzu.

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

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