Question
Modification propriétés utilisateurs AD
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 11 mois #15024
par Philippe
Réponse de Philippe sur le sujet Re:Modification propriétés utilisateurs AD
par contre, par habitude pense a la gestion des erreurs :
- que faire si le fichier users est absent
- que faire si l'utilisateur ne ce trouve pas dans l'AD.
utilise try catch pour ca
ex :
try
{
code avec possible erreur
}
catch
{
gestion de l'erreur
soit je fait rien
soit j'envoie une alerte
- ou/et je fait une action special
- ou/et j'arrete le script
}<br><br>Message édité par: 6ratgus, à: 3/06/13 16:42
- que faire si le fichier users est absent
- que faire si l'utilisateur ne ce trouve pas dans l'AD.
utilise try catch pour ca
ex :
try
{
code avec possible erreur
}
catch
{
gestion de l'erreur
soit je fait rien
soit j'envoie une alerte
- ou/et je fait une action special
- ou/et j'arrete le script
}<br><br>Message édité par: 6ratgus, à: 3/06/13 16:42
Connexion ou Créer un compte pour participer à la conversation.
- nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 12 ans 11 mois #15036
par nicolas
Réponse de nicolas sur le sujet Re:Modification propriétés utilisateurs AD
Merci pour les renseignements 6ratgus.
Je n'avais pas prévu plein de détail assez génant ^^.
Il faut que je renvoi dans un fichier txt les personnes qui n'ont pas de login ($sam null) puis que je fasse gaffe si les login on été crée avec le patronyme ou le nom usuel et des homonymes enfin bref de quoi travailler encore un peu sur le sujet^^
Je n'avais pas prévu plein de détail assez génant ^^.
Il faut que je renvoi dans un fichier txt les personnes qui n'ont pas de login ($sam null) puis que je fasse gaffe si les login on été crée avec le patronyme ou le nom usuel et des homonymes enfin bref de quoi travailler encore un peu sur le sujet^^
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 11 mois #15040
par Philippe

mais rapidement tu te retrouve avec un ensemble de routine que tu peut reutilisé
bon courage pour la suite !
le forum reste ouvert pour de l'aide
Réponse de Philippe sur le sujet Re:Modification propriétés utilisateurs AD
et oui, des qu'on commence serieusement les choses, ils y a beaucoup de choses a prevoirJe n'avais pas prévu plein de détail assez génant ^^.
mais rapidement tu te retrouve avec un ensemble de routine que tu peut reutilisé
bon courage pour la suite !
le forum reste ouvert pour de l'aide
Connexion ou Créer un compte pour participer à la conversation.
- nicolas
- Auteur du sujet
- Hors Ligne
- Membre junior
-
Réduire
Plus d'informations
- Messages : 23
- Remerciements reçus 0
il y a 12 ans 11 mois #15058
par nicolas
Réponse de nicolas sur le sujet Re:Modification propriétés utilisateurs AD
Me revoici ^^ désolé, mais j'ai code qui fonctionne mais ne correspond pas a mes attente.
[code:1]Import-module activedirectory
$Users = Import-csv c:\agent.csv -Delimiter \";\"
foreach($user in $Users){
$nom = $user.nom_usuel
$prenom = $user.prenom
$sam =get-ADuser -Filter {sn -eq $nom} -SearchBase 'ou=xxxxxxxxx,ou=xxxx,dc=xxx,dc=xx' | select SamAccountName,Surname
echo \"$sam\"
if($nom -ne $sam.Surname){
$nom | out-file -append c:\Utilisateur_NonAD.csv
}
else {
if ($nom.length -Le \"6\"«»){
$nomMinus = $nom.ToLower()
$deuxprenom = $prenom.Substring(0,2)
$deuxprenomMinus = $deuxprenom.ToLower()
$loginInf = $nomMinus + $deuxprenomMinus
Write-Host $loginInf
}
if($loginInf -eq $sam.SamAccountName){Write-Host \"loginInf`n\"}
else {Write-Host \"loginInf Mauvais`n\"
$nom | out-file -append c:\SAM_MauvaisINF.csv}
}
if($nom.Length -ge \"6\"«») {
$sixnom = $nom.Substring(0,6)
$deuxprenom = $prenom.Substring(0,2)
$sixnomMinus = $sixnom.ToLower()
$deuxprenomMinus = $deuxprenom.ToLower()
$loginSup = $sixnomMinus + $deuxprenomMinus
Write-Host $loginSup
if($loginSup -eq $sam.SamAccountName){Write-Host \"loginSup\"}
else{ Write-Host \"loginSub Mauvais `n\"
$nom | out-file -append c:\SAM_MauvaisSUP.csv}
}
}[/code:1]
Je voudrais que quand les personnes passe par le premier if et qu'il correspond aux critères s'envoie dans le fichier csv et y RESTE lol, parce-que enfaite il passe puis passe dans les suivants ce qui ne va pas. Enfaite je voudrais en quelque sorte les exclures dans le fichier csv et laisser les autres faire leur chemin^^
PS : Je sais que le code est une usine à gaz
Merci Nicolas<br><br>Message édité par: nicolas10, à: 5/06/13 15:47
[code:1]Import-module activedirectory
$Users = Import-csv c:\agent.csv -Delimiter \";\"
foreach($user in $Users){
$nom = $user.nom_usuel
$prenom = $user.prenom
$sam =get-ADuser -Filter {sn -eq $nom} -SearchBase 'ou=xxxxxxxxx,ou=xxxx,dc=xxx,dc=xx' | select SamAccountName,Surname
echo \"$sam\"
if($nom -ne $sam.Surname){
$nom | out-file -append c:\Utilisateur_NonAD.csv
}
else {
if ($nom.length -Le \"6\"«»){
$nomMinus = $nom.ToLower()
$deuxprenom = $prenom.Substring(0,2)
$deuxprenomMinus = $deuxprenom.ToLower()
$loginInf = $nomMinus + $deuxprenomMinus
Write-Host $loginInf
}
if($loginInf -eq $sam.SamAccountName){Write-Host \"loginInf`n\"}
else {Write-Host \"loginInf Mauvais`n\"
$nom | out-file -append c:\SAM_MauvaisINF.csv}
}
if($nom.Length -ge \"6\"«») {
$sixnom = $nom.Substring(0,6)
$deuxprenom = $prenom.Substring(0,2)
$sixnomMinus = $sixnom.ToLower()
$deuxprenomMinus = $deuxprenom.ToLower()
$loginSup = $sixnomMinus + $deuxprenomMinus
Write-Host $loginSup
if($loginSup -eq $sam.SamAccountName){Write-Host \"loginSup\"}
else{ Write-Host \"loginSub Mauvais `n\"
$nom | out-file -append c:\SAM_MauvaisSUP.csv}
}
}[/code:1]
Je voudrais que quand les personnes passe par le premier if et qu'il correspond aux critères s'envoie dans le fichier csv et y RESTE lol, parce-que enfaite il passe puis passe dans les suivants ce qui ne va pas. Enfaite je voudrais en quelque sorte les exclures dans le fichier csv et laisser les autres faire leur chemin^^
PS : Je sais que le code est une usine à gaz
Merci Nicolas<br><br>Message édité par: nicolas10, à: 5/06/13 15:47
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 11 mois #15067
par Philippe
Réponse de Philippe sur le sujet Re:Modification propriétés utilisateurs AD
bonjour nicolas
si tu code fonctionne, je te conseille t'utilisé Powershell ISE pour executer pas a pas ton script.
tu verra ainsi ce qui ce passe dans le script !
edit : petite correction dans le script
edit 2 : en faite apres correction ton script est identique (desoler)
tout est explique dans le post suivant<br><br>Message édité par: 6ratgus, à: 5/06/13 17:48
si tu code fonctionne, je te conseille t'utilisé Powershell ISE pour executer pas a pas ton script.
tu verra ainsi ce qui ce passe dans le script !
edit : petite correction dans le script
edit 2 : en faite apres correction ton script est identique (desoler)
tout est explique dans le post suivant<br><br>Message édité par: 6ratgus, à: 5/06/13 17:48
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 11 mois #15069
par Philippe
Réponse de Philippe sur le sujet Re:Modification propriétés utilisateurs AD
ton script ne fonctionne pas corectement (ca se vois bien en mode debogage pas à pas)
1)
quand un utilisateur n'existe pas dans l'AD l'instruction get-aduser retourne l'erreur suivant :
[code:1]Get-ADUser : Impossible de trouver un objet avec l’identité « test »......[/code:1]la variable $sam n'est pas renseigné et donc la ligne suivante ne sert a rien :[code:1]if($nom -ne $sam.Surname){[/code:1]
tu doit utilisé try catch pour ce probleme (debut de ta gestion d'erreur) :
[code:1]try {
# recup des info utilisateur
$sam =get-ADuser -Filter {sn -eq $nom} -SearchBase 'ou=xxxxxxxxx,ou=xxxx,dc=xxx,dc=xx' | select SamAccountName,Surname
# gestion du login
# login de inferieur ou egale a 6 car
if ($nom.length -Le 6) {
.
.
# login de superieur a 6 car
if ($nom.Length -gt 6) {
.
}
catch {
# gestion de l'erreur : Get-ADUser :Impossible de trouver un objet avec l’identité
$nom | out-file -append c:\Utilisateur_NonAD.csv
}[/code:1]
2)
je ne sais pas quelle est la regle pour tes logins mais le test de longeur ete mauvais. (voir exemple ci-dessus)
tu peut aussi garder ta premiere version qui fonctionné le 03/05/2013 (voir ton post du 3)
Message édité par: 6ratgus, à: 5/06/13 17:51<br><br>Message édité par: 6ratgus, à: 5/06/13 17:56
1)
quand un utilisateur n'existe pas dans l'AD l'instruction get-aduser retourne l'erreur suivant :
[code:1]Get-ADUser : Impossible de trouver un objet avec l’identité « test »......[/code:1]la variable $sam n'est pas renseigné et donc la ligne suivante ne sert a rien :[code:1]if($nom -ne $sam.Surname){[/code:1]
tu doit utilisé try catch pour ce probleme (debut de ta gestion d'erreur) :
[code:1]try {
# recup des info utilisateur
$sam =get-ADuser -Filter {sn -eq $nom} -SearchBase 'ou=xxxxxxxxx,ou=xxxx,dc=xxx,dc=xx' | select SamAccountName,Surname
# gestion du login
# login de inferieur ou egale a 6 car
if ($nom.length -Le 6) {
.
.
# login de superieur a 6 car
if ($nom.Length -gt 6) {
.
}
catch {
# gestion de l'erreur : Get-ADUser :Impossible de trouver un objet avec l’identité
$nom | out-file -append c:\Utilisateur_NonAD.csv
}[/code:1]
2)
je ne sais pas quelle est la regle pour tes logins mais le test de longeur ete mauvais. (voir exemple ci-dessus)
tu peut aussi garder ta premiere version qui fonctionné le 03/05/2013 (voir ton post du 3)
Message édité par: 6ratgus, à: 5/06/13 17:51<br><br>Message édité par: 6ratgus, à: 5/06/13 17:56
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.044 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Modification propriétés utilisateurs AD