PowerShell-Dateien des MID-Servers

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 3 Minuten Lesedauer
  • PowerShell-Funktionen werden in Skriptdateien (*.ps1) gespeichert, die eine PowerShell-Skriptmodul-Dateinamenerweiterung (*.psm1) verwenden.

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

    PSScript.ps1

    Dieses Skript führt einige Aufgaben aus, z. B. Tests von Anmeldeinformationen, Passwortverschlüsselung und die Ausführung von Skripts, die im Orchestration-Aktivitätendesigner oder in MID-Skriptdateien konfiguriert sind. Dieses Dokument konzentriert sich jedoch darauf, wie PSScript.ps1 verwendet Credential.psm1 Modul zum Testen des Zugriffs auf Remote-Hosts.

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

    PowerShell-credTypes

    Die PowerShell-Anmeldeinformationstypen:

    Typ Beschreibung
    WMI TestAnmeldeinformationsWMI
    Austauschvorgang TestCredentilExchange
    AD TestAnmeldeinformationen
    SCCM TestAnmeldeinformationsSCCM

    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.

    Exit-Codes

    Diese Exit-Codes werden vom Skript „PSScript.ps1“ zurückgegeben und in der MID-Server-Protokolldatei protokolliert.

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

    DiagnoseUtil.psm1

    Der MID-Server verwendet diese Moduldatei, um eine PowerShell-Protokollierung durchzuführen, die das Debugging von Orchestration-Aktivitäten mithilfe von PowerShell-Skripting unterstützt. Sie können Debugging-Anweisungen auch direkt zu anwenderdefinierten Skripts hinzufügen.
    Tabelle : 2. PowerShell-Diagnosedienstprogramme
    Dienstprogramm Beschreibung
    SNCLog-DebugInfo Protokollieren Sie eine Debug-Nachricht für ein PowerShell-Skript oder eine PowerShell-Orchestration-Aktivität. Beispiele:
    • SNCLog-DebugInfo: Nachricht „meine Debug-Nachricht...“
    • SNCLog-DebugInfo „meine Debug-Nachricht“
    SNCLog-ParameterInfo Protokollieren Sie einen Funktionsparameterwert. Für „Funktion getHostName{ param( [Zeichenfolge] $target )“ , Der erste Wert für die PowerShell-Hashtabelle ist eine Zeichenfolge, die angibt, welche Funktion ausgeführt wird, und die Werte für jeden der Funktionsparameter. Beispiele:
    • Funktion mit einzelnem Parameter: SNCLog-ParameterInfo @(„getHostName wird ausgeführt“, $target)
      Hinweis:
      Die Debug-Nachricht wird angezeigt: „ GetHostName $target wird ausgeführt:[ist-Wert von $target] „.
    • Funktion mit mehreren Parametern: SNCLog-ParameterInfo @("running FunctionName", $param1, $param2, $param3)
    SNCObfuscate-value Verwenden Sie dieses Dienstprogramm, um Werte zu Sicherheitszwecken zu verschlüsseln. Die Funktion wird angezeigt „$variableName“:*** , Wobei *** der verschleierte Wert ist. Beispiel:
    SNCObfuscate-value $password
    Hinweis:
    Die Debug-Nachricht lautet: „$password: ***“ .

    Anmeldeinformationen.psm1

    Der MID-Server verwendet diese Moduldatei, um den Zugriff auf einen Zielhost zu testen. Der MID-Server durchläuft alle WindowsAnmeldeinformationen, die in der Anmeldeinformationstabelle mit den folgenden Zugriffstypfunktionen gespeichert sind, es sei denn, die PowerShell-Aktivität hat einen Anmeldeinformationstyp ( CredType ) Definiert. Alle ServiceNow®Erstellte PowerShell-Aktivitäten sind hartcodiert, um einen bestimmten Anmeldeinformationstyp zu verwenden. Daher testet der MID-Server nur den Anmeldeinformationszugriff anhand der angegebenen Funktion.
    Tabelle : 3. PowerShell-Testfunktionen
    Funktion Beschreibung
    TestAnmeldeinformationsWMI Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mit Get-WMIObjekt.
    TestAnmeldeinformationen Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mit dem integrierten DirectoryEntryObjekt.
    TestCredentialExchange Testet den angegebenen Anwender und das angegebene Passwort, um eine Sitzung auf einem Exchange-Host zu erstellen. Dieser Test verwendet die integrierte PowerShell-Remotingfunktion auf einem Remote-Host. WinRM ist standardmäßig auf Exchange-Servern konfiguriert.
    TestAnmeldeinformationsSCCM Testet den angegebenen Anwender und das angegebene Passwort, um eine Sitzung auf einem SCCM-Server zu erstellen. Dieser Test verwendet die integrierte PowerShell-Remotingfunktion auf einem Remote-Host. Dieser Test erfordert die Konfiguration von WinRM.
    TestNoCredentialAccessWMI Testet den angegebenen Anwender und das angegebene Passwort auf dem Zielhost mit Get-WMIObjekt. Dieser Test wird verwendet, wenn nicht CredType Wird verwendet.
    Hinweis:
    Wenn der Test mit einer dieser Funktionen erfolgreich ist, werden diese Anmeldeinformationen zum Ausführen des PowerShell-Skripts/Befehls verwendet. Wenn die Tests mit diesen Funktionen nicht auf den Zielhost zugreifen können, führt der MID-Server das PowerShell-Skript/-Befehl unter dem Account des MID-Serverservice aus.

    Dieses Diagramm veranschaulicht die Abhängigkeit des Verhaltens der Anmeldeinformationsauswahl auf dem Host, der von der PowerShell-Aktivität angestrebt wird. 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 den Account des MID-Serverservice. Wenn der Zielhost nicht der MID-Server ist, dann alle WindowsAnmeldeinformationen werden zuerst verwendet. Wenn alle Anmeldeinformationen in der Tabelle „Anmeldeinformationen“ die PowerShell-Aktivität nicht erfolgreich ausführen können, verwendet der MID-Server den MID-Server-Service-Account.

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

    ActiveDirectory.psm1

    Diese Moduldatei speichert die Funktionen, die von den mit dem gelieferten PowerShell-Skripts verwendet werden Active Directory Aktivitätspaket.

    Exchange.psm1

    Diese Moduldatei speichert die Funktionen, die von den mit dem gelieferten PowerShell-Skripts verwendet werden Austausch Aktivitätspaket.

    SCCM.psm1

    Diese Moduldatei speichert die Funktionen, die von den mit dem gelieferten PowerShell-Skripts verwendet werden SCCM Aktivitätspaket.