| Параметр | Описание | Ключи |
|---|
./dsapi connect-server
| Подключение к серверу и создание сессии.Метод: POST /api/v1/login | | Ключ | Значение |
|---|
| --domain | Домен для поиска контроллера домена по SRV-записи | | --server | Адрес контроллера домена. Если не указан, определяется по ключу "--domain". Адрес не должен начинаться с протокола (http:// или https://). Для выбора протокола необходимо использовать ключ "--usessl" | | --login | Обязательный ключ. Логин для входа | | --password | Пароль. Если не указан, будет запрошен интерактивно | | --port | Порт (по умолчанию 443) | | --usessl | Флаг включения SSL. С помощью данного флага доступна смена протокола (http:// или https://). По умолчанию значение "true" (https://) | | --trust-all-certificates | Доверять всем TLS-сертификатам (включая самоподписанным и недействительным, это небезопасно). По умолчанию значение "false" (доверие выключено) |
Примеры использования:
# Поиск КД через домен example.com и подключение по HTTP и порту 83
./dsapi connect-server --domain example.com --login Administrator --password Avanp0st --port 80 --usessl=false
# Подключение напрямую по HTTP и порту 83
./dsapi connect-server --server ds01.example.com --login Administrator --password Avanp0st --port 80 --usessl=false
|
./dsapi invoke-method
| Выполнение произвольного HTTP‑запроса к REST API.Результат: Тело ответа форматируется как JSON (с отступами). При пустом ответе выводится сообщение: "Ответ пустой". | | Ключ | Значение |
|---|
| --method | Обязательный ключ. Путь метода, например: "/api/v1/groups" | | --type | Обязательный ключ. HTTP‑метод: GET, POST, PUT, PATCH, DELETE и др. | | --attributes | Тело HTTP‑запроса. Внимание! Тело запроса требуется указывать в одинарных кавычках. Если тело запроса большое и возникают проблемы в терминале, следует использовать ключ "--file" | | --file | Путь к файлу с телом HTTP‑запроса. Внимание! Нельзя одновременно использовать ключи "--attributes" и "--file" |
Примеры использования:
./dsapi invoke-method --method "/api/v1/users?cookie=&pageSize=10" --type GET
./dsapi invoke-method --method "/api/v1/users?cookie=&pageSize=10&search=Audit" --type GET
./dsapi invoke-method --method "/api/v1/hierarchy" --type POST --attributes '{"baseObject":"ou=hosts,dc=example,dc=com",
"filter":{"mode":"ou","mask":"","sizeLimit":1001},"attributes":["description","objectclass","cn","uid","dn","ou"]}'
./dsapi invoke-method --method "/api/v1/hierarchy" --type POST --file "/home/ads/input.json"
|
Управление пользователями |
|---|
./dsapi add-user | Создание нового пользователя.
Метод: POST /api/v1/users Результат: Пользователь создан, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. | | Ключ | Значение |
|---|
--cn | Обязательный ключ. Общее имя объекта. | | --password | Обязательный ключ. Пароль пользователя | | --givenname | Имя | | --surname | Фамилия | | --mail | Адрес электронной почты | | --photo | Путь/идентификатор фото | | --mobile | Мобильный телефон | | --requirepasswordchange | Флаг для включения требования смены пароля при следующем входе пользователя | | --passwordneverexpires | Флаг для отключения срока жизни пароля. При значении "true" срок жизни пароля никогда не истекает. По умолчанию значение "true" | | | | --parent | | | |
./dsapi add-user --cn lipov --password Avanp0st
|
./dsapi get-user | Получение информации о пользователе.
Метод: GET /api/v1/users/{uid}
Результат: Выводятся актуальные данные пользователя. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-user --identity "cn=lipov,ou=users,dc=example,dc=com"
|
./dsapi get-users | Получение списка пользователей.
Метод: GET /api/v1/users/ Результат: Выводится список пользователей, соответствующих заданным параметрам. | | Ключ | Значение |
|---|
| --index | Индекс первой записи (смещение). Значение по умолчанию: 0 | | --size | Обязательный ключ. Количество записей на странице. Значение должно быть выше 0 | | --filter | Фильтр по CN. Будут выведены только объекты, имя которых начинается значением, указанным в фильтре. | | --parent | DN родительского объекта | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-users --size 10 --parent "cn=All Users,ou=groups,dc=example,dc=com"
|
./dsapi modify-user | Изменение атрибутов пользователя.
Метод: PUT /api/v1/users/{uid} Результат: Атрибуты пользователя изменены, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор изменяемого пользователя: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. | Атрибуты для изменения |
|---|
--cn | Общее имя объекта | --name | Имя | | --displayname | Отображаемое имя | --givenname | Имя | --surname | Фамилия | --middlename | Отчество | --initials | Инициалы | --gn | Заданное имя (given name) | --sn | Фамилия (surname) | --gecos | GECOS-информация (комментарий) | --samaccountname | Имя входа Windows | --gidnumber | GID группы | --homedirectory | Домашний каталог | --loginshell | Логин-шелл | --photo | Путь/идентификатор фото | --employeenumber | Номер сотрудника | Контактные данные |
|---|
--mail | Адрес электронной почты | --rfc822mailbox | Адрес электронной почты (RFC822) | --proxyaddresses | Прокси-адреса | --mobile | Мобильный телефон | --mobiletelephonenumber | Мобильный телефон | --telephonenumber | Телефон | --homephone | Домашний телефон | --hometelephonenumber | Домашний телефон | --facsimiletelephonenumber | Факс | --fax | Факс (сокращённо) | --pager | Пейджер | --pagertelephonenumber | Номер пейджера | --internationalisdnnumber | Международный ISDN-номер | --labeleduri | Метка URI | --x121address | X.121 адрес | --telexnumber | Номер телетекс | --teletexterminalidentity | Идентификатор телетекс-терминала | Организационная информация |
|---|
--company | Компания | --o | Название организации | --organizationname | Название организации (полное) | --organizationalunitname | Организационное подразделение (полное) | --department | Отдел | --departmentnumber | Номер отдела | --division | Подразделение | --title | Должность | --manager | Руководитель | --secretary | Секретарь | --employeetype | Тип сотрудника | --businesscategory | Категория бизнеса | --roomnumber | Номер комнаты | --physicaldeliveryofficename | Офис доставки | Адрес и местоположение |
|---|
--postaladdress | Почтовый адрес | --homepostaladdress | Домашний почтовый адрес | --registeredaddress | Зарегистрированный адрес | --street | Улица | --streetaddress | Адрес улицы | --postofficebox | Почтовый ящик | --postalcode | Почтовый индекс | --l | Населенный пункт | --localityname | Населенный пункт (полностью) | --st | Регион | --stateorprovincename | Название провинции | | --destinationindicator | Индикатор назначения | --preferreddeliverymethod | Предпочтительный способ доставки | Безопасность и пароль |
|---|
--accountexpires | Срок действия учётной записи | --logonhours | Часы входа в систему | --passwordneverexpires | Флаг для отключения срока жизни пароля. При значении "true" срок жизни пароля никогда не истекает. По умолчанию значение "true" | --requirepasswordchange | Флаг для включения требования смены пароля при следующем входе пользователя | Прочее |
|---|
--description | Описание | --carlicense | Номер водительского удостоверения | --preferredlanguage | Предпочитаемый язык | --seealso | Ссылка на связанные объекты | --x500uniqueidentity | Уникальный идентификатор X.500 |
./dsapi modify-user --identity "cn=lipov,ou=users,dc=example,dc=com" --mail "lipov@avanpost.ru"
|
./dsapi delete-user | Удаление пользователя.
Метод: DELETE /api/v1/users/{uid} Результат: Выводится сообщение об успешном удалении. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор удаляемого пользователя: CN, DN или UID. |
./dsapi delete-user --identity "cn=lipov,ou=users,dc=example,dc=com"
|
Управление группами |
./dsapi add-group | Создание новой группы.
Метод: POST /api/v1/groups Результат: Группа создана, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. | | Ключ | Значение |
|---|
--cn | Обязательный ключ. Общее имя объекта | --description | Описание | | --parent | | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi add-group --cn "new_group" --parent "cn=All Users,ou=groups,dc=example,dc=com"
|
./dsapi get-group | Получение информации о группе.
Метод: GET /api/v1/groups/{uid} Результат: Выводятся актуальные данные группы. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор группы: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-group --identity "cn=All Users,ou=groups,dc=example,dc=com"
|
./dsapi get-groups | Получение списка групп.
Метод: GET /api/v1/groups/ Результат: Выводится список групп, соответствующих заданным параметрам. | | Ключ | Значение |
|---|
| --index | Индекс первой записи (смещение). Значение по умолчанию: 0 | | --size | Обязательный ключ. Количество записей на странице. Значение должно быть выше 0 | | --filter | Фильтр по CN. Будут выведены только объекты, имя которых начинается значением, указанным в фильтре. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-groups --size 10 --filter "DNS"
|
./dsapi modify-group | Изменение атрибутов группы.
Метод: PUT /api/v1/groups/{uid} Результат: Группа изменена, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор группы: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. | Атрибуты для изменения |
|---|
--cn | Общее имя объекта | --description | Описание | --gidnumber | GID | --objectcategory | Категория объекта | | --samaccountname | Имя входа Windows | --mail | Адрес электронной почты | --rfc822mailbox | Адрес электронной почты (RFC822) |
./dsapi modify-group --identity "cn=new_group,ou=groups,dc=example,dc=com" --cn "old_group"
|
./dsapi delete-group | Удаление группы.
Метод: DELETE /api/v1/groups/{uid} Результат: Выводится сообщение об успешном удалении. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор удалямой группы: CN, DN или UID. |
./dsapi delete-group --identity "cn=new_group,ou=groups,dc=example,dc=com"
|
./dsapi add-group-members | Добавление участников в группу.
Метод: PUT /api/v1/groups/{uid}/members-add-uids Результат: Участники добавлены, выводится сообщение об успехе. При отсутствии группы выводится сообщение: "Запись отсутствует". Если один из участников не существует, выводится соответствующая ошибка. | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор группы: CN, DN или UID. | --members | Обязательный ключ. Участники группы: CN, DN или UID, разделяемые запятой. DN указывается в кавычках. |
./dsapi add-group-members --identity "cn=new_group,ou=groups,dc=example,dc=com" --members 'user1,"cn=user2,ou=users,dc=example,dc=com",8d5551a3-41c5-49ea-8d7f-81aa97c875a1'
|
./dsapi get-group-members | Получение списка участников группы.
Метод: GET /api/v1/groups/{uid}/members Результат: Выводится список участников группы, соответствующий заданным параметрам. | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор группы: CN, DN или UID. | | --index | Индекс первой записи (смещение). Значение по умолчанию: 0 | | --size | Обязательный ключ. Количество записей на странице. Значение должно быть выше 0 | | --filter | Фильтр по CN. Будут выведены только объекты, имя которых начинается значением, указанным в фильтре. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-group-members --identity "cn=new_group,ou=groups,dc=example,dc=com" --size 10 --filter "admin"
|
./dsapi delete-group-members | Удаление участников из группы.
Метод: PUT /api/v1/groups/{uid}/members-remove-uids Результат: Выводится сообщение об успешном удалении. При отсутствии группы выводится сообщение: "Запись отсутствует". Если один из участников не существует, выводится соответствующая ошибка. | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор группы: CN, DN или UID. | --members | Обязательный ключ. Участники группы: CN, DN или UID, разделяемые запятой. DN указывается в кавычках. |
./dsapi delete-group-members --identity "cn=new_group,ou=groups,dc=example,dc=com" --members 'user1,"cn=user2,ou=users,dc=example,dc=com",8d5551a3-41c5-49ea-8d7f-81aa97c875a1'
|
Управление компьютерами |
|---|
./dsapi add-host | Создание нового компьютера.
Метод: POST /api/v1/hosts Результат: Компьютер создан, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. | | Ключ | Значение |
|---|
--cn | Обязательный ключ. Общее имя компьютера | --description | Описание | | --samaccountname | Имя входа Windows | | --parent | | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi add-host --cn "t-ds-twads01" --parent "cn=new_group,ou=groups,dc=example,dc=com"
|
./dsapi get-host | Получение информации о компьютере.
Метод: GET /api/v1/hosts/{uid} Результат: Выводятся актуальные данные компьютера. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор компьютера: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-host --identity "cn=t-ds-twads01,ou=domaincontrollers,dc=example,dc=com"
|
./dsapi get-hosts | Получение списка компьютеров.
Метод: GET /api/v1/hosts/ Результат: Выводится список компьютеров, соответствующих заданным параметрам.
| | Ключ | Значение |
|---|
| --index | Индекс первой записи (смещение). Значение по умолчанию: 0 | | --size | Обязательный ключ. Количество записей на странице. Значение должно быть выше 0 | | --filter | Фильтр по CN. Будут выведены только объекты, имя которых начинается значением, указанным в фильтре. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-hosts --size 10 --filter "t-ds"
|
./dsapi modify-host | Изменение атрибутов компьютера.
Метод: PUT /api/v1/hosts/{uid} Результат: Компьютер изменен, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор компьютера: CN, DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. | Атрибуты для изменения |
|---|
--cn | Общее имя объекта | --description | Описание | | --samaccountname | Имя входа Windows | | --owner | Владелец объекта | | --seealso | Ссылка на связанные объекты | Организационная информация |
|---|
| --o | Организация | | --organizationname | Организация (полностью) | | --organizationalunitname | Организационное подразделение (полностью) | | --businesscategory | Категория бизнеса |
./dsapi modify-host --identity "cn=t-ds-twads01,ou=domaincontrollers,dc=example,dc=com" --description "Описание компьютера"
|
./dsapi delete-host | Удаление компьютера.
Метод: DELETE /api/v1/hosts/{uid} Результат: Выводится сообщение об успешном удалении. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор компьютера: CN, DN или UID. |
./dsapi delete-host --identity "cn=t-ds-twads01,ou=domaincontrollers,dc=example,dc=com"
|
Управление подразделениями |
|---|
./dsapi add-ou | Создание нового подразделения.
Метод: POST /api/v1/hierarchy/add Результат: Подразделение создано, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. | | Ключ | Значение |
|---|
--ou | Обязательный ключ. Имя подразделения | | --parent | Обязательный ключ. DN родительского объекта |
./dsapi add-ou --ou "new_ou" --parent "ou=users,dc=example,dc=com"
|
./dsapi get-ou | Получение информации о подразделении.
Метод: GET /api/v1/entry/{uid} Результат: Выводятся актуальные данные подразделения или список дочерних элементов. При отсутствии записи выводится сообщение: "Запись отсутствует". При отсутствии дочерних элементов у записи выводится сообщение: Дочерние элементы отсутствуют. | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор подразделения: DN или UID. | | --children | Вывод дочерних элементов. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. |
./dsapi get-ou --identity "ou=users,dc=example,dc=com" --children
|
./dsapi modify-ou | Изменение атрибутов подразделения.
Метод: PUT /api/v1/attributes/{uid} Результат: Подразделение изменено, выводится сообщение об успехе, запрашиваются и выводятся актуальные данные. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор подразделения: DN или UID. | | --format | Формат вывода. По умолчанию используется формат JSON. Другие форматы могут быть добавлены при необходимости. | Атрибуты для изменения |
|---|
--ou | Имя подразделения | | --organizationalunitname | Имя подразделения (полностью) | --description | Описание | | --businesscategory | Категория бизнеса | --seealso | Ссылка на связанные объекты | --searchguide | Руководство по поиску | --grouppolicylink | Ссылка на групповую политику | Организационная информация |
|---|
--l | Населенный пункт | --localityname | Населенный пункт (полностью) | --st | Регион | --stateorprovincename | Название штата или провинции | --physicaldeliveryofficename | Офис доставки | --destinationindicator | Индикатор назначения | Почтовые и адресные данные |
|---|
--postaladdress | Почтовый адрес | --postalcode | Почтовый индекс | --postofficebox | Почтовый ящик | --street | Улица | --streetaddress | Адрес улицы | --registeredaddress | Зарегистрированный адрес | --preferreddeliverymethod | Предпочтительный способ доставки | Контактные данные |
|---|
--telephonenumber | Номер телефона | --facsimiletelephonenumber | Номер факса | --fax | Факс (сокращённо) | --internationalisdnnumber | Международный ISDN-номер | --x121address | X.121 адрес | --telexnumber | Номер телетекс | --teletexterminalidentity | Идентификатор телетекс-терминала |
./dsapi modify-ou --identity "ou=users,dc=example,dc=com" --description "Описание подразделения"
|
./dsapi delete-ou | Удаление подразделения.
Метод: DELETE /api/v1/hierarchy/{dn} Результат: Выводится сообщение об успешном удалении. При отсутствии записи выводится сообщение: "Запись отсутствует". | | Ключ | Значение |
|---|
| --identity | Обязательный ключ. Идентификатор подразделения: DN |
./dsapi delete-ou --identity "ou=users,dc=example,dc=com"
|
./dsapi move-object | Перемещение объекта в иерархии.
Метод: POST /api/v1/hierarchy/move Результат: Объект перемещен, выводится сообщение со старым DN объекта, новым родителем и адресом сервера. | | Ключ | Значение |
|---|
--object | Обязательный ключ. DN объекта для перемещения | | --newparent | Обязательный ключ. DN нового родительского объекта |
./dsapi move-object --object "cn=lipov,ou=users,dc=example,dc=com" --newparent "ou=new_ou,ou=users,dc=example,dc=com"
|