Рассмотрим особенности предоставления прав удаленного доступа к списку служб, запущенных на сервере, доменным пользователем, у которых отсутствуют права локальных администраторов. По сути задача сводится к предоставлению доступа на удаленное подключение к интерфейсу диспетчера управления службами — Service Control Manager ( SCManager ).
Как выглядит проблема. Допустим, мы хотим, чтобы удаленный пользователь / или система мониторинга могли опрашивать состояние служб на некоем сервере. По понятным причинам этот удаленный пользователь не имеет прав административных права и права на локальный вход на сервер.
При попытке подключиться и получить список служб на удаленном компьютере с помощью консоли services.msc, пользователь получает ошибку:
Windows was unable to open service control manager database on computer_name
Error 5: Access is denied.
C:Windowssystem32>sc \obts-01 query
Рассмотрим, как предоставить удаленный доступ к диспетчеру Service Control Manager для получения списка служб сервера и возможность получения их статусов обычным пользователям (без прав администратора) на примере Windows Server 2012 R2.
Текущие разрешения менеджера сервисов (SCM) можно получить с помощью утилиты sc . exe , выполнив в командной строке, запущенной с правами администратора:
sc sdshow scmanager
Команда вернет примерно такую SDDL строку:
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
Следующий этап – получение SID пользователя или группы, которой мы хотим предоставить удаленный доступ к SCM ( Как получить SID пользователя по имени ). К примеру, получим SID AD группы msk-hd так:
Get-ADgroup -Identity 'msk-hd' | select SID
SID
---
S-1-5-21-2470146451-3958456388-2988885117-23703978
В текстовом редакторе в SDDL строке нужно скопировать блок ( A;; CCLCRPRC;;; IU) – (IU – означает Interactive Users)), заменить в скопированном блоке IU на SID пользователя/группы и вставить полученную строку перед S: .
В нашем случае получилась такая строка:
D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC )(A;;CCLCRPRC;;; S-1-5-21-2470146451-3958456388-2988885117-23703978 ) S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)
А теперь с помощью sc.exe изменим параметры дескриптора безопасности Service Control Manager:
sc sdset scmanager “D:(A;;CC;;;AU)(A;;CCLCRPRC;;;IU)(A;;CCLCRPRC;;;SU)(A;;CCLCRPWPRC;;;SY)(A;;KA;;;BA)(A;;CC;;;AC)(A;;CCLCRPRC;;;S-1-5-21-2470146451-3958456388-2988885117-23703978)S:(AU;FA;KA;;;WD)(AU;OIIOFA;GA;;;WD)“
Проверим, что теперь удаленный пользователь может получать список служб и их статус с помощью консоли управления службами (services.msc) и с помощью запроса sc \server-name1 query
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…