J'ai un script qui crée deux groupes, une main pleine de dossiers et définit les autorisations sur ces dossiers. Dans mon environnement de test, tous ces processus fonctionnent sans problème, mais dans mon environnement de production, je rencontre un problème. La définition des autorisations sur les dossiers échoue car les groupes que j'ai créés n'ont pas été répliqués via les 8 contrôleurs de domaine. PowerShell peut-il fonctionner avec un seul contrôleur de domaine afin que je n'ai pas à attendre la réplication? Devrais-je mettre le script en veille pendant X secondes? Ou y at-il un moyen de voir si les groupes sont sur tous les DC ou du moins sur celui que je travaille?PowerShell: échec du script car les objets AD n'ont pas été répliqués suffisamment tôt.
Voilà comment je fais les groupes:
New-ADGroup -Name $Admin_GRP -path "OU=Users,OU=Sandbox,DC=test,DC=local" -GroupScope Global
New-ADGroup -Name $User_GRP -path "OU=Users,OU=Sandbox,DC=test,DC=local" -GroupScope Global
Voilà comment je suis en train de les autorisations sur un des dossiers:
#Set permissions on root directory
$ACL = Get-Acl $PathToFolder
#For Admin
$Permission = $Admin_GRP,"Write,ReadAndExecute,Synchronize,DeleteSubdirectoriesAndFiles","Allow"
$Access_Rule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.AddAccessRule($Access_Rule)
$ACL | Set-Acl $PathToFolder
#For Users
$Permission = $User_GRP,"ReadAndExecute,Synchronize","Allow"
$Access_Rule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.AddAccessRule($Access_Rule)
$ACL | Set-Acl $PathToFolder
Je reçois la même erreur « Exception appelant "Traduire" avec "1" argument (s): " Une partie ou toutes les références d'identité ne peuvent pas être traduits" A: ligne: 36 ombles: 83 + $ Admin_SID = (new-object system.security.principal.NtAccount ($ Admin_GRP)). translate <<<< ([system.security.principal.securityidentifier]). value " – pizzim13
Oui, vous rencontrez le même problème ici, vous devriez lire le SID de l'objet créé (je suppose que $ Admin_GRP est le nom du compte et non un objet) – Remko