Меню

Настройка служб для отдельного пользователя



Как предоставить обычным пользователям права на запуск/остановку служб Windows?

По умолчанию обычные пользователи (без прав администратора) не могут управлять системными службами Windows. Это означает, что пользовали не могут остановить, запустить (перезапустить), изменить настройки и разрешения служб Windows. В этой статье мы разберем несколько способов управления правами на службы Windows. В частности, мы покажем, как предоставить обычному пользователю, без прав администратора Windows, права на запуск, остановку и перезапуск определенной службы.

Предположим, нам нужно предоставить доменной учетной записи contoso\tuser права на перезапуск службы печати (Print Spooler) с системным именем Spooler. При попытке перезапустить службу под пользователей появляется ошибка: System error 5 has occurred. Access is denied.

Простого и удобного встроенного инструмента для управления разрешениями на службы в Windows нет. Мы рассмотрим несколько способ предоставления пользователю прав на службу:

Какой из них проще и удобнее – решать Вам.

Управление правами на службы с помощью встроенной утилиты SC.exe (Service controller)

Стандартный, встроенный в Windows способ управления правами на службы системы предусматривает использование консольной утилиты sc.exe (Service Controller).

Главная, проблема – зубодробительный синтаксис формата предоставления прав на сервис (используется формат SDDL — Security Description Definition Language).

Получить текущие разрешения на службу в виде SDDL строки можно так:

sc.exe sdshow Spooler

Что значат все эти символы?

Первая буква после скобок означает: разрешить (A, Allow) или запретить (D, Deny).

Следующая пачка символов – назначаемые права.

Последние 2 буквы — объекты (группа пользователей или SID), котором нужно назначить права. Есть список предустановленных групп.

AO Account operators
RU Alias to allow previous Windows 2000
AN Anonymous logon
AU Authenticated users
BA Built-in administrators
BG Built-in guests
BO Backup operators
BU Built-in users
CA Certificate server administrators
CG Creator group
CO Creator owner
DA Domain administrators
DC Domain computers
DD Domain controllers
DG Domain guests
DU Domain users
EA Enterprise administrators
ED Enterprise domain controllers
WD Everyone
PA Group Policy administrators
IU Interactively logged-on user
LA Local administrator
LG Local guest
LS Local service account
SY Local system
NU Network logon user
NO Network configuration operators
NS Network service account
PO Printer operators
PS Personal self
PU Power users
RS RAS servers group
RD Terminal server users
RE Replicator
RC Restricted code
SA Schema administrators
SO Server operators
SU Service logon user

Можно вместо предустановленной группы явно указать пользователя или группу по SID. Получить SID пользователя для текущего пользователя можно с помощью команды:

или для любого пользователя домена с помощью PowerShell комаднлета Get-ADUser:

Get-ADUser -Identity ‘iipeshkov’ | select SID

SID доменной группы можно получить с помощью командлета Get-ADGroup:

Чтобы назначить SDDL строку с правами на определённую службу, используется команда sc sdset. К примеру, права пользователю на службу spooler могут быть предоставлены следующей командой:
sc sdset Spooler «D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;RPWPCR;;;S-1-5-21-2133228432-2794320136-1823075350-1000)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)»

Предоставление прав на перезапуск службы с помощью SubInACL

Для управления правами служб Windows гораздо проще воспользоваться консольной утилитой SubInACL из комплекта Sysinternals от Марка Руссиновича (права на которую вместе с автором теперь принадлежат Microsoft). Синтаксис этой утилиты гораздо проще и удобнее для восприятия. Рассмотрим, как предоставить права перезапуск службы с помощью SubInACL:

  1. Скачайте subibacl,msi со страницы (https://www.microsoft.com/en-us/download/details.aspx?id=23510) и установите ее на целевой системе;
  2. В командной строке с правами администратора перейдите в каталог с утилитой: cd “C:\Program Files (x86)\Windows Resource Kits\Tools\ ”
  3. Выполните команду: subinacl.exe /service Spooler /grant=contoso\tuser=PTO

Если вы все сделали верно, служба должна перезапуститься.

subinacl.exe /service Spooler /revoke=contoso\tuser

Process Explorer: Установка разрешений на службу

Достаточно просто изменить разрешения на службу с помощью еще одной утилиты Sysinternals — Process Explorer. Запустите Process Explorer с правами администратора и найдите в списке процессов процесс нужной вам службы. В нашем примере это spoolsv.exe (диспетчер очереди печати — C:\Windows\System32\spoolsv.exe). Откройте свойства процесса и перейдите на вкладку Services.

Нажмите на кнопку Permissions и в открывшемся окне добавьте пользователя или группу, которой нужно предоставить права на сервис и выберите уровень полномочий (Full Control/Write/Read).

Назначаем разрешения на службу с помощью PowerShell

В галерее TechNet имеется отдельный неофициальный модуль PowerShell для управления разрешениями на разные объекты Windows — PowerShellAccessControl Module (скачать его можно здесь). Этот модуль позволяет управлять правами на службы. Импортируйте модуль в свою PS сессию:

Получить эффективные разрешения на конкретную службу из PowerShell можно так:

Get-Service spooler | Get-EffectiveAccess -Principal corp\tuser

Чтобы предоставить обычному пользователю права на запуск и остановку службы, выполните:

Get-Service spooler | Add-AccessControlEntry -ServiceAccessRights Start,Stop -Principal corp\tuser

Используем шаблоны безопасности (Security Templates) для управления разрешениями служб

Более наглядный (но и требующий большего количества действий) графический способ управления правами на службы – с помощью шаблонов безопасности. Для реализации, откройте консоль mmc.exe и добавьте оснастку Security Templates.

Создадим новый шаблон (New Template).

Задайте имя нового шаблона и перейдите в раздел System Services. В списке служб выберите свою службу Print Spooler и откройте ее свойства.

Установите тип запуска (Automatic) и нажмите кнопку Edit Security.

С помощью кнопки Add добавьте учетную запись пользователя или группы, которым нужно предоставить права. В нашем случае, нам достаточно права Start, Stop and pause.

Сохраните шаблон (Save).

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

Осталось с помощью оснастки Security Configuration and Analysis создать новую базу данных (Open Database) и импортировать новый шаблон безопасности из файла Spooler User Rights.inf.

Примените шаблон, вызвав из контекстного меню команду Configure Computer Now.

Теперь можно под пользователем проверить, что у него появились права на управление службой Print Spooler.

Управление правами служб через групповые политики

Если нужно раздать пользователям права запуска/остановки сервиса сразу на множестве северов или компьютерах домена, проще всего воспользоваться возможностями групповых политик (GPO).

  1. Создайте новую или отредактируйте существующую GPO, назначьте ее на нужный контейнер с компьютерами в Active Directory. Перейдите в раздел политик Computer configuration -> Windows Settings -> Security Settings -> System Services;
  2. Найдите службу Spooler и аналогично методике с шаблонами безопасности, рассмотренной ранее, предоставьте права пользователю. Сохраните изменения;

Настройки безопасности для все служб, для которых вы изменили разрешения по-умолчанию хранятся в собственной ветке реестра HKLM\System\CurrentControlSet\Services\ \Security в параметре Security типа REG_BINARY.

Это означает, что одним из способов установки аналогичных разрешений на других компьютерах может быть экспорт/импорт данного параметра реестра (в том числе через GPO).

Итак, мы разобрали несколько способов управления правами на службы Windows, позволяющих предоставить произвольному пользователю любые права на системные службы. Если пользователю требуется удаленный доступ к службе, без предоставления ему прав локального входа в систему, нужно разрешить пользователю удаленно опрашивать Service Control Manager.

Источник

Настройка зависимостей запуска служб в Windows

В некоторых случаях необходимо настроить задержку запуска определенной службы Windows для того, чтобы дождаться окончания запуска другой службы. В этой небольшой статье рассмотрим процесс настройки зависимостей или даже целых цепочек зависимостей запуска служб при загрузке Windows.

Просмотреть зависимости служб Windows можно в консоли управления службам Services.msc. Выберите необходимую службу, откройте ее свойства и перейдите на вкладку Dependencies (Зависимости). Как вы видите, окно разделено на две секции: в верхней отображаются службы, от которых зависит данная службы (служба будет запущена после запуска всех служб из данного списка), а в нижней службы, зависимые от этой службы. Управлять зависимостями служб из этого окна нельзя. Вместо этого придется воспользоваться консольной утилитой sc.exe (Windows Service Control) или вручную редактировать реестр.

Для настройки зависимостей из командной строки используется команда sc.exe. Имейте в виду, что при установке зависимостей с помощью этой команды, текущие зависимости будут перезатёрты.

К примеру, выведем список зависимостей службы с именем MyService1:

sc qc «MyService1»

С помощью sc config можно добавить зависимости для службы. К примеру, мы хотим, чтобы служба MyService1 была зависима от службы MyService2, т.е. служба будет запущена только после успешного запуска службы MyService2. Для этого выполните команду:

sc config «MyService1» depend= «MyService2»

Если нужно указать несколько зависимостей, имена служб нужно перечислить через символ обратного слеша. Например, так:

sc config «MyService1» depend= «MyService2″/»MyService3»

Чтобы удалит все зависимости у определенной службы, выполните:

sc config «MyService1» depend= /

Для настройки зависимостей служб можно использовать реестр. Откройте редактор реестра и перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Внутри этого раздела для каждой службы имеется отдельная ветка. Выберите раздел с именем службы, которую вы хотите настроить.

Чтобы задать зависимости для выбранной службы, создайте новый параметр реестра типа REG_SZ с именем DependOnService. В значении параметра укажите имена служб, от которых должен зависеть данный сервис (по одной службе в каждой строке).

Источник

Как управлять службами в Windows

Что такое службы

Службы — это вид программ, которые работают в фоне и не требуют действий пользователя.

Службы могут как относиться к операционной системе Windows, так и быть сторонними приложениями. Примеры служб, которые может установить сам пользователь: веб-сервер, удалённый рабочий стол VNC, SSH служба, служба СУБД MySQL.

Управлять службами можно:

  • в графическом интерфейсе
  • командной строке
  • в PowerShell

Настройка служб в графическом интерфейсе

Чтобы открыть менеджер служб, введите в поиск «Службы» и нажмите Enter:

Ещё один способ открыть это окно, нажать Win+r и ввести:

Здесь, в столбце «Имя», вы увидите список служб, работающих в вашей системе, вместе с их Описанием. Вы также сможете увидеть их Статус — независимо от того, запущены они или остановлены, а также Типы запуска и Вход от имени.

Типы запуска служб Windows

Windows 10 предлагает четыре типа запуска:

  • Автоматически
  • Автоматически (отложенный запуск)
  • Вручную
  • Отключена

Запуск, остановка, отключение служб Windows

Чтобы запустить, остановить, приостановить, возобновить или перезапустить любую службу Windows, выберите службу и щёлкните её правой кнопкой мыши. Вам будут предложены эти варианты.

Если вы хотите управлять дополнительными опциями, дважды щёлкните Сервис, чтобы открыть окно его свойств.

Здесь, в раскрывающемся меню Тип запуска, вы сможете выбрать тип запуска для Сервиса.

В разделе «Состояние службы» вы увидите кнопки «Запустить», «Остановить», «Приостановить», «Продолжить».

В окне «Свойства» вы также увидите другие вкладки, такие как «Вход в систему», «Восстановление» и «Зависимости», которые предлагают дополнительные параметры и информацию.

После внесения изменений вам нужно будет нажать «Применить».

Управление службами с помощью командной строки

Вы также можете использовать командную строку для запуска, остановки, приостановки, возобновления обслуживания. Чтобы использовать консоль, откройте командную строку или PowerShell с правами администратора и выполните одну из следующих команд.

Чтобы запустить службу:

Например, для запуска службы mysql:

Чтобы остановить службу:

Например, для остановки службы mysql:

Чтобы приостановить службу (не все службы возможно поставить на паузу!):

Чтобы возобновить службу:

Для отключения автозапуска службы:

Например, для отключения последующих запусков службы mysql:

Для включения автозапуска службы:

Например, для включения автозапуска службы mysql:

Перечисление состояний активных служб и драйверов

Перечисление только служб Win32

Для просмотра состояния определённой службы:

Например, чтобы увидеть состояние службы Apache2.4:

Управление службами Windows с помощью PowerShell

PowerShell — это среда автоматизации задач и управления конфигурацией от Microsoft. В этом разделе мы познакомим вас с тем, как управлять службами Windows через PowerShell, поскольку это намного быстрее и эффективнее, чем другие методы.

Как вы, возможно, знаете, одной из наиболее важных частей каждой операционной системы является служба, которая проходит через неё, и в целом можно сказать, что каждая часть операционной системы, которая запускается, имеет определённую службу, которой можно управлять и контролировать.

Вот подробное руководство по использованию PowerShell для управления службами Windows.

Запустите терминал PowerShell с правами администратора. Для этого нажмите Win+x и выберите Windows PowerShell (администратор):

Сначала вы должны получить список доступных служб, используя следующую команду:

Это образец вывода, который вы получите.

В выводе по умолчанию вы увидите 3 основных раздела: Status (Статус), Name (Имя) и DisplayName (Отображаемое имя). Теперь, если вы хотите найти и перечислить конкретный сервис, вы можете отфильтровать любой из параметров.

Показать все службы, названия которых начинаются с wi:

Показать все службы, отображаемые имена которых начинаются с win:

Примечание: если вы хотите получить доступ к другому компьютеру через сеть, вы можете просмотреть список служб для этой системы с помощью этой команды:

Важной частью управления услугами является управление зависимыми службами.

Чтобы получить доступ к списку DependentServices для конкретной службы, мы можем использовать следующую команду:

Вы также можете использовать параметр RequiredServices, чтобы получить список предварительных условий обслуживания.

Таким образом, с помощью приведённых выше команд мы можем найти название службы, которая вам нужна, увидеть статус и связанные службы или их предварительные условия. Теперь рассмотрим команды управления службами.

Для остановки службы с помощью PowerShell вы можете использовать следующую команду:

Последующие примеры будут показываться на службе Apache2.4. То есть в следующих командах замените «Apache2.4» на имя интересующей вас службы.

Для запуска службы в PowerShell вы можете использовать эту команду:

Одной из наиболее часто используемых команд для работы со службами является команда перезапуска службы. Структура команды перезапуска службы такова:

И наконец, следующая команда используется для временного приостановления службы.

Для изменения режима запуска службы используйте команду вида:

В качестве ТИП_ЗАПУСКА могут быть:

  • Automatic — служба будет запущена или была запущена операционной системой при запуске системы. Если автоматически запускаемая служба зависит от запускаемой вручную службы, запускаемая вручную служба также запускается автоматически при запуске системы.
  • AutomaticDelayedStart — запускается вскоре после загрузки системы.
  • Disabled — служба отключена и не может быть запущена пользователем или приложением.
  • InvalidValue — не имеет никакого эффекта. Командлет не возвращает ошибку, но StartupType службы не изменяется.
  • Manual — служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.

Это наиболее часто используемые команды для управления службами в PowerShell. Для получения дополнительной информации о командах PowerShell и о том, как они работают, используйте команду Get-Help.

Источник

Читайте также:  Настройка d800 для видеосъемки
Adblock
detector