Назад | Перейти на главную страницу

Выполнить запланированную задачу на одном (и только одном) контроллере домена

Я настраиваю домен Active Directory. Он включает в себя некоторые серверы Linux, которые используют sssd для доступа к пользователям и группам домена.

Поскольку пользователям и группам для этого нужны UID и GID (я не хочу использовать ldap_id_mapping вариант sssd), я подготовил сценарии PowerShell для запуска при каждом добавлении пользователя или группы. Они ищут наивысший присвоенный UID (или GID) и назначают следующий новому пользователю / группе.

Скрипты запускаются как задача для соответствующих идентификаторов событий (например, 4720 для созданных пользователем).

Кажется, все это работает очень хорошо. Однако, поскольку у меня есть как минимум два контроллера домена, и я хочу обеспечить эту функциональность, даже если один из них не работает, мне нужно добавить задачу на обоих. Но это означает, что мой сценарий запускается дважды, а возможно, даже хуже, одновременно. Однако я бы предпочел не писать какой-то механизм блокировки.

Есть ли способ убедиться, что задача выполняется только на одном контроллере домена? Я не мог найти опцию в планировщике задач.

Вместо того, чтобы запускать задачу только на одном контроллере домена, возможно, вы могли бы запустить задачу на каждом контроллере домена, но измените свой сценарий Powershell так, чтобы сам сценарий был нацелен только на один контроллер домена - возможно, сделайте так, чтобы сценарий PowerShell всегда нацелен на контроллер домена с ролью PDCe FSMO.

Я не уверен, какие командлеты (если есть) вы используете в своем скрипте, но при использовании Set-ADUser из модуля ActiveDirectory вы можете легко настроить таргетинг на командлет с помощью параметра «-Server».

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

AD - это мультимастер, он имеет процесс разрешения конфликтов и может автоматически разрешать конфликты, когда запись происходит на одном и том же объекте. Я совершенно уверен, что вам не нужно беспокоиться о нарушении Active Directory из-за дублирования обновлений атрибутов.


Мне также кажется, что наиболее логичным средством выполнения того, что вы пытаетесь сделать, является простая автоматизация (сценарий) процесса создания пользователя таким образом, чтобы UID / GID был назначен во время создания пользователя и не запускался событием. в журнале безопасности.