PowerShell-Schritt

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 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 − IntegrationHub − Übersicht.

    Rollen und Verfügbarkeit

    Verfügbar als Aktionsdesigner-Aktionsschritt. Benutzer mit der Rolle „action_designer“ können eine benutzerdefinierte 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 Datensatz des Alias 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 zugeordneten 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 benutzerdefinierte 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 (2-fach verschlüsselt) im Datenbereich angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn in der Liste Verbindung die Option Verbindungsalias verwenden 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 zugeordneten 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. Ebenso müssen Sie Ihre benutzerdefinierte Aktion nicht aktualisieren, wenn sich die Anmeldeinformationen ändern. Weitere Informationen zu Verbindungen und Anmeldeinformationen finden Sie unter Anmeldeinformationen, Verbindungen und Aliasnamen. Der Wert der Anmeldeinformationen wird als Datenpille Passwort (2-fach verschlüsselt) im Datenbereich angezeigt.
    Hinweis:
    Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren aus der Liste Verbindung 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. 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 des spezifischen MID-Servers oder MID-Clusters.
    • MID Server automatischauswählen: Wählt den MID Server automatisch aus.
    • Spezifischer MID Server: Verwendet den von Ihnen ausgewählten MID Server.
    • Spezifischer MID-Cluster: Verwendet den von Ihnen ausgewählten MID-Cluster.
    Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren aus der Liste Verbindung 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 aus der Liste Verbindung ausgewählt wird und MID Server automatisch auswählen aus der MID- Auswahlliste ausgewählt wird.
    Funktionen Fähigkeiten, die MID-Server unterstützen müssen, um für die Auswahl in Frage zu kommen. Das System führt den Aktionsschritt von einem MID-Server aus, der die ausgewählten Fähigkeiten unterstützt. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren aus der Liste Verbindung ausgewählt wird und MID Server automatisch auswählen aus der MID- Auswahlliste 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 aus der Liste Verbindung und Spezifischer MID Server aus der MID-Auswahlliste ausgewählt wird.
    MID-Cluster Datenpille für den MID-Cluster, den Sie verwenden möchten. Dieses Feld ist verfügbar, wenn Inline-Verbindung definieren aus der Liste Verbindung ausgewählt wird und Spezifischer MID-Cluster aus der MID-Auswahlliste ausgewählt wird.
    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.
    PowerShell-Testschritt Schaltfläche zum Testen der konfigurierten Anmeldeinformationen für den PowerShell-Schritt. Weitere Informationen finden Sie unter Anmeldeinformationen für den PowerShell-Schritt 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.

    Felder für Aktionsfehlerauswertung

    Feld Beschreibung
    Wenn dieser Schritt fehlschlägt Option, um mit der Ausführung des nächsten Schritts fortzufahren oder zur Fehlerauswertung zu wechseln. Informationen zur Verwendung des Schrittstatuscodes oder der Meldung für eine Fehlerbedingung für eine benutzerdefinierte Aktion finden Sie unter Aktionsfehlerbewertung.

    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