Question MIGRATION AD renommage des COMPTES

Plus d'informations
il y a 10 ans 7 mois #20915 par Philippe

un grand merci à tous !!

ça fais toujours plaisir de rendre service ! :)

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

Plus d'informations
il y a 10 ans 7 mois #20916 par Dela
Réponse de Dela sur le sujet Re:MIGRATION AD renommage des COMPTES
J'aurais dû dire , un grand merci à toi ;o)


Petite question pour ma culture , dans l'exemple que tu m'as demandé de regarder, la personne utilise un for et ensuite incremente %i++

Mais je n'ai pas reussi à comprendre exactement le sens de son traitement. j'ai juste compris grâce à son script que je pouvais tester l'existance d'un compte avec juste un if (get-aduser) ou un while (get-aduser)
sans specifier la condition ( ce que je m'acharnais à faire et qui me generait des erreurs en testant $true or $null ...... ) ;oD

dans mon Cas est ce que le While est juste ? Ne devrais-je pas plutôt boucler d'une autre manière ?


En tout cas ! merci ;o) Vous ! et, merci POWERSHELL pour ce temps economisé !!!
Bonne journée !

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

Plus d'informations
il y a 10 ans 7 mois #20917 par Philippe
ATTENTION ton script a un bug !
voir la fin de ma reponse


Alexis écrit:

J'aurais dû dire , un grand merci à toi ;o)

non c'est grâce a tous les autres que j'en suis là !!

Petite question pour ma culture , dans l'exemple que tu m'as demandé de regarder, la personne utilise un for et ensuite incremente %i++

oui le for fonctionne comme ça sur beaucoup de langage :
le FOR suivit de la valeur de départ puis de la limite et enfin l'évolution de la valeur. ici on incrémente de 1.

Mais je n'ai pas reussi à comprendre exactement le sens de son traitement. j'ai juste compris grâce à son script que je pouvais tester l'existance d'un compte avec juste un if (get-aduser) ou un while (get-aduser)

son script vérifie si le login d'un nouvel utilisateur n'existe pas (homonyme) et cherche un login qui n'existe pas dans l'AD. comme toi dans ton script, à la différence qu'il commence avec le nom seul puis rajoute le prénom lettre par lettre.

sans specifier la condition ( ce que je m'acharnais à faire et qui me generait des erreurs en testant $true or $null ...... ) ;oD

je pense que le problème n'était pas là mais sans message d'erreur je peut pas de dire ! comme le montre l'exemple qui suis !

dans mon Cas est ce que le While est juste ? Ne devrais-je pas plutôt boucler d'une autre manière ?

je dirais que chacun fais comme il veut !

regarde dans l'exemple ci-dessous repris de ta boucle,
j'ai mis le while à la fin ce qui permet de remplir les variables qu'a un seul endroit et dans la boucle !
le $Incsub fonctionne (pour moi en tous cas !)

d'ailleurs en tapent cette exemple je me suis aperçus que ton boucle fonctionné pas correctement !
tu a des logins avec qu'une seule lettre !!!

ici je l'ai corrigé en rajoutant $lastfinal dans ton while
[code:1]$looped = \"prenom\"
$lastFinal = \"nom\"
$Incsub = 1

Do {
$LoopedSub = $lastFinal + $looped.Substring(0,$Incsub++)
write-host \"TEST\" $loopedsub
}
While ((get-aduser -LDAPFilter \"(sAMAccountName=$LoopedSub)\"«») -ne $null)

Write-host \"FINAL\" $LoopedSub \"OK\"

# resultat :
#TEST nomp
#TEST nompr
#TEST nompre
#FINAL nompre OK
#[/code:1]

Message édité par: 6ratgus, à: 20/10/15 15:39<br><br>Message édité par: 6ratgus, à: 20/10/15 15:42

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

Plus d'informations
il y a 10 ans 7 mois #20918 par Dela
Réponse de Dela sur le sujet Re:MIGRATION AD renommage des COMPTES
je ne comrpends pas trop pkoi tu dis que j'ai des nom avec une seule lettre.

Je ne traite pas le nom de famille, je ne traite que le prenom, le nom de famille je le prends toujours entier et je n'ajoute des lettres qu'au prenom.

dans mon script je compte le nombre de lettre du nom de famille et je l'incrémente de un pour que la fonction substring ne s'effectue qu'à partir du nom de famille suivi de la premiere du prenom , ou des deux si le \&quot;-\&quot; match dans la chaine.

Du coup meme si j'ai un nom de famille de 1 caractere ce n'est pas genant. et comme je compose la $LOOPED et $loopedSUB avant le passage dans la boucle je comprends pas ou tu veux en venir !!


du coup en EX : j'ai : Jean Gionno

$Looped = gionnojean

$loopedsub = Substring(gionno.lenght + 1) = gionnoj

Du coup je check mon ad avec ça et si ça répond je rajoute une lettre , je recheck jusqu'à que ca ne reponde plus, a ce moment là je SET les infos dans l'objet.

;p je t'embete desolé !


EDIT : ET ma cariable $looped est en DUR avant le passage de la boucle, donc on reste toujours sur du = nomcompletPRENOMCOMPLET , dojnc ya que le substring qui boss sur cette valeur. pkoi la mettre à jour au passage de la boucle ?


RE EDIT : J'ai ptete mal lu !! Ca ne marche pas dans ton exemple juste peut etre ??? ;oD

Message édité par: Alexis, à: 20/10/15 16:45<br><br>Message édité par: Alexis, à: 20/10/15 16:46

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

Plus d'informations
il y a 10 ans 7 mois #20919 par Philippe
j'ai mal lu le script, tu fais ceci bien avant la boucle :
[code:1]$IncSub = $LastNameCount + 1[/code:1]
ce qui fais que ta boucle while/do fonctionne !!! :)
désolé de cette mauvaise lecture :blush:
moi j'était resté sur ton ancienne boucle, qui était plus claire, mais quand un script ne sert qu'un fois c'est pas vraiment un problème ! B)! B)<br><br>Message édité par: 6ratgus, à: 20/10/15 17:24

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

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