Wie bekomme ich das command-line-Argumente eines Windows-Dienstes?

Ich bin auf der Suche nach einem Weg, um herauszufinden, die Kommandozeilen-Argumente von alle Windows-Dienst.

Für ein nicht-service-Prozess, der Kommandozeilen-Argumente finden Sie in der Windows Task-Manager, oder programmgesteuert mithilfe von WMI, wie gezeigt, in dieser Beitrag.

Leider sind diese beiden Lösungen nicht für einen Windows-Dienst, der gestartet wird, indem die ServiceController.Start(String[] args) Methode. Beide zeigen nur die ausführbare Datei Pfad auf der Kommandozeile, auch wenn einige Argumente übergeben wurden.

  1. Was ist der Unterschied
    zwischen zwei Szenarien (ein service vs.
    eine nicht-service-Prozess)?
  2. Gibt es eine
    Weg, um herauszufinden, die Argumente der
    Windows-Dienst?

Ich habe auch versucht, die Schaffung eines einfachen Dienst, der nur meldet eventuelle Befehlszeilen-Argumente, die es hat, um das Ereignisprotokoll. Ich begann es mit "sc.exe start <my service> <arg1>" und verifiziert, dass <arg1> wurde in das Ereignisprotokoll geschrieben.

Aber keine der Lösungen hat bei mir funktioniert. Ich sah nur noch den Pfad zu der ausführbaren Datei. Meine OS-version ist Windows Server 2008 R2 SP1 x64 Enterprise.

InformationsquelleAutor Duat Le | 2011-05-31
Schreibe einen Kommentar