Даем права бесправным
Постановка задачи
Появилась задача дать локальные права администраторов и право использования удаленного доступа нескольким ИТ инженерам на группе серверов. Задача усложнялась двумя факторами:
-
Инженеры не имели прав администраторов в домене
-
Язык систем был различным и группы администраторов и пользователей удаленного рабочего стола имели отличающиеся имена.
Решение
Для того чтобы обойти первый фактор достаточно было добавить учетные записи инженеров в группы локальных администраторов и группу пользователей RDP (Удаленного рабочего стола) на компьютерах, где планировались работы.
Для того, чтобы скрипт отработал не зависимо от языка установленного на системе воспользовались идентификаторами SID групп в которые необходимо было добавить учетные записи. Источником данных послужила статья на сайте Microsoft. В операционных системах нам понадобятся следующие номера SID:
-
S-1-5-32-544 - Администраторы (Administrators)
-
S-1-5-32-555 - Пользователи удаленного рабочего стола (Remote Desktop Users)
В качестве инструмента для выполнения задачи лучше всего подходит PowerShell. Был создан скрипт, который в качестве параметра получает имя учетной записи и добавляет его в группы с найденными SID.
$user=$args[0]
echo "User $user will be added"
$domain = $(Get-Childitem env:userdomain).value
$adm = (Get-WmiObject -Query "Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-544'").Name
$rdp = (Get-WmiObject -Query "Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-555'").Name
net localgroup $adm $domain\$user /add
net localgroup $rdp $domain\$user /add
Скрипт загрузим с помощью инструмента Manage Files на сервер Kaseya и напишем процедуру, которая загрузит скрипт на конечную машину и выполнит его для каждого пользователя. В первой строке выберем функцию Write File и в качестве параметра выберем наш скрипт
В качестве места размещения скрипта выберем рабочий каталог Kaseya:
#vAgentConfiguration.agentTempDir#\maintenance\user\AddUser2AdminRD.ps1
Вторая команда выполнит этот скрипт в среде PowerShell с правами системы и передаст в качестве аргумента учетную запись, которой необходимо дать права. Полная процедура агента выглядит так:
Тестирование
Для того, чтобы протестировать решение создадим тестового пользователя в домене с учетной записью user:
user входит только в группу Users
Добавлять будем на компьютере k9dw10. В Kaseya Live Connect узнаем учетные записи, входящие в группу Администраторы:

Процедура агента успешно выполнилась на удаленном компьютере

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