Erstellen Sie ein ACC-Plugin-Paket

  • Freigeben Version: Australia
  • Aktualisiert 12. März 2026
  • 2 Minuten Lesedauer
  • Erstellen Sie einen Agent Client Collector(ACC) Plugin-Paket, das das PowerShell-Skript enthält, das die Korrekturaktion definiert, ein Ruby-Skript und eine zulässige Liste, um die Ausführung der Korrekturaktion auf einem Endpunktgerät zu ermöglichen.

    Vorbereitungen

    Erforderliche Rolle: Administrator

    Prozedur

    1. Erstellen Sie einen Stammordner für das ACC-Plugin auf Ihrem lokalen Computer, und benennen Sie ihn.
      Beispiel: acc-Dex-custom .
    2. Erstellen Sie im Stammordner zwei Unterordner mit dem Namen Zulässigkeitsliste Und Bin .
    3. Erstellen Sie ein PowerShell-Skript mithilfe von PowerShell- oder Befehlsaufforderungsbefehlen, um die Korrekturaktion zu definieren, die auf einem Endpunktgerät ausgeführt werden soll.
      1. In Bin Ordner, erstellen Sie einen .Ps1 Datei und benennen Sie sie mit .Ps1 Erweiterung.
        Beispiel: Anwenderdefiniertes Skript.ps1
      2. Öffnen Sie .Ps1 Datei, und fügen Sie die Befehle hinzu.
        Beispiel: Das folgende Beispiel .Ps1 Datei definiert eine anwenderdefinierte Korrekturaktion mit Befehlen zum Stoppen und Starten des W32Time-Prozesses, zum Anhalten und Neustarten des Spooler-Service auf einem Gerät.
        sc.exe stop w32time
        
        $process = Get-Process -Name w32time -ErrorAction SilentlyContinue
        if ($process) {
            taskkill /f /t /im w32tm.exe
        }
        
        Start-Sleep -Seconds 5
        
        sc.exe start w32time
        Start-Process "C:\Windows\System32\w32tm.exe"
        
        Start-Sleep -Seconds 5
        
        sc.exe stop spooler
        sc.exe start spooler
        Hinweis:
        Sie können das PowerShell-Skript so konfigurieren, dass Eingabeparameter akzeptiert werden, die in definiert sind ServiceNow Instanz während der Ausführung.
      3. Speichern Sie die Datei.
    4. Erstellen Sie ein Ruby-Skript, um aufzurufen .Ps1 Datei aus ServiceNow Instanz.
      1. In Bin Erstellen Sie eine Ruby-Datei, und benennen Sie sie mit .rb Erweiterung.
      2. Öffnen Sie .rb Datei und fügen Sie Ihren Code mithilfe von „nur Ruby“ oder einem beliebigen Ruby-Framework hinzu.
        Das Ruby-Skript muss die Logik für Folgendes enthalten:
        • Rufen Sie an .Ps1 Skript, das Sie erstellt haben, und stellen Sie sicher, dass Sie den richtigen Dateipfad eingeben.
        • Validieren Sie, ob der Befehl erfolgreich ausgeführt wurde.
        • Erstellen Sie eine Ausgabe JSON Dies umfasst den Ausführungsstatus, die Ausgabe und ggf. Fehler.
      3. Führen Sie den Befehl aus, und überprüfen Sie die Ausgabe, um zu bestätigen, ob der .Ps1 Datei wurde erfolgreich aufgerufen oder wenn Fehler aufgetreten sind.
        Beispiel: Das folgende Beispiel .rb Datei führt eine aus .Ps1 Datei ( Anwenderdefiniertes Skript.ps1 ) Überprüft mithilfe des Ausführungsbefehls des Plugins ACC-f-common, ob der Befehl erfolgreich ausgeführt wird, und gibt das Ergebnis zurück JSON.
        require "logger"
        require_relative "../../../acc-f-commons/bin/command_runner.rb"
        require "json"
        
        class CustomScript
          def initialize()
            @logger = Logger.new(STDOUT)
            @cmd_runner = CommandRunner.new
            @logger.level = "FATAL"
          end
        
          def execute_custom_script()
            status = "failure"
            msg = nil
            data = {}
        
            parent_cache_directory = File.expand_path("../..", File.dirname(__FILE__)).gsub(" ", "` ")
            query = "powershell -ExecutionPolicy Bypass " + parent_cache_directory + "/acc-dex-custom/bin/ps/customScript.ps1"
        
            output, error = @cmd_runner.runCmd(query, @logger, "mode con:cols=32766 lines=1 & chcp 65001 > nul & ", true, false)
        
            if !error && !output.empty?
              status = "success"
              msg = "Successfully ran script"
              data = output
            else
              msg = "Failed - #{error}"
            end
        
            result = {
              "status" => status,
              "type" => "device",
              "metric_type" => "remedial_action",
              "keys" => "custom_script",
              "data" => data,
              "message" => msg
            }
        
            puts JSON.generate(result)
          end
        end
        
        custom_script = CustomScript.new
        custom_script.execute_custom_script()
        Hinweis:

        Wenn das PowerShell-Skript so konfiguriert ist, dass Eingabeparameter von akzeptiert werden ServiceNow Instanz übergibt das Ruby-Skript diese Parameter während der Ausführung an das PowerShell-Skript.

    5. Erstellen Sie eine Berechtigungslistendatei, und geben Sie das Ruby-Skript an, das für die Ausführung auf Endpunktgeräten zulässig ist.
      1. In Zulässigkeitsliste Unterordner erstellen Sie eine Zulässigkeitsliste JSON Datei.
        Beispiel: Check-allowlist.JSON .
      2. Definieren Sie alle Bedingungen, z. B. Argumente, die als Teil von akzeptiert werden sollen .rb Skript, oder erstellen Sie eine anwenderdefinierte Logik.
      3. Speichern Sie die Datei.
    6. Generieren Sie einen tar.gz Datei für Ihren ACC-Plugin-Ordner mit einem beliebigen Dienstprogramm.
      Hinweis:
      Die tar.gz Dateiname muss mit dem Namen des Plugin-Stammordners übereinstimmen. Beispiel: acc-dex-custom.tar.gz