Question Modification propriétés utilisateurs AD

Plus d'informations
il y a 12 ans 11 mois #14993 par Philippe

Merci !! Beaucoup ouf enfin j'y suis arrivé^^.

c'est avec plaisir !

un dernier conseil : si tu peut travail avec les logins (SamAccountName) pour evité les problemes avec les homonymes.

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

Plus d'informations
il y a 12 ans 11 mois #14994 par SiSMik
Pour chipoter un peu j'aurais fait ça :)

[code:1]
import-module activedirectory
Import-Csv c:\Importation\user.csv | Foreach {
get-AdUser -Filter {sn -eq $_.Nom} -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local' |
set-ADUser -initials $_.Id
}[/code:1]

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

Plus d'informations
il y a 12 ans 11 mois #15002 par Philippe
benduru écrit:

Pour chipoter un peu j'aurais fait ça :)


pas chipoter, apprendre a mieux utilisé powershell B) :evil:<br><br>Message édité par: 6ratgus, à: 31/05/13 17:02

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

Plus d'informations
il y a 12 ans 11 mois #15007 par nicolas
Oui c'est pas bête du tout même^^.

Et tu a raison 6ratgus pour les SamAccountName, on ma demandé de comparer avec cette propriété lol.

Cela indique que il va y avoir quelques Test à faire;).

Voila voila je me permet de vous sollicite encore une fois^^.

Voici tous mon code pour être clair : [code:1]Import-module activedirectory

$Users = Import-csv c:\Importation\user.csv

foreach($user in $Users){

$nom = $user.nom
$prenom = $user.prenom


$sam =get-ADuser -Filter {sn -eq $nom} -SearchBase 'ou=UtilisateursCH,dc=Test,dc=local' | select SamAccountName
echo \&quot;$sam\&quot;


if($nom.length -Le \&quot;6\&quot;«») {

$nomMinus = $nom.ToLower()
$deuxprenom = $prenom.Substring(0,2)
$deuxprenomMinus = $deuxprenom.ToLower()
$loginInf = $nomMinus + $deuxprenomMinus
echo \&quot;$loginInf\&quot;

if(\&quot;$loginInf\&quot; -eq \&quot;$sam\&quot;«»){
echo \&quot;loginInf`n\&quot;
}
else{
echo \&quot;loginInf Mauvais`n\&quot;
}

}
else {
$sixnom = $nom.Substring(0,6)
$deuxprenom = $prenom.Substring(0,2)
$sixnomMinus = $sixnom.ToLower()
$deuxprenomMinus = $deuxprenom.ToLower()
$loginSup = $sixnomMinus + $deuxprenomMinus
echo \&quot;$loginSup\&quot;

if(\&quot;$loginSup\&quot; -eq \&quot;$sam\&quot;«»){
echo \&quot;loginSub`n\&quot;
}
else{
echo \&quot;loginSup Mauvais`n\&quot;
}

}
}[/code:1]

Aucune erreur ce code malgré je le pense des choses inutiles.

Ce qui ne va pas c'est que les tests avec $sam ne fonctionne pas. J'ai mi des SamAccountName différents et identique dans mon AD pour faire des tests mais sur tous les utilisateurs on me renvoi mauvais. Alors que certain son identique avec $loginXXX

Le echo \&quot;$sam\&quot; me renvoi bien le SAM de chaque utilisateur il est bien unique mais es-ce que je peux comparer cette variable? car cette variable est global a tous les utilisateurs c'est peut-etre ceci le problème?

Faudrait-il passé quelques chose a \&quot;$sam\&quot; dans le if?

Merci à tous<br><br>Message édité par: nicolas10, à: 3/06/13 12:54

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

Plus d'informations
il y a 12 ans 11 mois #15014 par nicolas
Excusez moi pour le dérangement :blush: .

J'ai trouvé une petite commande pour résoudre mon problème [code:1]compareTo[/code:1]

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

Plus d'informations
il y a 12 ans 11 mois #15021 par Philippe
la syntaxe exact c'est :
[code:1]($loginSup -eq $sam.SamAccountName)[/code:1]

1) les guillemets sont inutile

2)
$loginInf et $loginSup sont de type string
et $sam est de type System.Object (contenant des string, int, ... et autre objet)
comme ta variable $user,
tu ne peut pas les comparer directement sans designer l'elements a comparé. sinon ily a confusion voir erreur !

apres pour la forme de ton script, evidenment tu peut simplifier mais au debut c'est pas la priorité.

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

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