Question
MIGRATION AD renommage des COMPTES
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
ça fais toujours plaisir de rendre service !un grand merci à tous !!
Connexion ou Créer un compte pour participer à la conversation.
- Dela
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 47
- Remerciements reçus 0
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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
voir la fin de ma reponse
Alexis écrit:
non c'est grâce a tous les autres que j'en suis là !!J'aurais dû dire , un grand merci à toi ;o)
oui le for fonctionne comme ça sur beaucoup de langage :Petite question pour ma culture , dans l'exemple que tu m'as demandé de regarder, la personne utilise un for et ensuite incremente %i++
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.
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.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)
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 !sans specifier la condition ( ce que je m'acharnais à faire et qui me generait des erreurs en testant $true or $null ...... ) ;oD
je dirais que chacun fais comme il veut !dans mon Cas est ce que le While est juste ? Ne devrais-je pas plutôt boucler d'une autre manière ?
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.
- Dela
- Auteur du sujet
- Hors Ligne
- Membre senior
-
- Messages : 47
- Remerciements reçus 0
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 \"-\" 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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
[code:1]$IncSub = $LastNameCount + 1[/code:1]
ce qui fais que ta boucle while/do fonctionne !!!
désolé de cette mauvaise lecture
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 !
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- MIGRATION AD renommage des COMPTES