Стартовые сервисы в пакетном файле на окнах 7

У меня есть довольно простой пакетный файл, который делает всего одну вещь - "сетевой запуск myservice". Этот пакетный файл получает редактора ярлыка в группе программ установщиком так, чтобы пользователи могли просто нажать на значок и получить запущенные вещи (или остановился). Все работы хорошо в XP для пользователей с правами администратора. Но вещи становятся волосатыми на Win7 как пакетная потребность, которая будет выполнена "как администратор" явно, и часто пользователи не знают это. Таким образом, мой вопрос состоит в том, как сделать эту товарищескую встречу? Говоря пользователям щелкнуть правой кнопкой и работать, поскольку администратор на Win7 и просто нажать на XP является видом странного скручивания. Мне нужна умная автоматическая простая штука.

Я мог, вероятно, использовать "runas/user:administrator" в самом пакете, но эта учетная запись "администратора" не могла бы быть доступной на некоторых машинах. Я ищу универсальное решение для установки вещей как это на любом поле Windows.

Идеи? Как Вы сделали бы это?

5
задан 22.01.2011, 13:08

3 ответа

Загрузите Повышение PowerToys для Windows от Microsoft. Можно затем включать сценарии в процесс установки так, чтобы можно было работать от пакетного файла elevate net start servicename и это даст им подсказку повышения контроля учётных записей. Пока пользователь имеет административные привилегии на компьютере или может заставить administator выполнять повышение для них, это выполнит команду с поднятыми полномочиями и должно работать просто великолепно. Никакая потребность указать имя пользователя или что-либо. Существует целый раздел в той статье о создании сценария, который может обнаружить, если это работает с достаточным уровнем доступа и в противном случае поднимает себя.

3
ответ дан 09.01.2020, 03:24

Измените полномочия myservice сервис, чтобы позволить этому быть запущенным обычными пользователями.


Простой способ сделать это должно использовать Проводник Процесса: запустите сервис, дважды щелкните по его процессу в ProcExp, откройте вкладку Services и используйте кнопку Permissions.

(Process Explorer)

(ProcExp: Properties - Services)


Твердый путь:

C:\>sc sdshow Schedule

D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPLOCRRC;;;PU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)

Отображенный текст является Строкой Дескриптора безопасности. Каждый (...) элемент является строкой ACE.

Например, добавление этого к SD позволило бы Пользователям управлять сервисом:

(A;;GX;;;BU)

BU строка SID для Встроенной Группы пользователей. В большинстве целей, предоставляя GX (GENERIC_EXECUTE) должен быть достаточно.

Примечание: "Права" в строке ACE, кажется, не соответствуют никаким очевидным способом к фактическим данным полномочиям. Например, "Запустите, сервис" RP (READ_PROPERTY) и "Останавливаются, сервис" WP (WRITE_PROPERTY).

2
ответ дан 09.01.2020, 03:24

Проверьте PsTools, он содержит названное приложение psservice.exe, для запуска сервиса это использует следующую командную строку:

psservice.exe [\\Computer [-u Username [-p Password]]] start <svc>

Если это будет выполнено restriced пользователями, то можно хотеть перенести пакетный файл в exe, чтобы препятствовать тому, чтобы пользователи видели пароль администратора.

0
ответ дан 09.01.2020, 03:24

Теги

Похожие вопросы