Также размещено по адресу:
http://forum.sysinternals.com/problem-launching-procdump-from-a-64bit-service_topic27425.html
Мы потенциально можем запустить несколько служб с одним и тем же исполняемым файлом на сайте клиента. Мы добавили параметр в нашу программу «Включить procdump» и проинструктировали клиентов загрузить procdump и поместить его в наш каталог bin.
Если настройка включена, мы запускаем procdump при запуске нашего сервиса (с указанием идентификатора процесса).
Проблема в следующем:
При работе в качестве «Local Service» или «Local System» procdump не работает для нашего 64-битного сервера. Он отлично работает при работе в качестве пользователя домена с правами администратора. Это также работает нормально, если мы запускаем его вручную из командной строки. Похоже, когда мы запускаем его вручную, я вижу два процесса procdump, созданных в диспетчере задач:
procdump * 32 и procdump64
Когда наша 64-битная служба работает как «Локальная служба» или «Локальная система» и запускает procdump, отображается только procdump * 32. Я предполагаю, что способ запуска procdump64 не работает. Он также не может создать дампы и не завершается, если я выполняю задачу, убивая службу (обычно она завершается).
Любые идеи относительно того, почему это так, или если я могу что-нибудь сделать с этим? Есть ли какое-то разрешение, которое требуется для учетной записи, на которой запущен procdump?