Executar uma tarefa agendada em um (e apenas um) controlador de domínio

1

Estou configurando um domínio do Active Directory. Inclui alguns servidores Linux que usam sssd para acessar os usuários e grupos do domínio.

Como os usuários e grupos precisam de um UID e GID para isso (não desejo usar a opção ldap_id_mapping do sssd), preparei scripts do powershell para serem executados sempre que um usuário ou grupo for adicionado. Eles procuram pelo UID (ou GID) atribuído mais alto e atribuem o próximo ao novo usuário / grupo.

Os scripts são acionados como uma tarefa para os EventIDs apropriados (por exemplo, 4720 para usuário criado).

Tudo isso parece funcionar muito bem. No entanto, como eu tenho pelo menos dois controladores de domínio e desejo fornecer essa funcionalidade mesmo quando um está inativo, preciso adicionar a tarefa em ambos. Mas isso significa que meu script é executado duas vezes e possivelmente ainda pior, simultaneamente. Eu preferiria não ter que escrever algum mecanismo de bloqueio, no entanto.

Existe uma maneira de garantir que uma tarefa seja executada em apenas um controlador de domínio? Não consegui encontrar uma opção no agendador de tarefas.

    
por Fabian Fritz 03.08.2018 / 20:11

1 resposta

0

Em vez de executar a tarefa em apenas um controlador de domínio, talvez você possa executar a tarefa em todos os controladores de domínio, mas altere seu script Powershell para que o próprio script segmente somente o um controlador de domínio talvez faça com que o script do PowerShell sempre segmente o controlador de domínio com a função PDCe FSMO.

Não sei quais cmdlets (se houver) estão sendo usados no seu script, mas se você usar Set-ADUser no módulo ActiveDirectory, poderá segmentar facilmente o cmdlet com o parâmetro "-Server".

I would prefer not having to write some locking mechanism, though.

O AD é multi-mestre, tem um processo de resolução de conflitos e pode resolver conflitos automaticamente quando as gravações acontecem no mesmo objeto. Tenho certeza de que você não precisa se preocupar em quebrar o Active Directory com algumas atualizações de atributos duplicadas.

Também me parece que o meio mais lógico de realizar o que você está tentando fazer é apenas automatizar (script) o processo de criação do usuário de forma que o UID / GID seja atribuído no momento da criação do usuário e não acionado. por um evento em um log de segurança.

    
por 03.08.2018 / 21:43