Question Problème de délai création User AD

Plus d'informations
il y a 14 ans 10 mois #9602 par DORE
Bonjour à tous et toutes,
J'ai parcouru le forum à la recherche d'un problème similaire, mais en vain ( j'ai aussi peut-être mal cherché).

J'ai fait un script qui génére toutes la chaine de création d'un utilisateur, en partant du compte AD, jusqu'à la boite aux lettres.

En fonction du profil du compte, on génére soit une boite aux lettrex classique ( Mailbox ) soit un utilisateur de boite aux lettres ( Mailuser).

Le soucis vient du fait, que 1 fois sur 3 ( voir même 1 fois sur 2 ), la commande de creation de B.A.L ne peut s'effectuer en raison d'un compte AD \"inexistant\". Ce qui est \"faux\" puisque créé juste avant. Je soupçonne un problème de délai :evil: entre mon \"$objUser.SetInfo()\" et le \"Enable-MailUser\". Délai qui semble aléatoire, ou bien en rapport avec un temps de dispo de l'AD.

J'ai intercalé un Start-Sleep entre les deux, mais ça ne me satisfait pas.:blush:

Existerait-il une solution pour vérifier la \"création\" effective du compte ?

Merci d'avance.

JC

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #9645 par Richard Lazaro
Une solution consisterait à faire une boucle qui va attendre de bien récupérer l'utilisateur.
Mais, ce que je comprends pas c'est que perso quand j'attaque avec ADSI l'utilisateur est créé directement.

Si tu fais une boucle pense à faire un Start-Sleep dans celle-ci pour libérer la ressource processeur.

[code:1]$IsExists = $False
while(!$IsExists) {
# Si on arrive a accéder à l'utilisateur on passe $IsExists à $True

Start-Sleep -Milliseconds 500
}
[/code:1]

Il faudrait essayer comme cela pour voir.

Bien Cordialement,
Richard Lazaro.

Think-MS : (Get-Life).Days | %{ Learn-More }

\\"Problems cannot be solved by the same level of thinking that created them.\\" - Albert Einstein

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #9647 par DORE
Merci Richard
Je viens d'ajouter la chose suivante dans mon code, et cela semble fonctionner.

[code:1]
$objUser.PSBase.InvokrSet('AccountDisabled',$False
$objUser.SetInfo()
$IsExists = $objUser.PSBase.InvokrGet('AccountDisabled')
while ($IsExists)
{
Start-sleep -m 500
$IsExists = $objUser.PSBase.InvokrGet('AccountDisabled')
}
[/code:1]

JC

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #9653 par Matthew BETTON
Bonjour,

J'ai déjà rencontré ce problème.

Si tu te trouves dans un domaine multi sites, cela peut venir du simple fait que le compte est généré sur un contrôleur de domaine qui n'est pas dans le site du serveur Exchange sur lequel tu génère la BAL.

Dans ce cas, il faut attendre la réplication entre DC.

Le mieux est que lorsque tu créés le compte utilisateur, tu spécifies explicitement le DC sur lequel tu veut le créer : un DC proche du serveur Exchange...

@ +

Matthew<br><br>Message édité par: Matthew BETTON, à: 14/05/11 08:47

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 14 ans 10 mois #9656 par DORE
Matthew BETTON écrit:

...
Si tu te trouves dans un domaine multi sites, cela peut venir du simple fait que le compte est généré sur un contrôleur de domaine qui n'est pas dans le site du serveur Exchange sur lequel tu génère la BAL.
...


Bonjour Matthew,
effectivement, et j'aurais préféré que cela soit le cas, mais je suis dans un domaine mono-site.

Pour l'instant, la boucle de test à l'air de fonctionner.

JC

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.049 secondes
Propulsé par Kunena