PowerShell-Dateien für MID Server

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • PowerShell-Funktionen werden in Skriptdateien (*.ps1) gespeichert, die die Dateinamenserweiterung für PowerShell-Skriptmodule (*.psm1) verwenden.

    Die PowerShell-Funktionen werden von den PowerShell-Skriptdateien für MID-Server verwendet, die in diesen Aktivitätspaketen enthalten sind:
    • Active Directory
    • Exchange
    • SCCM
    • PowerShell

    PSScript.ps1

    Dieses Skript führt einige Aufgaben aus, z. B. das Testen von Anmeldeinformationen, die Passwortverschlüsselung und die Ausführung von Skripts, die im Orchestration-Aktivitäts-Designer oder in MID-Skriptdateien konfiguriert sind. Im diesem Dokument wird jedoch hauptsächlich beschrieben, wie PSScript.ps1 mit dem Modul credential.psm1 den Zugriff auf Remote-Hosts testet.

    Die PowerShell-Variablen werden im Allgemeinen direkt im PowerShell-Ausführungsbefehl oder als Parameter in der von Ihnen angegebenen MID-Server-Skriptdatei verwendet. Es gibt spezielle Variablen, die an PSScript.ps1 übergeben werden, z. B. credType.
    Abbildung : 1. credType in Ausführungsparametern verwenden
    credType in Ausführungsparametern verwenden

    PowerShell-credTypes

    PowerShell-Anmeldeinformationstypen:

    Typ Beschreibung
    WMI testCredentialWMI
    Exchange testCredentilExchange
    AD testCredentilAD
    SCCM testCredentialSCCM

    Wenn kein Anmeldeinformationstyp an das Skript PSScrip.ps1 übergeben wird, verwendet der MID-Server standardmäßig die WMI-Testfunktion, um den Zugriff auf den Zielhost zu testen. Wenn ein Anmeldeinformationstyp verwendet wird, führt der MID-Server die entsprechende Testfunktion für diesen Anmeldeinformationstyp aus.

    Beendigungscodes

    Diese Exitcodes werden vom Skript PSScript.ps1 zurückgegeben und in der Protokolldatei des MID-Servers protokolliert.

    Tabelle : 1. PSScript.ps1-Beendigungscodes
    Typ Testfunktion
    0 PowerShell-Befehl/-Skript wurde erfolgreich ausgeführt.
    1 Der Test wurde erfolgreich abgeschlossen, aber der Befehl/das Skript konnte nicht ausgeführt werden.
    2 Falsche Syntax an Skript übergeben.
    3 Alle Anmeldeinformationen, einschließlich des MID-Server-Servicekontos, konnten den Befehl/das Skript nicht ausführen.
    4 Test bestanden und die Aktivität ausgeführt, es wurde jedoch ein Fehler zurückgegeben. Beispielbenutzer wurde nicht gefunden.

    DiagnosticsUtil.psm1

    Der MID-Server verwendet diese Moduldatei für die PowerShell-Protokollierung, die das Debuggen von Orchestration-Aktivitäten mithilfe von PowerShell-Skripting unterstützt. Sie können anwenderdefinierten Skripts auch direkt Debugging-Anweisungen hinzufügen.
    Tabelle : 2. PowerShell-Diagnosedienstprogramme
    Dienstprogramm Beschreibung
    SNCLog-DebugInfo Protokollieren Sie eine Debug-Meldung für ein PowerShell-Skript oder eine PowerShell Orchestration-Aktivität. Beispiele:
    • SNCLog-DebugInfo -message "My debug message..."
    • SNCLog-DebugInfo "My debug message"
    SNCLog-ParameterInfo Protokolliert einen Funktionsparameterwert. Für "function getHostName{ param( [String] $target )" ist der erste Wert der PowerShell-Hashtabelle eine Zeichenfolge, die die ausgeführte Funktion und die Werte für jeden Funktionsparameter angibt. Beispiele:
    • Funktion mit einem Parameter: SNCLog-ParameterInfo @("Running getHostName", $target)
      Hinweis:
      In der Debug-Meldung wird Folgendes angezeigt: „getHostName $target:[actual value of $target]“ wird ausgeführt.
    • Funktion mit mehreren Parametern: SNCLog-ParameterInfo @("Running functionName", $param1, $param2, $param3)
    SNCObfuscate-Value Verwenden Sie dieses Dienstprogramm, um Werte aus Sicherheitsgründen zu verschlüsseln. Die Funktion zeigt "$variableName":*** an, wobei *** der verschlüsselte Wert ist. Beispiel:
    SNCObfuscate-Value $password
    Hinweis:
    Die Debug-Meldung lautet: „$password: ***“.

    Credentials.psm1

    Der MID-Server verwendet diese Moduldatei, um den Zugriff auf einen Zielhost zu testen. Der MID-Server durchläuft alle Windows-Anmeldeinformationen, die in der Anmeldeinformationstabelle mit den folgenden Zugriffstypfunktionen gespeichert sind, es sei denn, die PowerShell-Aktivität verfügt über einen definierten Anmeldeinformationstyp (credType). Alle von ServiceNow® erstellten PowerShell-Aktivitäten sind für die Verwendung eines bestimmten Anmeldeinformationstyps hartcodiert. Daher testet der MID-Server den Anmeldeinformationszugriff nur für die angegebene Funktion.
    Tabelle : 3. PowerShell-Testfunktionen
    Funktion Beschreibung
    testCredentialWMI Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mithilfe des Objekts Get-WMI.
    testCredentilAD Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mithilfe des integrierten Objekts DirectoryEntry.
    testCredentialExchange Testet den angegebenen Benutzer und das angegebene Passwort, um eine Sitzung auf einem Exchange-Host zu erstellen. Dieser Test verwendet die integrierte PowerShell-Remoting-Funktion auf einem Remote-Host. WinRM ist standardmäßig auf Exchange-Servern konfiguriert.
    testCredentilSCCM Testet den angegebenen Benutzer und das angegebene Passwort, um eine Sitzung auf einem SCCM-Server zu erstellen. Dieser Test verwendet die integrierte PowerShell-Remoting-Funktion auf einem Remote-Host. Für diesen Test muss WinRM konfiguriert sein.
    testNoCredentialAccessWMI Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mithilfe des Objekts Get-WMI. Dieser Test wird verwendet, wenn kein credType angegeben ist.
    Hinweis:
    Wird der Test mit einer dieser Funktionen bestanden, wird das PowerShell-Skript/der PowerShell-Befehl mit diesen Anmeldeinformationen ausgeführt. Wenn die Tests mit diesen Funktionen nicht auf den Zielhost zugreifen können, führt der MID-Server das PowerShell-Skript/den PowerShell-Befehl unter dem Konto des MID-Server-Service aus.

    Dieses Diagramm veranschaulicht die Abhängigkeit des Verhaltens von Anmeldeinformationen auf dem Zielhost der PowerShell-Aktivität. Wenn der Zielhost die IP-Adresse oder der Hostname des MID-Servers ist, umgeht der MID-Server alle Anmeldeinformationen in der Tabelle „Anmeldeinformationen“ und verwendet das Konto des MID-Server-Services. Wenn der Zielhost nicht der MID-Server ist, werden zuerst alle Windows -Anmeldeinformationen verwendet. Wenn alle Anmeldeinformationen in der Tabelle „Anmeldeinformationen“ beim Ausführen der PowerShell-Aktivität nicht erfolgreich sind, verwendet der MID-Server das Servicekonto des MID-Servers.

    Abbildung : 2. Auswahlkriterien für PowerShell-Anmeldeinformationen
    Auswahlkriterien für PowerShell-Anmeldeinformationen

    ActiveDirectory.psm1

    Diese Moduldatei speichert die Funktionen, die von den im Aktivitätspaket Active Directory enthaltenen PowerShell-Skripts verwendet werden.

    Exchange.psm1

    Diese Moduldatei speichert die Funktionen, die von den im Aktivitätspaket Exchange enthaltenen PowerShell-Skripts verwendet werden.

    SCCM.psm1

    Diese Moduldatei speichert die Funktionen, die von den im Aktivitätspaket SCCM enthaltenen PowerShell-Skripts verwendet werden.