Récemment, j’ai dû implémenter une tâche planifiée exécutant des scripts Powershell – vulgairement appelés moulinettes – de manière assez régulière pour automatiser et palier à de possibles oublis humains. Cette tâche s’exécute avec un compte de service ; seulement ce compte de service doit pouvoir modifier des groupes ActiveDirectory. Par défaut, un compte fraîchement créé ne dispose pas de tels privilèges. Il a donc fallu que j’accorde les droits à ce compte de service pour qu’il puisse écrire sur les objets présents dans une OU spécifique. A noter que la procédure ci-dessous – quasi-similaire à l’octroi de droits sur un répertoire NTFS tout simple – fonctionne pour la très grande majorité des objets ActiveDirectory.
La console ActiveDirectory, pouvant s’appeler avec dsa.msc doit avoir les fonctionnalités avancées d’activées : View > Advanced Features.
Ensuite, se rendre sur l’OU en question, puis ouvrir les propriétés de celle-ci. Les fonctionnalités avancées débloquent l’onglet Security. Cet onglet affiche les entités ayant des privilèges particuliers sur l’OU. En cliquant sur Advanced, une fenêtre apparaît.
Les diverses autorisations ou interdictions sont listées ; il est possible de faire un test avec un compte d’utilisateur dans Effective Access pour vérifier que ce dernier a bien le droit – ou non – d’effectuer certaines opérations sur cette OU.
Add ouvre une nouvelle fenêtre qui demandera de saisir un compte ; je vais donc saisir mon compte de service, puis lui accorder le privilège d’écriture (encadré en bleu).
Par défaut, le compte de service a le droit de lire les propriétés de l’OU ainsi que la parcourir. En ajoutant le droit d’écriture, j’autorise le compte à modifier les objets présents dans l’OU car l’octroi concerne cette OU et ce qu’elle contient (paramètre encadré en vert).
Une simple exécution de test de la tâche planifiée a confirmé le bon fonctionnement de l’accord des privilèges.