Erstellen Sie ein ACC-Plugin-Paket
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
-
Erstellen Sie einen Stammordner für das ACC-Plugin auf Ihrem lokalen Computer, und benennen Sie ihn.
Beispiel: acc-Dex-custom .
- Erstellen Sie im Stammordner zwei Unterordner mit dem Namen Zulässigkeitsliste Und Bin .
-
Erstellen Sie ein PowerShell-Skript mithilfe von PowerShell- oder Befehlsaufforderungsbefehlen, um die Korrekturaktion zu definieren, die auf einem Endpunktgerät ausgeführt werden soll.
-
In Bin Ordner, erstellen Sie einen .Ps1 Datei und benennen Sie sie mit .Ps1 Erweiterung.
Beispiel: Anwenderdefiniertes Skript.ps1
-
Ö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 spoolerHinweis:Sie können das PowerShell-Skript so konfigurieren, dass Eingabeparameter akzeptiert werden, die in definiert sind ServiceNow Instanz während der Ausführung. - Speichern Sie die Datei.
-
In Bin Ordner, erstellen Sie einen .Ps1 Datei und benennen Sie sie mit .Ps1 Erweiterung.
-
Erstellen Sie ein Ruby-Skript, um aufzurufen .Ps1 Datei aus ServiceNow Instanz.
- In Bin Erstellen Sie eine Ruby-Datei, und benennen Sie sie mit .rb Erweiterung.
-
Ö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.
-
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.
-
Erstellen Sie eine Berechtigungslistendatei, und geben Sie das Ruby-Skript an, das für die Ausführung auf Endpunktgeräten zulässig ist.
-
In Zulässigkeitsliste Unterordner erstellen Sie eine Zulässigkeitsliste JSON Datei.
Beispiel: Check-allowlist.JSON .
- Definieren Sie alle Bedingungen, z. B. Argumente, die als Teil von akzeptiert werden sollen .rb Skript, oder erstellen Sie eine anwenderdefinierte Logik.
- Speichern Sie die Datei.
-
In Zulässigkeitsliste Unterordner erstellen Sie eine Zulässigkeitsliste JSON Datei.
-
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