Спасибо, но я хотел спросить о том, чтобы выяснить агрегирование командной строки для любой службы Windows, а не для той, которую я создал, поэтому я не могу переопределить метод, как вы сказали в # 2. Я также ищу разницу между двумя случаями: почему для интерактивного процесса я вижу аргументы, а для службы - нет.

способ выяснить аргументы командной строкиЛюбые служба windows.

Для не обслуживающего процесса аргументы командной строки можно найти в диспетчере задач Windows или программно с помощью WMI, как показано в этомПочта.

К сожалению, эти два решения не работают для службы Windows, которая запускаетсяServiceController.Start (String [] args) метод. Оба они показывают только путь к исполняемому файлу в командной строке, хотя некоторые аргументы были переданы.

Может ли кто-нибудь объяснить разницу между двумя сценариями (сервис против процесса обслуживания)?Есть ли способ выяснить аргументы службы Windows?

ОБНОВИТЬ:

Я также попытался создать простой сервис, который просто регистрирует любые аргументы командной строки в журнале событий. Я начал это используя"sc.exe start <my service> <arg1>" и проверил, что<arg1> был записан в журнал событий. Однако ни одно из решений не помогло мне. Я видел только путь к исполняемому файлу. Моя версия ОС - Windows Server 2008 R2 SP1 x64 Enterprise.

Ответы на вопрос(4)

Ваш ответ на вопрос