Konfiguration und Ausführung von JsN


Ausführung

JsN.exe <pfad_zur_config.json>

Beispiele:

JsN.exe config.json
JsN.exe "C:\scripts\monitor.json"
JsN.exe TCa\CaMonitor.json

JSON-Konfigurationsformat

{
  "scriptfile": "./my_script.js",
  "arg": {
    "key1": "value1",
    "key2": 42,
    "key3": true,
    "nested": {
      "sub": "value"
    }
  }
}
Feld Typ Beschreibung
scriptfile string Pfad zur JS-Datei (relativ zum Konfigurationsordner oder absolut)
arg object Beliebige Daten, die im Skript als arg verfügbar sind

Zugriff auf arg in einem Skript

Der gesamte Inhalt von "arg" wird als globales Objekt arg an JS übergeben:

Konfiguration:

{
  "scriptfile": "./run.js",
  "arg": {
    "host": "smtp.office365.com",
    "port": 587,
    "recipients": ["admin@example.com", "ops@example.com"],
    "debug": false
  }
}

Skript run.js:

console.log(arg.host);               // "smtp.office365.com"
console.log(arg.port);               // 587
console.log(arg.recipients[0]);      // "admin@example.com"
console.log(arg.debug);              // false

Pfade in scriptfile

Der Pfad in scriptfile kann sein:

Format Beispiel Verhalten
Relativ "./script.js" Relativ zum Konfigurationsordner
Absolut "C:\\scripts\\run.js" Absoluter Pfad

Empfehlung: Bewahren Sie die Konfiguration und das Skript im selben Ordner auf und verwenden Sie "./script.js".


Projektstruktur

Empfohlene Dateiorganisation:

my-project/
├── config.json        ← Konfiguration (wird an JsN.exe übergeben)
├── script.js          ← Hauptskript
└── lib/
    └── helpers.js     ← Hilfsfunktionen (falls benötigt)

Mehrere Konfigurationen für verschiedene Aufgaben

Sie können mehrere Konfigurationen für ein Skript mit unterschiedlichen Parametern haben:

monitor/
├── monitor.js                  ← Gemeinsames Skript
├── monitor-production.json     ← Konfiguration für Produktion
└── monitor-staging.json        ← Konfiguration für Staging

monitor-production.json:

{
  "scriptfile": "./monitor.js",
  "arg": {
    "service": "MyApp_Production",
    "process": "myapp.exe",
    "notify_url": "https://hooks.slack.com/services/PROD/..."
  }
}

monitor-staging.json:

{
  "scriptfile": "./monitor.js",
  "arg": {
    "service": "MyApp_Staging",
    "process": "myapp.exe",
    "notify_url": "https://hooks.slack.com/services/STAG/..."
  }
}

Geplante Ausführung (Taskplaner)

Verwenden Sie für die periodische Ausführung den Windows-Taskplaner:

  1. Öffnen Sie den Taskplaner (taskschd.msc)
  2. Aufgabe erstellen → Aktionen → Neu
  3. Programm: C:\tools\JsN\JsN.exe
  4. Argumente: C:\scripts\monitor\config.json
  5. Trigger konfigurieren (alle N Minuten, beim Start usw.)

Oder über PowerShell:

$action = New-ScheduledTaskAction `
    -Execute "C:\tools\JsN\JsN.exe" `
    -Argument "C:\scripts\monitor\config.json"

$trigger = New-ScheduledTaskTrigger -RepetitionInterval (New-TimeSpan -Minutes 5) -Once -At (Get-Date)

Register-ScheduledTask -TaskName "JsN-Monitor" -Action $action -Trigger $trigger -RunLevel Highest

Ausführung als Administrator

Die svc_*-Funktionen erfordern Administratorrechte. Ausführungsmöglichkeiten:

Über Verknüpfung: Rechtsklick → Als Administrator ausführen.

Über Taskplaner: Beim Erstellen der Aufgabe → Mit höchsten Berechtigungen ausführen.

Über PowerShell:

Start-Process "JsN.exe" -ArgumentList "config.json" -Verb RunAs

JsN.exe-Exitcodes

Code Bedeutung
0 Skript erfolgreich ausgeführt
1 Fehler beim Laden der Konfiguration oder JS-Datei