У меня есть исполняемый файл службы Windows, который, как мне известно, написан на .NET, который мне нужно установить под другим именем службы, чтобы избежать конфликта. В любом случае установка не укажет имя службы. Если у меня есть только доступ к двоичному файлу, есть ли способ переопределить имя службы, когда я устанавливаю его с помощью installutil?Любой способ переопределить имя службы Windows Windows без перекомпиляции?
ответ
Нужно ли использовать InstallUtil? Вот команды, чтобы сделать то, что вы хотите использовать СБН:
sc create MyService binPath= "MyService.exe" DisplayName= "MyService"
sc description MyService "My description"
Попробуйте установить службу с помощью sc.exe. Быстрый поиск даст много документации. С помощью этого инструмента легко изменить существующие службы и/или добавить новые, включая имена.
Редактировать: Я устанавливаю свои сервисы .NET с помощью этого инструмента.
Это не правда, что InstallUtil не позволяет настроить имя службы. Я делаю это все время, как это
InstallUtil.exe /servicename="<service name>" "<path to service exe>"
не работает для меня даже с cmd с привилегиями администратора. –
, если у вас уже есть служба с тем же именем, что и exe, она выдаст ошибку 'System.ComponentModel.Win32Exception: указанная служба уже существует'. Я пытался установить 2 экземпляра одного и того же сервиса и называть их по-разному. Используйте методы создания sc, приведенные ниже, ответы – PUG
Не работает. Предоставляет ошибку, что мой сервис уже существует. – Loophole
Это точно работает для меня!
Я надеюсь, что кто-то сможет это использовать. Установщик проект
- Добавить к вашим услугам
Добавить метод, чтобы получить имя CustomService
private void RetrieveServiceName() { var serviceName = Context.Parameters["servicename"]; if (!string.IsNullOrEmpty(serviceName)) { this.SomeService.ServiceName = serviceName; this.SomeService.DisplayName = serviceName; } }
вызов по установке и удалению
public override void Install(System.Collections.IDictionary stateSaver) { RetrieveServiceName(); base.Install(stateSaver); } public override void Uninstall(System.Collections.IDictionary savedState) { RetrieveServiceName(); base.Uninstall(savedState); }
installutil /servicename=”My Service [SysTest]” d:\pathToMyService\Service.exe
ОЧЕНЬ полезный - спасибо. – Mani5556
Это было очень полезно, мне пришлось перекомпилировать мой служебный исполняемый файл, чтобы он работал, как только я добавил этот код, это не проблема для меня. –
- 1. urllib2 в Python 2.6.4: Любой способ переопределить файлы хостов Windows?
- 2. Установка службы Windows без восстановления
- 3. Любой способ заполнить проводник Windows?
- 4. Как изменить имя службы Windows?
- 5. pushwoosh имя службы windows phone
- 6. Удаление службы Windows без EXE
- 7. Развертывание службы Windows без Installshield
- 8. Как переопределить @WebInitParam сервлета без перекомпиляции?
- 9. Любой способ обойти учетную запись домена Windows?
- 10. Простой способ отладки службы Windows
- 11. Службы Windows
- 12. Переопределить имя службы ServiceStack
- 13. Запуск службы windows без регистрации
- 14. службы windows
- 15. службы Windows
- 16. Любой способ подсчета количества щелчков Windows (C#)?
- 17. Любой способ мониторинга номеров установки приложения Windows?
- 18. Как изменить отображаемое имя службы C++ windows?
- 19. службы windows
- 20. службы windows
- 21. службы windows
- 22. Простой способ запускать и останавливать службы Windows в Windows XP
- 23. Службы Windows Windows прекратились внезапно
- 24. Каков наилучший способ автоматизации развертывания службы Windows?
- 25. Обновления зависимой DLL без перекомпиляции всего приложения
- 26. Отладка службы Windows на машине без отладки
- 27. Службы Windows Phone app
- 28. Имя пользователя Windows без использования ActiveX Control
- 29. Удаленная установка службы windows
- 30. Соответствующий способ демонстрации службы Windows для клиента
Это похоже на то, что я хочу - однако я не могу заставить его работать. Я просто получаю сообщение об использовании. – Nathan
Моя проблема заключалась в том, что, по-видимому, * должно * быть пробелом между знаком равенства и значением binPath, например. sc создать ahSchedulerService binPath = "MyService.exe", а не sc создать ahSchedulerService binPath = "MyService.exe". – Nathan
А, я забыл об этом. Извините за плохой пример. –