Как да предоставите на обикновените потребители права за стартиране / спиране на услуги в Windows

По подразбиране редовните потребители, които нямат права на системния администратор, не могат да управляват услугите на Windows (и повечето приложения). Това означава, че те не могат да спрат, да стартират (рестартират), да променят настройките и разрешенията на такива услуги. В някои случаи все още се изисква потребителят да има права да рестартира и управлява определени услуги. В тази статия ще ви преведем през няколко начина за управление на правата на Windows Services. По-специално ще покажем как да предоставим на обикновен потребител, без правата на администратор на Windows, правото да стартира, спира и рестартира определена услуга.

Да предположим, че трябва да предоставим акаунт в домейн Contoso\ tuser права за рестартиране на услугата за печат (Print Spooler) със системното име Макара.

Няма прост и удобен вграден инструмент за управление на разрешения за обслужване в Windows. Ще разгледаме няколко начина за предоставяне на правата на потребителите на услугата:

Съдържание:

  • Вградена помощна програма SC.exe (Сервизен контролер)
  • SubInACL: Присвояване на права за обслужване чрез Sysinternals
  • Изследовател на процеси: Настройка на разрешения за услуги
  • Шаблон за сигурност
  • Управление на правата на услуги чрез групови политики
  • Присвойте разрешения за обслужване чрез PowerShell

Кой е по-лесен и по-удобен, зависи от вас..

Вградена помощна програма SC.exe (Сервизен контролер)

Стандартният вграден метод на Windows за управление на правата върху системните услуги включва използването на помощна програма SC.Търсейки (Сервизен контролер).

забележка. Пример за използване на sc.exe за ръчно премахване на услуга в Windows.

Основният проблем е яростният синтаксис на формата за предоставяне на права на услуга (SDDL формат).

Можете да получите текущите права върху услугата по този начин:

sc.exe sdshow Spooler

D: (A;; CCLCSWLOCRRC;;; AU) (A;; CCDCLCSWRPWPDTLOCRSDRCWDWO;;; BA) (A;; CCLCSWRPWPDTLOCRRC ;;; SY) S: (AU; FA; CCDCLCSWRPWPDTDOCL

Какво означават всички тези символи??

S: - Списък за контрол на достъпа до системата (SACL)
D: - Дискретен ACL (DACL)

Първата буква след скобите означава: разрешаване (A, разрешаване) или отказ (D, отричане).

Следващият куп герои - права на присвояване.
CC - SERVICE_QUERY_CONFIG (заявка за настройки на услугата)
LC - SERVICE_QUERY_STATUS (проучване на състоянието на услугата)
SW - SERVICE_ENUMERATE_DEPENDENTS (проучване на зависимостта)
LO - SERVICE_INTERROGATE
CR - SERVICE_USER_DEFINED_CONTROL
RC - READ_CONTROL
RP - SERVICE_START (стартиране на услугата)
WP - SERVICE_STOP (спиране на услугата)
DT - SERVICE_PAUSE_CONTINUE (спиране, продължаване на услугата)

Последните 2 букви, обекти (потребителска група или SID), на които са предоставени правата. Има списък с предварително дефинирани групи.

Аутентифицирани потребители

Оператори на AO акаунти
RU Alias ​​да разреши предишен Windows 2000
Анонимен вход
Аутентифицирани потребители
BA Вградени администратори
BG Вградени гости
Оператори за архивиране на Bo
BU Вградени потребители
Администратори на сървъри за сертификати на CA
CG Създател група
CO Собственик създател
DA администратори на домейни
Компютри с DC домейн
DD Контролери на домейни
Гости на DG Domain
Потребители на DU Domain
Администратори на EA Enterprise
Контролери на домейни ED Enterprise
Wd всички
Администратори на групови правила на PA
IU Интерактивно влезлият потребител
Локален администратор на LA
LG Local гост
LS Local account account
SY локална система
Потребител за влизане в NU Network
НЕ Мрежови оператори за конфигуриране
Акаунт на NS Network service
Оператори за PO принтери
PS Личен аз
Потребители на PU Power
RS RAS сървъри група
Потребители на RD Terminal сървъри
RE репликатор
RC ограничен код
Администратори на схемата на SA
SO оператори на сървъри
Потребител за влизане в SU Service

Вместо предварително дефинирана група, можете изрично да посочите потребител или група по SID. Можете да получите потребителския SID за текущия потребител, като използвате командата:

whoami / потребител

или за всеки потребител на домейн, използващ командлета PowerShell Get-ADUser:

Get-ADUser -Identity 'iipeshkov' | изберете SID

Например, права на потребител за услугата на спулера могат да бъдат предоставени със следната команда:

sc sdset Spooler "D: (A;; CCLCSWRPWPDTLOCRRC;;; SY) (A;; CCDCLCSWRPWPDTLOCRSDRCWDWO;;; BA) (A;; CCLCSWLOCRRC ;;; IU; (A;; CCLCSWLOCRRC RPWPCR ;;; S-1-5-21-2133228432-2794320136-1823075350-1000) S: (AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; WD) "

SubInACL: Присвояване на права за обслужване чрез Sysinternals

Много по-лесно е да използвате помощната програма за конзолата. SubInACL от пакета Sysinternals от Марк Русинович (на който Microsoft вече притежава правата с автора). Синтаксисът на тази помощна програма е много по-опростен и по-удобен за възприятие. Как да предоставите права за рестартиране на услуга с помощта на SubInACL:

  1. изтегляне MSI от страницата (https://www.microsoft.com/en-us/download/details.aspx?id=23510) и я инсталирайте в целевата система.
  2. В командния ред с права на администратор отидете в директорията с помощната програма: cd „C: \ програмни файлове (x86) \ набори от ресурси за ресурси \ инструменти \)"
  3. Изпълнете командата: subinacl.exe / service Spooler / grant = contoso \ tuser = PTO забележка. В този случай ние предоставихме на потребителя правото да спре (Пауза / Продължи), да стартира (Старт) и да спре (Спрете) услугата. Пълен списък на наличните разрешения:F: Пълен контрол
    R: Общо четене
    W: Общо писане
    X: Generic eXecute
    L: Прочетете контрола
    Въпрос: Конфигурация на услугата за заявки
    S: Състояние на услугата за заявки
    Д: Избройте зависими услуги
    В: Конфигурация за промяна на услугата
    T: Стартиране на услугата
    O: Спиране на услугата
    P: Пауза / продължаване на услугата
    I: Разпит
    U: Команди за управление, зададени от потребителя

    Ако трябва да предоставите права на услуга, работеща на отдалечен компютър, синтаксисът ще бъде следният:
    subinacl / SERVICE \\ msk-buh01 \ spooler / grant = contoso \ tuser = F

  4. Остава да влезете в тази система под потребителския акаунт и да опитате да рестартирате услугата с командите:
    мрежов спирал
    мрежов стартер

Ако сте направили всичко както трябва, услугата трябва да спре и да се рестартира.

Изследовател на процеси: Настройка на разрешения за услуги

Просто променете разрешенията за услугата, като използвате друга помощна програма Sysinternals - процес изследовател. Стартирайте Process Explorer с права на администратор и намерете процеса на услугата, от която се нуждаете, в списъка с процеси. В нашия пример това е spoolsv.exe (спулерът за печат е C: \ Windows \ System32 \ spoolsv.exe). Отворете свойствата на процеса и отидете на раздела Услуги.

Кликнете върху бутона Permissions и в прозореца, който се отваря, добавете потребителя или групата, на която трябва да предоставите права за услугата и нивото на авторитет.

Шаблон за сигурност

По-визуален (но също така изискващ повече действия) графичен начин за управление на правата върху услугите е чрез използване на шаблони за сигурност. За да внедрите, отворете конзолата MMC.Търсейки и добавете щракване сигурност Templates.

Създайте нов шаблон (Нов шаблон).

Име на новия шаблон и отидете на система Услуги. В списъка с услуги изберете вашата услуга Спор за печат и отворете неговите свойства.

Задаване на типа на стартиране (автоматичен) и натиснете бутона Редактиране на сигурността.

Използване на бутон Добави Добавете акаунта на потребителя или групата, на която искате да предоставите права. В нашия случай имаме достатъчно право начало, Стоп и пауза.

Запазване на шаблона (Запазване).

забележка. Съдържанието на шаблона за защита се записва във inf файла в директория C: \ Потребители \ потребителско име \ Документи \ Защита \ Шаблони

Ако отворите този файл, можете да видите, че данните за правата за достъп се запазват в споменатия по-рано формат SDDL. Така полученият низ може да се използва като аргументи към командата sc.exe..

[Unicode] Unicode = да [Версия] подпис = "$ CHICAGO $" Ревизия = 1 [Обща настройка на услугата] "Спойлер", 2, "D: AR (A;; CCDCLCSWRPWPDTLOCRSDRCWDWO ;;; SY) (A;; CCDCLCSWRPWPDTLOCODRWW ;; BA) (A; CCLCSWLOCRRC ;;; IU) (A; RPWPDTRC;; S-1-5-21-3243688314-1354026805-3292651841-1127) S: (AU; FA; CCDCLCSWRPWPDTLOCRSDRCWDWO ;; ) "

Отляво с щракане Конфигурация и анализ на сигурността създайте нова база данни (Open Database) и импортирайте нашия шаблон за сигурност от файл Права на потребителя на Spooler.inf.

Прилагаме шаблона, като извикваме командата от контекстното меню Конфигуриране компютър сега.

Сега можете да проверите като потребител, че той има права да управлява услугата Print Spooler.

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

Ако трябва да дадете на потребителите право да стартират / спират услугата веднага на много сървъри или компютри с домейни, най-лесният начин е да използват възможностите на груповите политики (GPO).

  1. Създайте нов или редактирайте съществуващ GPO, присвойте го на необходимия контейнер с компютри в Active Directory. Отидете в секцията с политики Компютърна конфигурация -> Настройки на Windows -> Настройки за защита -> Системни услуги.
  2. Намерете услугата Spooler и, подобно на обсъжданата по-рано методология, предоставете потребителски права. Запазване на промените.забележка. По-рано показахме как с помощта на подобен GPO можете да скриете всяка услуга на Windows от всички потребители на системата.
  3. Остава да изчакаме прилагането на политиките на клиентските компютри и да проверим приложението на настройките за правата на услуги.

Присвойте разрешения за обслужване чрез PowerShell

TechNet Gallery има отделен неофициален PowerShell модул за управление на разрешения за различни обекти на Windows - PowerShellAccessControl модул (можете да го изтеглите тук). Този модул му позволява да управлява правата за обслужване. Импортирайте модула във вашата сесия:

Импорт-модул PowerShellAccessControl

Можете да получите ефективни разрешения за конкретна услуга от PowerShell така:

Get-Service спойлер | Get-EffectiveAccess -Основен корпус \ tuser

За да предоставите на обикновения потребител правото да стартира и спре услугата, направете:

Get-Service спойлер | Add-AccessControlEntry -ServiceAccessRights Старт, Стоп -Принципален корпус \ tuser

И така, разгледахме няколко начина за управление на правата за услуги на Windows, което ви позволява да предоставите на всеки потребител каквито и да било права върху системните услуги. В случай, че потребителят се нуждае от отдалечен достъп до услугата, без да му предоставя права за местно влизане, трябва да разрешите на потребителя да извършва анкетиране от разстояние Service Control Manager.