Спасибо, но я хотел спросить о том, чтобы выяснить агрегирование командной строки для любой службы 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.