Question
Doublons générés lors du traitement import AD
- ericlm128
- Hors Ligne
- Membre elite
-
- Messages : 169
- Remerciements reçus 35
$SAM = Remove-DiacriticsAndSpaces -inputString $SAM
$SAM = $SAM.SubString(0, [Math]::Min(19, $SAM.length))
if ($AD_SAM -contains $SAM)
{
for ($i = 1 ; ; $i++)
{
$SAMtmp = $SAM.SubString(0, [Math]::Min(19 - $i.ToString().Length, $SAM.length)) + $i.ToString()
if ($AD_SAM -notcontains $SAMtmp)
{
$SAM = $SAMtmp
break
}
}
}
$AD_SAM += $SAM
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 120
- Remerciements reçus 1
$SAM = Remove-DiacriticsAndSpaces -inputString $SAM
$SAM = $SAM.SubString(0, [Math]::Min(19, $SAM.length))
#1 if ($AD_SAM -contains $SAM)
#2 {
#3 for ($i = 1 ; ; $i++)
#4 {
#5 $SAMtmp = $SAM.SubString(0, [Math]::Min(19 - $i.ToString().Length, $SAM.length)) + $i.ToString()
#6
#7 if ($AD_SAM -notcontains $SAMtmp)
#8 {
#9 $SAM = $SAMtmp
#10 break
#11 }
#12 }
#13 }
#14 $AD_SAM += $SAM
#1 On vérifie si le login existe déjà dans l'AD: Si non, on passe à la ligne #14
#3 Boucle For avec valeur initiale de 1 et incrément de 1 à chaque comptage
#5 Création d'une variable temporaire $SAMtmp contenant $SAM sur laquelle on applique la méthode SubString afin d'extraire une partie de la chaine. SubString commence à la position 0 donc au début, on utilise la class Math avec la méthode MIN afin de sélectionner la valeur la plus petite entre (19 - la longueur de $i) et $SAM, puis on ajoute la valeur de $i afin d'avoir le bon chiffre à la fin de la chaine (peu probable que ça aille au delà de 9 les doublons, mais si tel est le cas, c'est prévu car la longueur de $i sera de 2, donc 19-2).
#7 Condition If afin de vérifier si la valeur de $SAMtmp n'est pas déjà contenue dans l'AD:
Si elle ne l'est pas: l'instruction #9 est exécutée et $SAM prend la valeur de $SAMtmp;
#10 J'imagine que break vient mettre fin au If de la ligne #1 ? Malgré qu'il soit positionné dans les accolades du If de la ligne #7 ?
#14 On vient ajouté le nouveau login dans la liste en mémoire contenant l'import initial des logins AD afin d'éviter un nouveau doublon si les mêmes conditions se représentent.
Mon interprétation est correcte ?
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 120
- Remerciements reçus 1
$SAMtmp = $SAM.SubString(0, [Math]::Min(19 - $i.ToString().Length, $SAM.length)) + $i.ToString()
Pourquoi as-tu mis ToString à la variable $i ?
Pour rendre le type de cette variable compatible avec ce qui vient avant dans le login puisque c'est du texte ?
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
- Messages : 169
- Remerciements reçus 35
C'est pour quitter la boucle for#10 J'imagine que break vient mettre fin au If de la ligne #1 ? Malgré qu'il soit positionné dans les accolades du If de la ligne #7 ?
Par habitude, pour éviter que ton utilisateur qui se nomme "1" devienne 2 par exemple.Pourquoi as-tu mis ToString à la variable $i ?
On veux concaténer des chaines de caractères, autant lui dire de façon explicite pour éviter des erreurs de comportement.
Connexion ou Créer un compte pour participer à la conversation.
- witness
- Auteur du sujet
- Hors Ligne
- Membre premium
-
- Messages : 120
- Remerciements reçus 1
C'est pour quitter la boucle for#10 J'imagine que break vient mettre fin au If de la ligne #1 ? Malgré qu'il soit positionné dans les accolades du If de la ligne #7 ?
Par habitude, pour éviter que ton utilisateur qui se nomme "1" devienne 2 par exemple.Pourquoi as-tu mis ToString à la variable $i ?
On veux concaténer des chaines de caractères, autant lui dire de façon explicite pour éviter des erreurs de comportement.
Je pensais que si break était rattaché à l'instruction If de #7 (accolades), il ne pouvait pas interagir avec une entité de niveau supérieur, comme le For #3
Donc break ne s'applique implicitement qu'à une boucle For lorsqu'il est contenu dans son code, peu importe comment il est placé ?
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
- Messages : 169
- Remerciements reçus 35
docs.microsoft.com/fr-fr/powershell/modu...?view=powershell-7.1
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Doublons générés lors du traitement import AD