Как установить DACL службы Windows, чтобы обычный пользователь мог запускать / останавливать службу

У меня есть приложение-служба Windows, установщик которого я создаю с помощью Install Shield. Как установить DACL сервиса при установке? Я знаю, что могу сделать "sc sdset" после установки. Но я хочу установить повышенные права как часть процесса установки. Есть способ сделать это?

2 ответа

Решение

Сразу после установки выполните эту команду как часть процедуры после установки: SUBINACL /SERVICE /GRANT=S-1-5-32-545=TO

Это дает службе Windows права администратора.

Я предполагаю, что вы правильно создали установку вашего сервиса. Для подтверждения этого может пригодиться следующий ресурс: Использование InstallShield для создания установки, устанавливающей службы Windows, а также библиотека справки InstallShield: установка, управление и настройка служб Windows.

Я не уверен, что настройки DACL можно установить с помощью IDE, вы, вероятно, сможете быстро изучить эту опцию, но я предполагаю, что ее нет, и вы хотите сделать это вручную. В этом случае самое простое решение, которое я вижу, - это создать Custom Action (CA) и установить для "In-Script Execution" значение " Deferred Execution in System Context". Делая это, вы устанавливаете повышенное выполнение этого CA. Запланируйте этот CA где-нибудь в Последовательности выполнения (не в последовательности UI), вероятно, сразу после "InstallServices". Теперь у вас есть несколько вариантов действий этого ЦС. Например, вы можете просто использовать командную строку "sc" для установки желаемых разрешений. Вы также можете написать VBScript CA, чтобы сделать то же самое. Вы можете написать установочный помощник DLL с регистрацией для вас. Все в ваших руках. Подробнее об этом варианте там.

Другие вопросы по тегам